class Eth::Contract::Function
Provides the methods for smart contract function.
def self.calc_signature(name, inputs)
-
(String)
- function string.
Parameters:
-
inputs
(Array
) -- function input class list. -
name
(String
) -- function name.
def self.calc_signature(name, inputs) "#{name}(#{inputs.collect { |x| x.raw_type }.join(",")})" end
def self.encoded_function_signature(signature)
-
(String)
- encoded function signature string.
Parameters:
-
signature
(String
) -- function signature.
def self.encoded_function_signature(signature) Util.bin_to_hex Util.keccak256(signature)[0..3] end
def initialize(data)
-
data
(Hash
) -- function input and output data.
def initialize(data) @name = data["name"] @constant = data["constant"] @inputs = data["inputs"].map do |input| Eth::Contract::FunctionInput.new(input) end @outputs = data["outputs"].collect do |output| Eth::Contract::FunctionOutput.new(output) end @function_string = self.class.calc_signature(@name, @inputs) @signature = self.class.encoded_function_signature(@function_string) end