无法将非字符串解组为类型为common.Address

时间:2017-12-14 09:42:54

标签: ruby blockchain ethereum geth parity-io

我正在使用Ruby学习以太坊区块链并使用此库:

https://github.com/EthWorks/ethereum.rb

我按照指南使用文件greeter.sol:

https://github.com/marekkirejczyk/ruby_ethereum_example/blob/master/contracts/greeter.sol

但我总是遇到这个错误:

invalid argument 0: json: cannot unmarshal non-string into Go struct field SendTxArgs.from of type common.Address

这是我目前的代码

contract = Ethereum::Contract.create file: File.join(File.dirname(__FILE__), '../contracts/greeter.sol')
address = contract.deploy_and_wait("Hello from ethereum.rb!")

任何人都可以帮助我,我对此很陌生。

感谢。

1 个答案:

答案 0 :(得分:4)

您可能应为default_account指定client(sender address)

就我而言,我已经以这种方式添加了它:

client = Ethereum::IpcClient.new("your path to .ipc", true)
client.default_account = '0xa9db3f4efe....'

然后

contract = Ethereum::Contract.create( abi: abi, name: name, client:client, address: address)