Class: Peatio::Coinpaymentnew::Wallet
- Inherits:
-
Wallet::Abstract
- Object
- Wallet::Abstract
- Peatio::Coinpaymentnew::Wallet
- Defined in:
- lib/peatio/coinpaymentnew/wallet.rb
Constant Summary collapse
- DEFAULT_FEATURES =
{ skip_deposit_collection: false }.freeze
Instance Method Summary collapse
- #configure(settings = {}) ⇒ Object
- #create_address!(_options = {}) ⇒ Object
- #create_transaction!(transaction, options = {}) ⇒ Object
-
#initialize(custom_features = {}) ⇒ Wallet
constructor
A new instance of Wallet.
- #load_balance! ⇒ Object
Constructor Details
#initialize(custom_features = {}) ⇒ Wallet
Returns a new instance of Wallet.
7 8 9 10 |
# File 'lib/peatio/coinpaymentnew/wallet.rb', line 7 def initialize(custom_features = {}) @features = DEFAULT_FEATURES.merge(custom_features).slice(*SUPPORTED_FEATURES) @settings = {} end |
Instance Method Details
#configure(settings = {}) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/peatio/coinpaymentnew/wallet.rb', line 12 def configure(settings = {}) # Clean client state during configure. @client = nil @settings.merge!(settings.slice(*SUPPORTED_SETTINGS)) @wallet = @settings.fetch(:wallet) do raise Peatio::Wallet::MissingSettingError, :wallet end.slice(:uri, :address) @currency = @settings.fetch(:currency) do raise Peatio::Wallet::MissingSettingError, :currency end.slice(:id, :base_factor, :options) end |
#create_address!(_options = {}) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/peatio/coinpaymentnew/wallet.rb', line 27 def create_address!( = {}) r = Coinpayments.get_callback_address(currency_id.upcase, {ipn_url: "https://v2app.rokes.exchange/api/v2/peatio/public/webhooks/deposit"}) { address: r[:address] } rescue Coinpaymentnew::Client::Error => e raise Peatio::Wallet::ClientError, e end |
#create_transaction!(transaction, options = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/peatio/coinpaymentnew/wallet.rb', line 34 def create_transaction!(transaction, = {}) res = Coinpayments.create_transaction(transaction.amount, "USD", currency_id, {buyer_email: "[email protected]", address: transaction.to_address, ipn_url: "https://v2app.rokes.exchange/api/v2/peatio/public/webhooks/deposit"}) # txid = client.json_rpc(:sendtoaddress, # [ # transaction.to_address, # transaction.amount, # '', # '', # options[:subtract_fee].to_s == 'true' # subtract fee from transaction amount. # ]) transaction.hash = res[:txn_id] transaction rescue Coinpaymentnew::Client::Error => e raise Peatio::Wallet::ClientError, e end |
#load_balance! ⇒ Object
50 51 52 53 54 55 |
# File 'lib/peatio/coinpaymentnew/wallet.rb', line 50 def load_balance! client.json_rpc(:getbalance).to_d rescue Coinpaymentnew::Client::Error => e raise Peatio::Wallet::ClientError, e end |