class EvmClient::Solidity
Constants
- OUTPUT_REGEXP
Public Class Methods
new(bin_path = "solc")
click to toggle source
# File lib/evm_client/solidity.rb, line 15 def initialize(bin_path = "solc") @bin_path = bin_path @args = "--bin --abi --optimize" end
Public Instance Methods
compile(filename)
click to toggle source
# File lib/evm_client/solidity.rb, line 20 def compile(filename) result = {} execute_solc(filename).scan(OUTPUT_REGEXP).each do |match| _file, name, bin, abi = match result[name] = {} result[name]["abi"] = abi result[name]["bin"] = bin end result end
Private Instance Methods
execute_solc(filename)
click to toggle source
# File lib/evm_client/solidity.rb, line 32 def execute_solc(filename) cmd = "#{@bin_path} #{@args} '#{filename}'" out, stderr, status = Open3.capture3(cmd) raise SystemCallError, "Unanable to run solc compliers" if status.exitstatus == 127 raise CompilationError, stderr unless status.exitstatus == 0 out end