class Ethereum::ProjectInitializer

Attributes

combined_output[RW]
contract_names[RW]
contracts[RW]
libraries[RW]

Public Class Methods

new(location, optimize = false) click to toggle source
# File lib/ethereumex/project_initializer.rb, line 7
def initialize(location, optimize = false)
  ENV['ETHEREUM_SOLIDITY_BINARY'] ||= "/usr/local/bin/solc"
  solidity = ENV['ETHEREUM_SOLIDITY_BINARY']
  contract_dir = location
  if optimize 
    opt_flag = "--optimize"
  else
    opt_flag = ""
  end
  compile_command = "#{solidity} #{opt_flag} --combined-json abi,bin #{contract_dir}"
  raw_data = `#{compile_command}`
  data = JSON.parse(raw_data)
  @contract_names = data["contracts"].keys
  @libraries = {} 
  @contracts = @contract_names.collect do |contract_name|
    ContractInitializer.new(contract_name, data["contracts"][contract_name], self)
  end
end