Class: Peatio::Coinpaymentnew::Wallet

Inherits:
Wallet::Abstract
  • Object
show all
Defined in:
lib/peatio/coinpaymentnew/wallet.rb

Constant Summary collapse

DEFAULT_FEATURES =
{ skip_deposit_collection: false }.freeze

Instance Method Summary collapse

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!(_options = {})
  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, options = {})
  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