class Account

Attributes

tx[R]

Public Class Methods

[]( key ) click to toggle source
# File lib/universum/account.rb, line 15
def self.[]( key )
  o = find_by_address( key )
  if o
    o
  else
    o = new( key )
    ## note: auto-register (new) address in (yellow page) directory
    @@directory[ key ] = o
    o
  end
end
all() click to toggle source
# File lib/universum/account.rb, line 27
def self.all()  @@directory.values;  end
at( key) click to toggle source
# File lib/universum/account.rb, line 13
def self.at( key) find_by_address( key ); end
find( key ) click to toggle source
# File lib/universum/account.rb, line 12
def self.find( key ) find_by_address( key ); end
find_by_address( key ) click to toggle source
# File lib/universum/account.rb, line 7
def self.find_by_address( key )
   ## clean key (allow "embedded" name e.g 0x1111 (Alice))
   key = key.gsub(/\(.+\)/, '' ).strip
   @@directory[ key ]
end
new( address, balance: 0, tx: 0 ) click to toggle source
# File lib/universum/account.rb, line 48
def initialize( address, balance: 0, tx: 0 )
  @address = Address.new( address, balance: balance )    # type address - (hex) string starts with 0x
  @tx      = tx         # transaction (tx) count (used for nonce and replay attack protection)
end

Public Instance Methods

_auto_inc_tx() click to toggle source
# File lib/universum/account.rb, line 45
def _auto_inc_tx() @tx += 1; end
address() click to toggle source

account (builtin) services / transaction methods

# File lib/universum/account.rb, line 34
def address() @address; end
address_hex() click to toggle source
# File lib/universum/account.rb, line 35
def address_hex() @address.hex; end
balance() click to toggle source
# File lib/universum/account.rb, line 37
def balance() @address.balance; end
balance=( value ) click to toggle source

note: for now allow write access too!!!

# File lib/universum/account.rb, line 39
def balance=( value )
  @address.send( '@balance=', value )
end