Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api: Add runtime and Consensus transaction failure details #347

Conversation

aefhm
Copy link
Contributor

@aefhm aefhm commented Mar 7, 2023

What

Add runtime failure details including code, module, and message to API response for runtime transactions.

Add failure details including code, module, and message to API response for Consensus transactions.

Changes

Runtime

For v1/emerald/transactions/af4c53ebbc11570a4b4fc086ea52cea48e50d6a52a0b2e81446bc54ae727baae, we see:

{
  "is_total_count_clipped": false,
  "total_count": 0,
  "transactions": [
    {
      "amount": "400000000000000000",
      "body": {
        "address": "o3KM94hIeiU9oLecNoDuhYlcBPM=",
        "data": "",
        "value": "BY0V4XYoAAA="
      },
      "eth_hash": "3db558dd0d635131ab449c2607f63f6c2d21e222de96945894c6051da9f9e769",
      "fee": "2231400000000000",
      "gas_limit": 22314,
      "gas_used": 22143,
      "hash": "af4c53ebbc11570a4b4fc086ea52cea48e50d6a52a0b2e81446bc54ae727baae",
      "index": 2,
      "method": "evm.Call",
      "nonce_0": 788,
      "round": 1007653,
      "sender_0": "oasis1qrzhdmygev6z8vq4rpfxdscqns0xzfawgye26kp0",
      "sender_0_eth": "0x7DC7B25043983BBF7C30D45ffaf132C0C5F100A8",
      "size": 143,
      "success": true,
      "timestamp": "2022-04-11T15:50:44-05:00",
      "to": "oasis1qpv50jh2t5pmk6gpa3hmugl954ewkahzgqk32gc5",
      "to_eth": "0xa3728cf788487A253DA0B79c3680eE85895c04f3"
    }
  ]
}

For a transaction with error such as v1/emerald/transactions/9f80d9ae209a1f487bf7bc4b548aab11ab5fb1e3d6dab80d30ab7a9d68259356, we see:

{
  "is_total_count_clipped": false,
  "total_count": 0,
  "transactions": [
    {
      "amount": "0",
      "body": {
        "address": "FIZsupZtnOrWpl1PLf5Oyd/Lpec=",
        "data": "duDlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAGy5dQqSZDOC4CDqmhcKu4PfBfMLAAAAAAAAAAAAAAAAIccYwi1S0POnibdS1ML9WQiopzMAAAAAAAAAAAAAAAC8AzIDeWzCyMVDparpOppkMyBDPQAAAAAAAAAAAAAAAGy5dQqSZDOC4CDqmhcKu4PfBfMLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAEpZCzhDhFV5KkuQbJ3GO3qgyjFgAAAAAAAAAAAAAAAB3gYvBp/x8fMv55LEB41t3qsE2ZAAAAAAAAAAAAAAAAmpG8PtfQ1kIsdZnM3YwiAL/UqOoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAABrWYTnmXjpZSVHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGvp7hHfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7u8gyiY69yV/MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKANOW2z1Li5RQLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHf9x/3LYAAAAAAAAAAAAAAAAAAAAAAAAAAAASy/21XKW+I3XsDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9iNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRhOcqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfDG/uCGGQj3kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOt1ZRTCpWFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0+e6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfTmOg=",
        "value": ""
      },
      "code": 8,
      "eth_hash": "4ce227e0561a43933eb6b4904f6d634c430cff33bec4e659636a16cdd69031b5",
      "fee": "100000000000000000",
      "gas_limit": 1000000,
      "gas_used": 87316,
      "hash": "9f80d9ae209a1f487bf7bc4b548aab11ab5fb1e3d6dab80d30ab7a9d68259356",
      "index": 2,
      "message": "reverted: xky",
      "method": "evm.Call",
      "module": "evm",
      "nonce_0": 11157,
      "round": 1008173,
      "sender_0": "oasis1qq99lg557djn39hlp42jq03jqusxhy7ussve94y9",
      "sender_0_eth": "0x8b262A8204B31066Ee28Da5F2da249171d64Bf5C",
      "size": 1456,
      "success": false,
      "timestamp": "2022-04-11T16:44:04-05:00",
      "to": "oasis1qpmu8k80egszzxs9ruc4zzklsd69u79tvgmt8prt",
      "to_eth": "0x14866Cba966D9cEAd6A65D4f2Dfe4eC9DfCBA5E7"
    }
  ]
}

Consensus

For v1/consensus/transactions/1224426e4126f79c6486fa5b74f096c07471bfd51e6b25242c131eb5fa7ecc8f, we see:

