derohe icon indicating copy to clipboard operation
derohe copied to clipboard

Batched Transaction with multiple integrated addresses fail

Open jon4hz opened this issue 2 years ago • 0 comments

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.

jon4hz avatar Aug 29 '22 22:08 jon4hz