telosnetwork / telos-evm-rpc

2 stars 3 forks source link

Investigate transaction missing 0x #14

Open tomtomcrypto opened 1 year ago

tomtomcrypto commented 1 year ago

Write a test and fix

Hi Jesse, sorry to bother you again, we encountered a strange issue that crashed out telos mainnet subgraph

graph-node-telos-mainnet_1 | Aug 03 13:06:30.393 ERRO Subgraph failed with non-deterministic error: failed to process trigger: block #287593290 (0x3181…303d), transaction 75173b5d94af2810f9e275a0c021b541c4178ed3ef0d29ebfb1af98e6dcd0d7b: Found no transaction for event, retry_delay_s: 1800, attempt: 5, sgd: 29, subgraph_id: QmW7C3oSwhGYGGoi33NpkexaqAYxGm5JmYUegHAMUQ18Sq, component: SubgraphInstanceManager

We checked the transaction, adding "0x" in front of it:

75173b5d94af2810f9e275a0c021b541c4178ed3ef0d29ebfb1af98e6dcd0d7b should have been 0x75173b5d94af2810f9e275a0c021b541c4178ed3ef0d29ebfb1af98e6dcd0d7b

The trx itself looks ok: https://www.teloscan.io/tx/0x75173b5d94af2810f9e275a0c021b541c4178ed3ef0d29ebfb1af98e6dcd0d7b

Question is how the heck subgraph read a transaction without 0x in front of it. I wonder if this may be an issue on telos RPC? Maybe it isn't, but I share with you just in case, hoping it's not a big deal to have a look at this transaction.

RPC used in our subgraph: https://mainnet.telos.net/evm

tomtomcrypto commented 11 months ago

Calling eth_getBlock gives

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "size": "0x0",
        "totalDifficulty": "0x0",
        "uncles": [],
        "difficulty": "0x0",
        "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "gasLimit": "0x3b9aca00",
        "miner": "0x0000000000000000000000000000000000000000",
        "nonce": "0x0000000000000000",
        "parentHash": "0x26941c61492a31df57fd7853b28c678a677cd88ad602228f0564109645e4f995",
        "receiptsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
        "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "transactionsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "gasUsed": "0x1ee67",
        "hash": "0x3181aa05a5c8f6c9a34982c03d3aef62dba5fd45caa37ca712b16c50e019303d",
        "logsBloom": "0x0020000200000000000000008000000000000000000000000000000000000000008000000000000000000000000000000000000000000000100000000000000200000000000400000000000c000000200000000000000000000000008000000000000000004000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001000820080000004000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000001000000000001000000000000000000000000000000000000100000000000000000000000000401000000000000000",
        "number": "0x1124534a",
        "timestamp": "0x64a853f8",
        "transactions": [
            "0x75173b5d94af2810f9e275a0c021b541c4178ed3ef0d29ebfb1af98e6dcd0d7b"
        ]
    }
}

This looks correct. But graphnode uses subscription to ws I think ? Need to check that next

tomtomcrypto commented 9 months ago

Should be solved but I am setting up a graphnode to confirm