mina
mina copied to clipboard
MINA Rosetta API doesn't properly recognise layer2 token balance changes
Preliminary Checks
- [X] This issue is not a duplicate. Before opening a new issue, please search existing issues: https://github.com/MinaProtocol/mina/issues
- [X] This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/MinaProtocol/mina/discussions
Description
We're using https://rosetta-devnet.minaprotocol.network/search/transactions
to get transaction details, however it looks like Rosetta API doesn't properly parse zkApp transactions containing Layer2 token balance changes.
For example: https://minascan.io/devnet/tx/5JuHSir8Nz8e2229pB8KCJuaeWJDSuRj2APG2CXLSDMHbFtCyktQ?type=zk-tx According to minascan, this transaction includes the following changes:
- B62qmRs2Nypefz8kSK5hQwYrvJUjjJumpfR3qKn1ZmcKE9kbFHBJfMv 0.15 PUNK5 decrease
- B62qpgMPTf7NrafqHZm6fzQ76qaZ3gbz9XSLNFWN3VhDkQmV516SXSx 0.15 PUNK5 increase
- B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2 1.1 MINA decrease (including 0.1 MINA fee)
However, rosetta API responds with the following:
{
"transactions": [
{
"block_identifier": {
"index": 322205,
"hash": "3NLBjWdUTu43MqdFzmgu8jt3teTRhnyT4eZ36F7THDhCqwLmxXXa"
},
"transaction": {
"transaction_identifier": {
"hash": "5JuHSir8Nz8e2229pB8KCJuaeWJDSuRj2APG2CXLSDMHbFtCyktQ"
},
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "zkapp_fee_payer_dec",
"status": "Success",
"account": {
"address": "B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-100000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 1
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 2
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qpgMPTf7NrafqHZm6fzQ76qaZ3gbz9XSLNFWN3VhDkQmV516SXSx",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 3
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qjwDWxjf4LtJ4YWJQDdTNPqZ69ZyeCzbpAFKN7EoZzYig5ZRz8JE",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "0",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 4
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qmRs2Nypefz8kSK5hQwYrvJUjjJumpfR3qKn1ZmcKE9kbFHBJfMv",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 5
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 6
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qpgMPTf7NrafqHZm6fzQ76qaZ3gbz9XSLNFWN3VhDkQmV516SXSx",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 7
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qjwDWxjf4LtJ4YWJQDdTNPqZ69ZyeCzbpAFKN7EoZzYig5ZRz8JE",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "0",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 8
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qmRs2Nypefz8kSK5hQwYrvJUjjJumpfR3qKn1ZmcKE9kbFHBJfMv",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 9
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 10
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qpgMPTf7NrafqHZm6fzQ76qaZ3gbz9XSLNFWN3VhDkQmV516SXSx",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 11
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qjwDWxjf4LtJ4YWJQDdTNPqZ69ZyeCzbpAFKN7EoZzYig5ZRz8JE",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "0",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 12
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qmRs2Nypefz8kSK5hQwYrvJUjjJumpfR3qKn1ZmcKE9kbFHBJfMv",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 13
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qrSZhDgpv9Gxz5dHtFpMauoXPyi6Ti52UCtTMvVApx5ZUeZ5V5Q2",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-1000000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 14
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qpgMPTf7NrafqHZm6fzQ76qaZ3gbz9XSLNFWN3VhDkQmV516SXSx",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "-150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 15
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qjwDWxjf4LtJ4YWJQDdTNPqZ69ZyeCzbpAFKN7EoZzYig5ZRz8JE",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "0",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
},
{
"operation_identifier": {
"index": 16
},
"type": "zkapp_balance_update",
"status": "Success",
"account": {
"address": "B62qmRs2Nypefz8kSK5hQwYrvJUjjJumpfR3qKn1ZmcKE9kbFHBJfMv",
"metadata": {
"token_id": "wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf"
}
},
"amount": {
"value": "150000000",
"currency": {
"symbol": "MINA",
"decimals": 9
}
}
}
],
"related_transactions": []
}
}
],
"total_count": 1
}
Notice how it never mentions PUNK5 in operations - it always responds with
"currency": { "symbol": "MINA", "decimals": 9 }
Steps to Reproduce
curl --location 'https://rosetta-devnet.minaprotocol.network/search/transactions' \
--header 'Content-Type: application/json' \
--data '{
"network_identifier": {
"blockchain": "mina",
"network" : "testnet"
},
"transaction_identifier": {"hash": "5JuHSir8Nz8e2229pB8KCJuaeWJDSuRj2APG2CXLSDMHbFtCyktQ"}
}'
Expected Result
Some operations should mention PUNK5, with appropriate decimals (or any other token being transferred) as a currency.
Actual Result
API always responds with
"currency": {"symbol": "MINA", "decimals": 9}
even though there was a l2 token balance change.
Also, it seems like the same change is included multiple times.
Daemon version
latest?
How frequently do you see this issue?
Always
What is the impact of this issue on your ability to run a node?
Medium
Status
n/a
Additional information
No response