class Address

Public Class Methods

new( address, balance: 0 ) click to toggle source
# File lib/universum/address.rb, line 7
def initialize( address, balance: 0 )
  @address = address
  @balance = balance
end
zero() click to toggle source
# File lib/universum/address.rb, line 5
def self.zero() '0x0000'; end

Public Instance Methods

_add( value ) click to toggle source
# File lib/universum/address.rb, line 44
def _add( value )
  @balance += value
end
_send( from, value ) click to toggle source

private (internal use only) methods - PLEASE do NOT use (use transfer/send)

# File lib/universum/address.rb, line 31
def _send( from, value )
  ## todo/fix: assert value > 0
  ## todo/fix: add missing  -= part in transfer!!!!

  ## use this (current contract) for debit (-) ammount
  from._sub( value )    # sub(tract) / debit from the sender (current contract)
  _add( value )         # add / credit to the recipient
end
_sub( value ) click to toggle source
# File lib/universum/address.rb, line 40
def _sub( value )
  @balance -= value
end
balance() click to toggle source
# File lib/universum/address.rb, line 13
def balance() @balance; end
hex() click to toggle source
# File lib/universum/address.rb, line 12
def hex()     @address; end
send( value ) click to toggle source
# File lib/universum/address.rb, line 23
def send( value )  ## @payable @public
  ## note: auto-adds "global" from address (using Universum.this)
  _send( Universum.this, value )
end
transfer( value ) click to toggle source
# File lib/universum/address.rb, line 17
def transfer( value )  ## @payable @public
  ## todo/fix: throw exception if insufficient funds
  ## todo/fix: use assert( send( value )
  send( value )   # returns true/false
end