class Peatio::Counoscoin::Wallet

Constants

DEFAULT_FEATURES

Public Class Methods

new(custom_features = {}) click to toggle source
# File lib/peatio/counoscoin/wallet.rb, line 7
def initialize(custom_features = {})
  @features = DEFAULT_FEATURES.merge(custom_features).slice(*SUPPORTED_FEATURES)
  @settings = {}
end

Public Instance Methods

configure(settings = {}) click to toggle source
# File lib/peatio/counoscoin/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 = {}) click to toggle source
# File lib/peatio/counoscoin/wallet.rb, line 27
def create_address!(_options = {})
  { address: client.json_rpc(:getnewaddress) }
rescue Counoscoin::Client::Error => e
  raise Peatio::Wallet::ClientError, e
end
create_transaction!(transaction, options = {}) click to toggle source
# File lib/peatio/counoscoin/wallet.rb, line 33
def create_transaction!(transaction, options = {})
  txid = client.json_rpc(:sendtoaddress,
                         [
                           transaction.to_address,
                           transaction.amount,
                           '',
                           '',
                           options[:subtract_fee].to_s == 'true' # subtract fee from transaction amount.
                         ])
  transaction.hash = txid
  transaction
rescue Counoscoin::Client::Error => e
  raise Peatio::Wallet::ClientError, e
end
load_balance!() click to toggle source
# File lib/peatio/counoscoin/wallet.rb, line 48
def load_balance!
  client.json_rpc(:getbalance).to_d

rescue Counoscoin::Client::Error => e
  raise Peatio::Wallet::ClientError, e
end

Private Instance Methods

client() click to toggle source
# File lib/peatio/counoscoin/wallet.rb, line 57
def client
  uri = @wallet.fetch(:uri) { raise Peatio::Wallet::MissingSettingError, :uri }
  @client ||= Client.new(uri)
end