require File.expand_path(“../../platon.rb”, __FILE__)

namespace :platon do

namespace :contract do

  desc "Compile a contract"
  task :compile, [:path] do |_, args|
    contract = Platon::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 = Platon::Contract.create(file: args[:path]) # TODO: you should install platon-node on your test pc
    @works.deploy_and_wait { puts "." }
    address = @works.deployment.contract_address
    puts "Contract deployed under address: #{address}"
  end

end

end