{
  "block": 8051022,
  "body": "omJpZFggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4uqpn8AI+H9nY29tbWl0c4GjY3NpZ1hAuv+eM1Glh/Bc8ajQfSZkUUd01Lx+Hn8YJ3HNHnlWY9n9FbaJz1yUNGF0rTwUErIIKFMqr14AQ7YNSGIfrgD9AGZoZWFkZXKnZXJvdW5kGgAPUjFnaW9fcm9vdFggCijJ6xtpKuQxQri8yv9lr+n6FCcOYI4rhast9pCLHxdncmFrX3NpZ1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpzdGF0ZV9yb290WCCgmvMKVdJb+82yO6J/+yof2oeUahE497Tn/QutU1iskGxpbl9tc2dzX2hhc2hYIMZyuNHvVu0oq4fDYixRFAab3TrXuPlzdJjQwB7O8JZ6bW1lc3NhZ2VzX2hhc2hYIMZyuNHvVu0oq4fDYixRFAab3TrXuPlzdJjQwB7O8JZ6bXByZXZpb3VzX2hhc2hYIJnU+qz97kUkdE0PrZf/z8e/zZq3JHGJHn9vx8MA4DBvZ25vZGVfaWRYIA6Y9YmyDLUxzIf4uaodHmXBhpjlTgxC0h74P2RQSD22",
  "code": 0,
  "fee": "0",
  "hash": "1224426e4126f79c6486fa5b74f096c07471bfd51e6b25242c131eb5fa7ecc8f",
  "index": 0,
  "method": "roothash.ExecutorCommit",
  "nonce": 198436,
  "sender": "oasis1qzfpcry9yj9z4w3rr5f5tmtu4v7xs5pjmufaw097",
  "success": true,
  "timestamp": "2022-04-11T09:29:25-05:00"
}

For v1/consensus/transactions/e7b22c0153c78f66b810f78ab68fbcb5d7a2d70bb5ec617c704817cf57d32903, we see:

{
  "block": 8048958,
  "body": "ompzaWduYXR1cmVzhaJpc2lnbmF0dXJlWEBV9LaBdMo4Y/qdQzacuRVDcGvAsZGluftBfgZ396CwdWYh4YoaVc2beQi3wwKQo7z/rNztw+AraR8pD4chyCUDanB1YmxpY19rZXlYIEQpQ8coIhmBBXjvdI53xwCF5tkKz+UzUORedDe+8ymOomlzaWduYXR1cmVYQIwBMiaxaoyzpI8XX8Bsfyh/oiHGkJG4Ngb74tyMkWHivyLnE0r6v2/ytENJjDFL16kNFsGdw5NnrwsPabGvfgZqcHVibGljX2tleVggwVzDTtgyF/L/biM+/RrHJhie2Ttk+FK5l4z3I8LjOsOiaXNpZ25hdHVyZVhAke/fnGRihjE7XZ604IlUtUk40GY5wLi1UZC4T5w0lE+9nV7dXlk2jeuD8KFRoY33PAn8bhWcgD3QKl2o1m7WB2pwdWJsaWNfa2V5WCCgiTdvmTp3ZuC/TcXzCSvfIfRnv3m5nDj/wskYnMrqwaJpc2lnbmF0dXJlWEC7XlBijgxqdQoERSiVC02CXyYZQwFa048gXkpoZC8CxlBsft5jaApv0LgJzroUAG7sPEIUT70gf7lzTP1gTYcPanB1YmxpY19rZXlYIGAeTvd4c+df5kUJ7v76rnKfKhAgMtIqEgXvBpjtWp+comlzaWduYXR1cmVYQExF3kq8C94rK/T1qWIvmNv5OreZvRiCRXXWAKshe3GgCaId0RrvVW49TT/a8pL5fdS+rGkNpFd6pbJwmvFOoAJqcHVibGljX2tleVggKGqRI7Ryg5srApDU+DMqfjkTcIUp3111fcD9hxYfZSNzdW50cnVzdGVkX3Jhd192YWx1ZVkB3qthdgJiaWRYIEQpQ8coIhmBBXjvdI53xwCF5tkKz+UzUORedDe+8ymOY3AycKJiaWRYIMFcw07YMhfy/24jPv0axyYYntk7ZPhSuZeM9yPC4zrDaWFkZHJlc3Nlc/ZjdGxzo2dwdWJfa2V5WCAoapEjtHKDmysCkNT4Myp+ORNwhSnfXXV9wP2HFh9lI2lhZGRyZXNzZXP2bG5leHRfcHViX2tleVggx1QmTaHUD/NeZ3TP2QdFJs1yncc9pEdA4cb5MW7eci5jdnJmoWJpZFggYB5O93hz51/mRQnu/vqucp8qECAy0ioSBe8GmO1an5xlcm9sZXMIaHJ1bnRpbWVz9mljb25zZW5zdXOiYmlkWCCgiTdvmTp3ZuC/TcXzCSvfIfRnv3m5nDj/wskYnMrqwWlhZGRyZXNzZXOBomJpZFggwVzDTtgyF/L/biM+/RrHJhie2Ttk+FK5l4z3I8LjOsNnYWRkcmVzc6NiSVBQAAAAAAAAAAAAAP//j26GBWRQb3J0GWggZFpvbmVgaWVudGl0eV9pZFggGDWO0+R7qSrWB0bvT+V2Kz6vlHcm6ZnaNQM2/FsFqEBqZXhwaXJhdGlvbgJwc29mdHdhcmVfdmVyc2lvbmYyMi4xLjM=",
  "code": 13,
  "fee": "0",
  "hash": "e7b22c0153c78f66b810f78ab68fbcb5d7a2d70bb5ec617c704817cf57d32903",
  "index": 51,
  "message": "registry: node expired",
  "method": "registry.RegisterNode",
  "module": "registry",
  "nonce": 13419,
  "sender": "oasis1qryxlps075x66qt24kxskjqy2sp75nfuccs46k9a",
  "success": false,
  "timestamp": "2022-04-11T06:00:27-05:00"
}

