require File.expand_path(“../../ethereum.rb”, __FILE__)
namespace :ethereum do
namespace :contract do desc "Compile a contract" task :compile, [:path] do |_, args| contract = EvmClient::Solidity.new.compile(args[:path]) puts "Contract abi:" puts contract.map { |k, v| "#{k}: #{v["abi"]}" }.join("\n\n") puts puts "Contract binary code:" puts contract.map { |k, v| "#{k}: #{v["bin"]}" }.join("\n\n") puts end desc "Compile and deploy contract" task :deploy, [:path] do |_, args| puts "Deploing contract #{args[:path]}" @works = EvmClient::Contract.create(file: args[:path]) @works.deploy_and_wait { puts "." } address = @works.deployment.contract_address puts "Contract deployed under address: #{address}" end end
end