derohe
derohe copied to clipboard
Batched Transaction with multiple integrated addresses fail
When sending a transaction with multiple integrated addresses, the walletrpc returns the error
{"jsonrpc":"2.0","id":"1","error":{"code":-32098,"message":"Can not send nil transaction"}}
.
Example request:
curl -X POST \
http://deronode-fr-gra11-1:20209/json_rpc \
-H 'content-type: application/json' \
-d '{"jsonrpc": "2.0", "id": "1", "method": "transfer", "params": {"transfers": [{"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "dero1q...", "amount": 10000000000}, {"destination": "deroi1...", "amount": 10000000000}]}}'
If I exclude all the deroi1...
addresses, the transaction goes through.
BUT, the batched transaction is displayed extremely weird. The rpc call returns only one transaction hash, but the wallet log shows one for each transaction in the batch. However, only the first transaction (the one returned by the rpc call), is visible in the explorer. Every single transaction of the batch got a unique proof, and the proof can only be checked in the first transaction.
This behavior is extremely inconsistent and nowhere documented.