TODO

  • Refactor to error substructure

@kostko
Copy link
Member

kostko commented Mar 7, 2023

@aefhm aefhm self-assigned this Mar 7, 2023
api/v1/logic.go Outdated Show resolved Hide resolved
@aefhm aefhm added documentation Improvements or additions to documentation api-layer API layer-related issues. labels Mar 7, 2023
@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch 2 times, most recently from 966dd33 to 35f4518 Compare March 7, 2023 20:34
@aefhm aefhm changed the title api: Add runtime transaction failure details api: Add runtime and Consensus transaction failure details Mar 7, 2023
@aefhm aefhm marked this pull request as ready for review March 7, 2023 20:38
api/spec/v1.yaml Outdated Show resolved Hide resolved
@csillag
Copy link
Contributor

csillag commented Mar 8, 2023

👍🏻

storage/client/client.go Show resolved Hide resolved
api/spec/v1.yaml Outdated Show resolved Hide resolved
Copy link
Collaborator

@mitjat mitjat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Looks good in general, I just have some suggestions for a more ergonomic API.

BTW, thank you for showing the output. This:

  "is_total_count_clipped": false,
  "total_count": 0,

made me realize we report total_count incorrectly for single txs, a bug from a previous PR. I piggy-backed a small fix commit onto your PR since it's vaguely related :), LMK and I can fork it into a separate PR if you'd prefer. Otherwise, please pull the commit to your local machine. Thanks!

api/spec/v1.yaml Outdated Show resolved Hide resolved
api/spec/v1.yaml Outdated Show resolved Hide resolved
api/v1/logic.go Outdated Show resolved Hide resolved
storage/client/client.go Show resolved Hide resolved
@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch from 8cb02ac to 57c02d4 Compare March 9, 2023 01:02
@aefhm
Copy link
Contributor Author

aefhm commented Mar 10, 2023

New

