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"}}

Мне нужна рука, так может ли кто-нибудь помочь мне решить загадку? большое вам спасибо.

5 голосов | спросил jiebang 12 AMpWed, 12 Apr 2017 10:19:49 +030019Wednesday 2017, 10:19:49

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

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132