sendTransaction "code": - 32602, "message": "слишком много аргументов, требуется не более 1"
У меня есть контракт, который имеет функцию:
function addRequest(uint256 d) {
...
}
После компиляции и развертывания я набрал следующую команду:
curl 192.168.241.128:8545 -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{
"from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
"to": "0x8bed67280f46cc1ffd401cdb3dd5909f254c8f34",
"data": "0x4ca1fad8000000000000000000000000000000000000000000000000000000000000022b"
}, "latest"],"id":1}'
первый 4 байта данных - это первый 4-байтовый результат web3.sha3 ('addRequest (uint256)'), а затем значение uint32 555, заполненное до 32 байтов. Я не думаю, что это неправильно. Но это показывает мне результат ниже:
{"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"too many arguments, want at most 1"}}
Мне нужна рука, так может ли кто-нибудь помочь мне решить загадку? большое вам спасибо.
1 ответ
4
Проблема заключается в том, что eth_sendTransaction
принимает только один аргумент, но вы предоставляете два. Вы не должны передавать значение «последний», поскольку для этой функции это бессмысленно. Это должно работать:
curl 192.168.241.128:8545 -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", "to": "0x8bed67280f46cc1ffd401cdb3dd5909f254c8f34", "data": "0x4ca1fad8000000000000000000000000000000000000000000000000000000000000022b" }],"id":1}'
ответил Tjaden Hess 12 PMpWed, 12 Apr 2017 15:54:46 +030054Wednesday 2017, 15:54:46