{
  "is_total_count_clipped": false,
  "total_count": 1,
  "transactions": [
    {
      "amount": "0",
      "body": {
        "address": "t1mAPucIdVnrYBpJOcLV2nZoOFo=",
        "data": "RBo+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
        "value": ""
      },
      "error": {
        "code": 2,
        "message": "execution failed: out of gas",
        "module": "evm"
      },
      "eth_hash": "aae8c89c919dd75ca1121f19447fe0715ae3acc51e2dfb36c18643d8eee92b99",
      "fee": "151300000000000",
      "gas_limit": 1513,
      "gas_used": 1513,
      "hash": "7584aad1e0c54b92e268b3ab1d34184418f20c851e95914ad329dcbf4bf8711a",
      "index": 4,
      "method": "evm.Call",
      "nonce_0": 422,
      "round": 1003302,
      "sender_0": "oasis1qqkr8g72rle6mhxh2av4a0r8ps3gljml2gj259de",
      "sender_0_eth": "0xE2B62a0B89a8ECb9307cFc21b786F794E40445d8",
      "size": 204,
      "success": false,
      "timestamp": "2022-04-11T08:05:59-05:00",
      "to": "oasis1qzwr3xtmuq0q0rufe54xcl7ajrlghu7fgqlkvvue",
      "to_eth": "0xB759803Ee7087559EB601a4939c2d5da7668385a"
    }
  ]
}
{
  "block": 8048958,
  "body": "ompzaWduYXR1cmVzhaJpc2lnbmF0dXJlWECsWoWuiC33majyAdVHbsZJ+guzlc4zEp2UDJ45OP/FiL0A+3iqu8BNyAC1PnLYHdW+8mICKToOUycgyQCIDmwGanB1YmxpY19rZXlYICxwNhm5nvwEXiBV5scA/ZvwHvLGdXdlPwxUX3nE+9mDomlzaWduYXR1cmVYQGSMhtpYK4qpQ8ioUVde86bj6L8AALd/YK9mwVQedWpu++s6aqqT8//ydCKJfcdJ5stM9j0fkK2ImiRNqdyeeg9qcHVibGljX2tleVgg6zmwn+t81348UrpTTGuhOX+wWK5bxD4muCSfmmmE1nWiaXNpZ25hdHVyZVhA2u4IHQ+4XVIddj+dQ5xslTqmLH+sPqiW8zCKA+fS/qwi3r+wt+kbW3dSYdeTHE3rIp/5JfmoDwUTd4rBqISJB2pwdWJsaWNfa2V5WCBXht5QU1fXv+p4zjhAjfnuKfMX2d/aJcXGYxcyaQjrZKJpc2lnbmF0dXJlWEBR6DjdzlTx9G939yyQc4cBV8AvUH1qYJXUQANEN6/bskB+0RgsvcucP8LhKASSxOIhl3mMmcrXzfWnphfW348GanB1YmxpY19rZXlYIKCTmYVBmSpFi0Xa1KX1HaYF6nf/QWl0TPH8SwP7o9pxomlzaWduYXR1cmVYQCFp99enpVaLBDp9lx95Ndn62rA2TuNkiDU1kyN+CDlQK7q/w5KHsazKiFFXZ9T8CXM+whG7xbuGQy7d3RJAcgdqcHVibGljX2tleVgg72iZXblXKzIfKwoFb8WPZX7z3Y2AEUDISkCH3UWPvYVzdW50cnVzdGVkX3Jhd192YWx1ZVkB3qthdgJiaWRYICxwNhm5nvwEXiBV5scA/ZvwHvLGdXdlPwxUX3nE+9mDY3AycKJiaWRYIOs5sJ/rfNd+PFK6U0xroTl/sFiuW8Q+Jrgkn5pphNZ1aWFkZHJlc3Nlc/ZjdGxzo2dwdWJfa2V5WCDvaJlduVcrMh8rCgVvxY9lfvPdjYARQMhKQIfdRY+9hWlhZGRyZXNzZXP2bG5leHRfcHViX2tleVggx52g9feFbnHcLe8fgQNvuubNhZZKSbVMM7io614UH8JjdnJmoWJpZFggoJOZhUGZKkWLRdrUpfUdpgXqd/9BaXRM8fxLA/uj2nFlcm9sZXMIaHJ1bnRpbWVz9mljb25zZW5zdXOiYmlkWCBXht5QU1fXv+p4zjhAjfnuKfMX2d/aJcXGYxcyaQjrZGlhZGRyZXNzZXOBomJpZFgg6zmwn+t81348UrpTTGuhOX+wWK5bxD4muCSfmmmE1nVnYWRkcmVzc6NiSVBQAAAAAAAAAAAAAP//j26K22RQb3J0GWggZFpvbmVgaWVudGl0eV9pZFggVt63FfFzNMgUngrMvnKks+icySi5LwkjniJEJMZAimNqZXhwaXJhdGlvbgJwc29mdHdhcmVfdmVyc2lvbmYyMi4xLjM=",
  "error": {
    "code": 13,
    "message": "registry: node expired",
    "module": "registry"
  },
  "fee": "0",
  "hash": "47b754d53d66488aae07da9802e5ac08ea7967e4533300c3e32371a16536f405",
  "index": 8,
  "method": "registry.RegisterNode",
  "nonce": 13419,
  "sender": "oasis1qqvgrcwnulmvy604rvy4sgmakxjacg0y6uhpc4xw",
  "success": false,
  "timestamp": "2022-04-11T06:00:27-05:00"
}

@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch 2 times, most recently from 79b3e16 to df27850 Compare March 10, 2023 05:29
@aefhm aefhm requested review from mitjat and Andrew7234 March 13, 2023 17:30
Copy link
Collaborator

@mitjat mitjat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! The API LGTM now, we're pretty close.

storage/client/client.go Outdated Show resolved Hide resolved
storage/client/client.go Outdated Show resolved Hide resolved
api/spec/v1.yaml Show resolved Hide resolved
@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch 3 times, most recently from 0a3c449 to 18ac305 Compare March 14, 2023 03:11
Copy link
Collaborator

@mitjat mitjat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch from 18ac305 to a41f7dc Compare March 15, 2023 21:33
@aefhm aefhm force-pushed the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch from a41f7dc to 6eaebd1 Compare March 15, 2023 21:33
@aefhm aefhm merged commit e4ff22f into main Mar 16, 2023
@aefhm aefhm deleted the CU-861m9grpa_Expose-error-module-code-message-for-RuntimeTransaction_Xi-Zhang branch March 16, 2023 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-layer API layer-related issues. documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants