Sha256: cc56d7001995401be1da0046d2313c67a164d354537c60903d26bb1c69a5c7e3

Contents?: true

Size: 980 Bytes

Versions: 4

Compression:

Stored size: 980 Bytes

Contents

module Bitbank
  class Transaction
    attr_reader :txid, :address, :category, :amount, :confirmations

    def initialize(client, txid, data={})
      @client = client
      @txid = txid

      load_details(data)
    end

    def account
      @account ? Account.new(@client, @account) : nil
    end

    def time
      Time.at(@time)
    end

    def confirmed?
      confirmations && confirmations > 6
    end

    def ==(other)
      txid == other.txid
    end

    private

    def load_details(data={})
      data = @client.request('gettransaction', txid) if data.empty?
      data.symbolize_keys!

      details = ((data.delete(:details) || []).first || {}).symbolize_keys
      @account = data[:account] || details[:account]
      @address = data[:address] || details[:address]
      @category = data[:category] || details[:category]
      @amount = data[:amount] || details[:amount]
      @confirmations = data[:confirmations]
      @time = data[:time]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bitbank-0.1.2 lib/bitbank/transaction.rb
bitbank-0.1.1 lib/bitbank/transaction.rb
bitbank-0.1.0 lib/bitbank/transaction.rb
bitbank-0.0.1 lib/bitbank/transaction.rb