class Wallet

Attributes

available_balance[R]
confirmed_balance[R]
currency[R]
deposit_address[R]
deposits[R]
order_balance[R]
pending_deposit_balance[R]
pending_withdrawal_balance[R]
status[R]
withdrawals[R]

Public Class Methods

new(active, wallet_data) click to toggle source
# File lib/account/wallet.rb, line 7
def initialize(active, wallet_data)
  begin
    if active
      @status = "active"
      @currency = wallet_data['currency']
      @deposits = Hash.new
      @withdrawals = Hash.new
      @deposit_address = wallet_data['address']
      @confirmed_balance = BigDecimal.new(wallet_data['confirmed_balance'])
      @available_balance = BigDecimal.new(wallet_data['available_balance'])
      @order_balance = BigDecimal.new(wallet_data['order_balance'])
      @pending_deposit_balance = BigDecimal.new(wallet_data['pending_deposit_balance'])
      @pending_withdrawal_balance = BigDecimal.new(wallet_data['pending_withdrawal_balance'])
    else
      @status = "inactive"
      @currency = wallet_data['currency']
      @deposit_address = wallet_data['address']
    end
  rescue
    puts "Error in Excoin::Account::Wallet.initialize"
    puts wallet_data
  end
end

Public Instance Methods

add_deposit(deposit_data) click to toggle source
# File lib/account/wallet.rb, line 55
def add_deposit(deposit_data)
  @deposits.merge!({deposit_data['txid'] => Deposit.new(deposit_data)})
end
add_withdrawal(withdrawal_data) click to toggle source
# File lib/account/wallet.rb, line 59
def add_withdrawal(withdrawal_data)
  @withdrawals.merge!({withdrawal_data['id'] => Withdrawal.new(withdrawal_data)})
end
unconfirmed_deposits() click to toggle source
# File lib/account/wallet.rb, line 47
def unconfirmed_deposits
  return @deposits.select{|id, deposit_object| deposit_object.confirmed == false}
end
unconfirmed_withdrawals() click to toggle source
# File lib/account/wallet.rb, line 51
def unconfirmed_withdrawals
  return @withdrawals.select{|id, withdrawal_object| withdrawal_object.confirmed == false}
end
update(wallet_data) click to toggle source
# File lib/account/wallet.rb, line 31
def update(wallet_data)
  begin
    if wallet_data['address']
      @deposit_address = wallet_data['address']
    end
    @confirmed_balance = BigDecimal.new(wallet_data['confirmed_balance'])
    @available_balance = BigDecimal.new(wallet_data['available_balance'])
    @order_balance = BigDecimal.new(wallet_data['order_balance'])
    @pending_deposit_balance = BigDecimal.new(wallet_data['pending_deposit_balance'])
    @pending_withdrawal_balance = BigDecimal.new(wallet_data['pending_withdrawal_balance'])
  rescue
    puts "Error in Excoin::Account::Wallet.update"
    puts wallet_data
  end
end
withdraw(address, amount) click to toggle source
# File lib/account/wallet.rb, line 63
def withdraw(address, amount)
  if BigDecimal.new(amount) <= self.available_balance
    withdrawal_data = Excoin.api.account_withdraw(self.currency, address, amount)
    Excoin.account.add_withdrawal(withdrawal_data)
  else
    puts "Insufficient funds for withdrawal"
  end
end