class Etherlite::Abi::LoadFunction

Constants

MATCHER

Public Instance Methods

perform() click to toggle source
# File lib/etherlite/commands/abi/load_function.rb, line 5
def perform
  parts = MATCHER.match @signature
  raise ArgumentError, 'invalid method signature' if parts.nil?

  inputs = parts[3].split(',').map do |a|
    Etherlite::Contract::FunctionInput.new nil, LoadType.for(signature: a.strip)
  end

  case parts[1]
  when 'payable'
    build parts[2], inputs, [], true, false
  when 'onchain'
    build parts[2], inputs, [], false, false
  else
    ouputs = parts[1] == 'void' ? [] : [LoadType.for(signature: parts[1])]
    build parts[2], inputs, ouputs, false, true
  end
end

Private Instance Methods

build(*_args) click to toggle source
# File lib/etherlite/commands/abi/load_function.rb, line 26
def build(*_args)
  Etherlite::Contract::Function.new *_args
end