Class: Types::Address

Inherits:
TypedValue show all
Includes:
Comparable
Defined in:
lib/solidity/typed/values.rb

Constant Summary

Constants inherited from Typed

Typed::ADDRESS_ZERO, Typed::BYTES20_ZERO, Typed::BYTES32_ZERO, Typed::BYTES_ZERO, Typed::INSCRIPTION_ID_ZERO, Typed::STRING_ZERO

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TypedValue

#==, #as_data, #eql?, #hash, #pretty_print, #to_s

Methods inherited from Typed

#as_data, #as_json, dump, serialize, #serialize, #type

Constructor Details

#initialize(initial_value = ADDRESS_ZERO) ⇒ Address

Returns a new instance of Address.

Raises:

  • (ArgumentError)


57
58
59
60
61
62
63
64
65
66
# File 'lib/solidity/typed/values.rb', line 57

def initialize( initial_value = ADDRESS_ZERO )
   ## was: initial_value ||= type.zero
   ##     check if nil gets passed in - default not used?  

   raise ArgumentError, "expected literal of type #{type}; got typed #{initial_value.pretty_print_inspect}"    if initial_value.is_a?( Typed )
   
   @value = type.check_and_normalize_literal( initial_value )  
   @value.freeze  ## freeze here - why? why not?
   @value
end

Class Method Details

.typeObject



52
# File 'lib/solidity/typed/values.rb', line 52

def self.type() AddressType.instance; end

.zeroObject



53
# File 'lib/solidity/typed/values.rb', line 53

def self.zero() @zero ||= new; end

Instance Method Details

#<=>(other) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/solidity/typed/values.rb', line 70

def <=>(other)
   ## compare hexstring instead of unint? - why? why not?
   if other.is_a?(Address) 
      to_uint <=> other.to_uint
   else
      ## use type error or retur nil?
      raise ArgumentError, "Address#<=>(other) expects Address; got #{other.class.name}" 
   end
end

#to_uintObject

add helper here - why? why not?



81
82
83
84
# File 'lib/solidity/typed/values.rb', line 81

def to_uint  ## add helper here - why? why not?
   num =  @value.to_i(16)
   UInt.new( num )
end

#zero?Boolean

Returns:

  • (Boolean)


54
# File 'lib/solidity/typed/values.rb', line 54

def zero?() @value == ADDRESS_ZERO; end