Class: EthereumContractABI::Encoders::FunctionEncoder
- Inherits:
-
Object
- Object
- EthereumContractABI::Encoders::FunctionEncoder
- Defined in:
- lib/ethereum-contract-abi/encoders/function_encoder.rb
Instance Method Summary collapse
- #encode_dynamic_input(input_values) ⇒ Object
- #encode_static_input(input_values) ⇒ Object
-
#initialize(function_inputs) ⇒ FunctionEncoder
constructor
A new instance of FunctionEncoder.
Constructor Details
#initialize(function_inputs) ⇒ FunctionEncoder
Returns a new instance of FunctionEncoder.
7 8 9 |
# File 'lib/ethereum-contract-abi/encoders/function_encoder.rb', line 7 def initialize(function_inputs) @function_inputs = function_inputs end |
Instance Method Details
#encode_dynamic_input(input_values) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ethereum-contract-abi/encoders/function_encoder.rb', line 11 def encode_dynamic_input(input_values) tail = encode_tail(input_values) tail_offsets = get_tail_offsets(input_values) head = @function_inputs.zip(input_values).map do |input, arg| if !input.type.is_dynamic input.encode_value(arg) else EthereumContractABI::Encoders::IntEncoder.encode(tail_offsets.shift) end end head.join('') + tail.join('') end |
#encode_static_input(input_values) ⇒ Object
24 25 26 27 28 |
# File 'lib/ethereum-contract-abi/encoders/function_encoder.rb', line 24 def encode_static_input(input_values) @function_inputs.zip(input_values).map do |input, arg| input.encode_value(arg) end.join('') end |