Class: Receipt

Inherits:
Object
  • Object
show all
Defined in:
lib/universum/universum.rb

Overview

transaction receipt

Constant Summary collapse

@@directory =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tx:, block:, contract: nil) ⇒ Receipt

Returns a new instance of Receipt.



393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
# File 'lib/universum/universum.rb', line 393

def initialize( tx:,
                block:,
                contract: nil )
   @nonce = tx.nonce
   @from  = tx.from
   @to    = tx.to
   @value = tx.value
   ## todo/fix: add data too!!!

   @block_number    = block.number
   ## todo/fix: add block_hash

   if contract
     ## note: for easier debugging add class name in () to address (needs to get stripped away in lookup)
     @contract_address = "#{contract.address} (#{contract.class.name})"
   else
     @contract_address = nil
   end
end

Instance Attribute Details

#block_numberObject (readonly)

required attributes / fields



388
389
390
# File 'lib/universum/universum.rb', line 388

def block_number
  @block_number
end

#contract_addressObject (readonly)

optional



391
392
393
# File 'lib/universum/universum.rb', line 391

def contract_address
  @contract_address
end

#fromObject (readonly)

required attributes / fields



388
389
390
# File 'lib/universum/universum.rb', line 388

def from
  @from
end

#nonceObject (readonly)

required attributes / fields



388
389
390
# File 'lib/universum/universum.rb', line 388

def nonce
  @nonce
end

#toObject (readonly)

required attributes / fields



388
389
390
# File 'lib/universum/universum.rb', line 388

def to
  @to
end

#valueObject (readonly)

required attributes / fields



388
389
390
# File 'lib/universum/universum.rb', line 388

def value
  @value
end

Class Method Details

.[](tx) ⇒ Object



379
# File 'lib/universum/universum.rb', line 379

def self.[]( tx ) find( tx ); end

.allObject



384
# File 'lib/universum/universum.rb', line 384

def self.all() @@directory.values; end

.find(tx) ⇒ Object



375
376
377
378
# File 'lib/universum/universum.rb', line 375

def self.find( tx )
   key = "#{tx.from}/#{tx.nonce}"
   @@directory[ key ];
end

.store(o) ⇒ Object



381
382
383
# File 'lib/universum/universum.rb', line 381

def self.store( o )
key = "#{o.from}/#{o.nonce}"
@@directory.store( key, o ); end

Instance Method Details

#contractObject

convenience helper (quick contract lookup)



413
414
415
416
417
418
419
# File 'lib/universum/universum.rb', line 413

def contract   # convenience helper (quick contract lookup)
  if @contract_address
    Contract.find( @contract_address )
  else
    nil
  end
end