Class: Etherlite::Abi::LoadContract

Inherits:
Object
  • Object
show all
Defined in:
lib/etherlite/commands/abi/load_contract.rb

Instance Method Summary collapse

Instance Method Details

#performObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/etherlite/commands/abi/load_contract.rb', line 3

def perform
  klass = Class.new(Etherlite::Contract::Base)

  define_class_getter klass, 'unlinked_bytecode', unlinked_bytecode

  abi_definitions.each do |definition|
    case definition['type']
    when 'function'
      define_function klass, definition
    when 'event'
      define_event klass, definition
    when 'constructor'
      define_class_getter klass, 'constructor', build_function_from_definition(definition)
    end
  end

  klass.functions.freeze
  klass.events.freeze
  ::Etherlite::EventProvider.register_contract_events klass
  klass
end