wharfkit / antelope

Core types, client interfaces, and other tools for working with Antelope-based blockchains.
Other
42 stars 23 forks source link

Serializer.decode failure #62

Closed cc32d9 closed 1 year ago

cc32d9 commented 1 year ago

while testing my history database, Wharf failed to decode an action in WAX transaction ae2639af9b5b3bdf6359ec860a9287f633aad09b50805811bbee02f7f3407b24:

         "act": {
            "account": "deepmineappg",
            "name": "updinvavfrom",
            "authorization": [
              {
                "actor": "deepmineappg",
                "permission": "dmgactions"
              }
            ],
            "data": "30700506000100004d884164"
          },

Hyperion output for the same transaction:

     "act": {
        "account": "deepmineappg",
        "name": "updinvavfrom",
        "authorization": [
          {
            "actor": "deepmineappg",
            "permission": "dmgactions"
          }
        ],
        "data": {
          "asset_id": "1099612647472",
          "available_from": 1682016333
        }
cc32d9 commented 1 year ago

there's more examples, will fetch if needed

aaroncox commented 1 year ago

I just tested out the above action with the serializer and it seemed to decode just fine 🤔

https://github.com/greymass/eosio-core/commit/d0524a86e41b205f47a6abf19159c8151e7b6b53#diff-381e2e9b910d04add7116b65c91236df76639b4a08bebce93cb6e985be37dd5eR465-R471

Decoding that specific hex returns the JSON of:

{ asset_id: '1099612647472', available_from: 1682016333 }

Using:

const abi = (await api.v1.chain.get_abi('deepmineappg')).abi
const data = '30700506000100004d884164'
const decoded = Serializer.decode({data, type: 'updinvavfrom', abi})

Did you have an example of how it wasn't properly decoding it?

cc32d9 commented 1 year ago

seems like a bad example, my database misses the ABI for this particular contract. I'll find a better example where I got "Unknown type" errors

cc32d9 commented 1 year ago

Here's another example: 33e28a1c7aee8f67490458e9030623c761cd12ba1ffab12745cbd79f14752b18

        {
          "action_ordinal": 4,
          "creator_action_ordinal": 1,
          "receipt": {
            "receiver": "m.federation",
            "act_digest": "7a99ae013cb2bffe76161824454377db6d5bc9f521a6602d95b7943a5d13d5f7",
            "global_sequence": 2749827696,
            "recv_sequence": 582237869,
            "auth_sequence": [
              {
                "account": "m.federation",
                "sequence": 794654887
              }
            ],
            "code_sequence": 65,
            "abi_sequence": 13
          },
          "receiver": "m.federation",
          "act": {
            "account": "m.federation",
            "name": "logmine",
            "authorization": [
              {
                "actor": "m.federation",
                "permission": "log"
              }
            ],
            "data": "000090860374d1c600002003004b000f00c800310800000000000004544c4d00000000504e1400000100000052bc948349af99000000d27070a38a03b072b10000010000d8c2aa0000010000816eb10000010000a2000000"
          },
          "context_free": false,
          "elapsed": 3,
          "console": "",
          "account_ram_deltas": [],
          "except": null,
          "error_code": null
        },

I'm taking the binary ABI from state history:

                        const decoder = new ABIDecoder(result.rows[0].abi_raw);
                        resolve(ABI.fromABI(decoder));

The ABI:

0e656f73696f3a3a6162692f312e32011373746174655f76616c75655f76617269616e747876617269616e745f696e74385f75696e74385f696e7433325f75696e7433325f696e7436345f75696e7436345f696e743132385f75696e743132385f626f6f6c5f696e7436345b5d5f6e616d655f737472696e675f74696d655f706f696e745f7365635f61737365745f657874656e6465645f617373657427036261670003076163636f756e74046e616d65056974656d730875696e7436345b5d066c6f636b656404626f6f6c0a636c61696d5f6974656d0002056d696e6572046e616d650c74656d706c6174655f6964730875696e7433325b5d0a636c61696d636f6d6d730001087265636569766572046e616d650a636c61696d6d696e65730001087265636569766572046e616d6509636c61696d6e6674730001056d696e6572046e616d6509636c6561726261677300000b636c6561726d696e65727300000c636c6561726e66746d696e650002056f776e6572046e616d650861737365745f69640675696e7436340b636c656172706172616d7300000d636f6e6669675f7374727563740001046461746121706169725f737472696e675f73746174655f76616c75655f76617269616e745b5d0c636f6e74725f676c6f62616c00031064656c61795f6d756c7469706c6965720675696e7431360f6c75636b5f6d756c7469706c6965720675696e7431360f656173655f6d756c7469706c6965720675696e7431360d636f6e74725f6e667477696e7300040474696d650675696e743332096f7261636c655f69640575696e74380a6c6173745f696e6465780675696e743332096d61785f696e6465780675696e7433320b636f6e74725f70726f70730005086c6173745f726e670675696e743332097265736572766564310675696e743332097265736572766564320675696e743634097265736572766564330675696e743634097265736572766564340675696e7436340b636f6e74725f737461746500040e6c6173745f66696c6c5f74696d650a74696d655f706f696e740966696c6c5f7261746507666c6f617436340c6275636b65745f746f74616c0561737365740b6d696e655f6275636b65740561737365740664656c6e66740001056d696e6572046e616d65076465706f7369740002076163636f756e74046e616d65087175616e746974790561737365740466696c6c0002076163636f756e74046e616d650b706c616e65745f6e616d65046e616d65076669786d696e740003056d696e6572046e616d65076f6c64746d70730875696e7433325b5d076e6577746d70730875696e7433325b5d0d67756573746e66745f6974656d0003026964046e616d650b70726f626162696c6974790675696e7431360961737365745f6964730875696e7436345b5d086c616e64636f6d6d0003096c616e646f776e6572046e616d6505636f6d6d730561737365740974696d657374616d700e74696d655f706f696e745f736563046d696e650002056d696e6572046e616d65056e6f6e6365056279746573056d696e65720004056d696e6572046e616d650c6c6173745f6d696e655f74780b636865636b73756d323536096c6173745f6d696e650e74696d655f706f696e745f7365630c63757272656e745f6c616e640675696e7436340b6d696e65725f636c61696d0003056d696e6572046e616d6506616d6f756e740561737365740974696d657374616d700e74696d655f706f696e745f7365630e6d696e696e676e66745f6974656d000206726172697479046e616d650c74656d706c6174655f6964730875696e7433325b5d11706169725f737472696e675f61737365740002036b657906737472696e670576616c756505617373657413706169725f737472696e675f666c6f617436340002036b657906737472696e670576616c756507666c6f617436341f706169725f737472696e675f73746174655f76616c75655f76617269616e740002036b657906737472696e670576616c75651373746174655f76616c75655f76617269616e7405706f6f6c73000205726174657315706169725f737472696e675f666c6f617436345b5d0c706f6f6c5f6275636b65747313706169725f737472696e675f61737365745b5d0a7265736574737461746500010b706c616e65745f6e616d65046e616d65067365746261670002076163636f756e74046e616d65056974656d730875696e7436345b5d09736574636f6e6669670002036b657906737472696e670576616c75651373746174655f76616c75655f76617269616e74077365746c616e640002076163636f756e74046e616d65076c616e645f69640675696e7436340b7365746c616e646e69636b0003076163636f756e74046e616d65076c616e645f69640675696e743634086e69636b6e616d6506737472696e67077365746e667473000206726172697479046e616d650c74656d706c6174655f6964730875696e7433325b5d08736574706172616d0002036b65790675696e7436340576616c75650675696e7436340c736574706f6f6c7261746573000205726174657315706169725f737472696e675f666c6f617436345b5d0b706c616e65745f6e616d65046e616d650974657374706172616d0001036b6579046e616d650c746f6f6c7573655f6974656d00020861737365745f69640675696e743634086c6173745f7573650675696e74333209756e6c6f636b6261670001056d696e6572046e616d65150000969222e94c440a636c61696d636f6d6d7300000056d349e94c440a636c61696d6d696e6573000000c0794de94c4409636c61696d6e667473000000c0cc9c6b544409636c656172626167730000f055d3c96b54440b636c6561726d696e65727300a0a69379cd6b54440c636c6561726e66746d696e650000b034d7d46b54440b636c656172706172616d730000000000e435a34a0664656c6e667400000000000010a35b0466696c6c00000000204f27bb5b076669786d696e74000000000000a0a693046d696e65000080ca26e3acb0ba0a7265736574737461746500000000003073b2c206736574626167000000606e4d8ab2c209736574636f6e66696700000000204d13b3c2077365746c616e6400002072334d13b3c20b7365746c616e646e69636b0000000000e735b3c2077365746e66747300000000d25c53b3c208736574706172616d0080553637525ab3c20c736574706f6f6c726174657300000090e69a9ab1ca0974657374706172616d00000060e64044e3d409756e6c6f636b626167000f0000000000809939036936340000036261670000000060e94c440369363400000a636c61696d5f6974656d0000000030b726450369363400000d636f6e6669675f737472756374000000383b4cab4a036936340000076465706f73697400000000447368640369363400000c636f6e74725f676c6f62616c0000c079cd8c95660369363400000d67756573746e66745f6974656d0000c0525294a689036936340000086c616e64636f6d6d00807426a2aba6930369363400000b6d696e65725f636c61696d00000000e0aba693036936340000056d696e65720000ce6bb2e9a6930369363400000e6d696e696e676e66745f6974656d000000004fc7f39a0369363400000d636f6e74725f6e667477696e7300000000001c29ad03693634000005706f6f6c7300000000005ce9ad0369363400000b636f6e74725f70726f7073000000000c954dc60369363400000b636f6e74725f737461746500000040611d29cd0369363400000c746f6f6c7573655f6974656d000000017876617269616e745f696e74385f75696e74385f696e7433325f75696e7433325f696e7436345f75696e7436345f696e743132385f75696e743132385f626f6f6c5f696e7436345b5d5f6e616d655f737472696e675f74696d655f706f696e745f7365635f61737365745f657874656e6465645f61737365740f04696e74380575696e743805696e7433320675696e74333205696e7436340675696e74363406696e743132380775696e7431323804626f6f6c07696e7436345b5d046e616d6506737472696e670e74696d655f706f696e745f7365630561737365740e657874656e6465645f6173736574
aaroncox commented 1 year ago

Decoding that raw ABI to JSON and then inspecting it, I don't see logmine defined anywhere in it 🤔

{"version":"eosio::abi/1.2","types":[{"new_type_name":"state_value_variant","type":"variant_int8_uint8_int32_uint32_int64_uint64_int128_uint128_bool_int64[]_name_string_time_point_sec_asset_extended_asset"}],"structs":[{"base":"","name":"bag","fields":[{"name":"account","type":"name"},{"name":"items","type":"uint64[]"},{"name":"locked","type":"bool"}]},{"base":"","name":"claim_item","fields":[{"name":"miner","type":"name"},{"name":"template_ids","type":"uint32[]"}]},{"base":"","name":"claimcomms","fields":[{"name":"receiver","type":"name"}]},{"base":"","name":"claimmines","fields":[{"name":"receiver","type":"name"}]},{"base":"","name":"claimnfts","fields":[{"name":"miner","type":"name"}]},{"base":"","name":"clearbags","fields":[]},{"base":"","name":"clearminers","fields":[]},{"base":"","name":"clearnftmine","fields":[{"name":"owner","type":"name"},{"name":"asset_id","type":"uint64"}]},{"base":"","name":"clearparams","fields":[]},{"base":"","name":"config_struct","fields":[{"name":"data","type":"pair_string_state_value_variant[]"}]},{"base":"","name":"contr_global","fields":[{"name":"delay_multiplier","type":"uint16"},{"name":"luck_multiplier","type":"uint16"},{"name":"ease_multiplier","type":"uint16"}]},{"base":"","name":"contr_nftwins","fields":[{"name":"time","type":"uint32"},{"name":"oracle_id","type":"uint8"},{"name":"last_index","type":"uint32"},{"name":"max_index","type":"uint32"}]},{"base":"","name":"contr_props","fields":[{"name":"last_rng","type":"uint32"},{"name":"reserved1","type":"uint32"},{"name":"reserved2","type":"uint64"},{"name":"reserved3","type":"uint64"},{"name":"reserved4","type":"uint64"}]},{"base":"","name":"contr_state","fields":[{"name":"last_fill_time","type":"time_point"},{"name":"fill_rate","type":"float64"},{"name":"bucket_total","type":"asset"},{"name":"mine_bucket","type":"asset"}]},{"base":"","name":"delnft","fields":[{"name":"miner","type":"name"}]},{"base":"","name":"deposit","fields":[{"name":"account","type":"name"},{"name":"quantity","type":"asset"}]},{"base":"","name":"fill","fields":[{"name":"account","type":"name"},{"name":"planet_name","type":"name"}]},{"base":"","name":"fixmint","fields":[{"name":"miner","type":"name"},{"name":"oldtmps","type":"uint32[]"},{"name":"newtmps","type":"uint32[]"}]},{"base":"","name":"guestnft_item","fields":[{"name":"id","type":"name"},{"name":"probability","type":"uint16"},{"name":"asset_ids","type":"uint64[]"}]},{"base":"","name":"landcomm","fields":[{"name":"landowner","type":"name"},{"name":"comms","type":"asset"},{"name":"timestamp","type":"time_point_sec"}]},{"base":"","name":"mine","fields":[{"name":"miner","type":"name"},{"name":"nonce","type":"bytes"}]},{"base":"","name":"miner","fields":[{"name":"miner","type":"name"},{"name":"last_mine_tx","type":"checksum256"},{"name":"last_mine","type":"time_point_sec"},{"name":"current_land","type":"uint64"}]},{"base":"","name":"miner_claim","fields":[{"name":"miner","type":"name"},{"name":"amount","type":"asset"},{"name":"timestamp","type":"time_point_sec"}]},{"base":"","name":"miningnft_item","fields":[{"name":"rarity","type":"name"},{"name":"template_ids","type":"uint32[]"}]},{"base":"","name":"pair_string_asset","fields":[{"name":"key","type":"string"},{"name":"value","type":"asset"}]},{"base":"","name":"pair_string_float64","fields":[{"name":"key","type":"string"},{"name":"value","type":"float64"}]},{"base":"","name":"pair_string_state_value_variant","fields":[{"name":"key","type":"string"},{"name":"value","type":"state_value_variant"}]},{"base":"","name":"pools","fields":[{"name":"rates","type":"pair_string_float64[]"},{"name":"pool_buckets","type":"pair_string_asset[]"}]},{"base":"","name":"resetstate","fields":[{"name":"planet_name","type":"name"}]},{"base":"","name":"setbag","fields":[{"name":"account","type":"name"},{"name":"items","type":"uint64[]"}]},{"base":"","name":"setconfig","fields":[{"name":"key","type":"string"},{"name":"value","type":"state_value_variant"}]},{"base":"","name":"setland","fields":[{"name":"account","type":"name"},{"name":"land_id","type":"uint64"}]},{"base":"","name":"setlandnick","fields":[{"name":"account","type":"name"},{"name":"land_id","type":"uint64"},{"name":"nickname","type":"string"}]},{"base":"","name":"setnfts","fields":[{"name":"rarity","type":"name"},{"name":"template_ids","type":"uint32[]"}]},{"base":"","name":"setparam","fields":[{"name":"key","type":"uint64"},{"name":"value","type":"uint64"}]},{"base":"","name":"setpoolrates","fields":[{"name":"rates","type":"pair_string_float64[]"},{"name":"planet_name","type":"name"}]},{"base":"","name":"testparam","fields":[{"name":"key","type":"name"}]},{"base":"","name":"tooluse_item","fields":[{"name":"asset_id","type":"uint64"},{"name":"last_use","type":"uint32"}]},{"base":"","name":"unlockbag","fields":[{"name":"miner","type":"name"}]}],"actions":[{"name":"claimcomms","type":"claimcomms","ricardian_contract":""},{"name":"claimmines","type":"claimmines","ricardian_contract":""},{"name":"claimnfts","type":"claimnfts","ricardian_contract":""},{"name":"clearbags","type":"clearbags","ricardian_contract":""},{"name":"clearminers","type":"clearminers","ricardian_contract":""},{"name":"clearnftmine","type":"clearnftmine","ricardian_contract":""},{"name":"clearparams","type":"clearparams","ricardian_contract":""},{"name":"delnft","type":"delnft","ricardian_contract":""},{"name":"fill","type":"fill","ricardian_contract":""},{"name":"fixmint","type":"fixmint","ricardian_contract":""},{"name":"mine","type":"mine","ricardian_contract":""},{"name":"resetstate","type":"resetstate","ricardian_contract":""},{"name":"setbag","type":"setbag","ricardian_contract":""},{"name":"setconfig","type":"setconfig","ricardian_contract":""},{"name":"setland","type":"setland","ricardian_contract":""},{"name":"setlandnick","type":"setlandnick","ricardian_contract":""},{"name":"setnfts","type":"setnfts","ricardian_contract":""},{"name":"setparam","type":"setparam","ricardian_contract":""},{"name":"setpoolrates","type":"setpoolrates","ricardian_contract":""},{"name":"testparam","type":"testparam","ricardian_contract":""},{"name":"unlockbag","type":"unlockbag","ricardian_contract":""}],"tables":[{"name":"bags","index_type":"i64","key_names":[],"key_types":[],"type":"bag"},{"name":"claims","index_type":"i64","key_names":[],"key_types":[],"type":"claim_item"},{"name":"config","index_type":"i64","key_names":[],"key_types":[],"type":"config_struct"},{"name":"deposits","index_type":"i64","key_names":[],"key_types":[],"type":"deposit"},{"name":"global","index_type":"i64","key_names":[],"key_types":[],"type":"contr_global"},{"name":"guestnfts","index_type":"i64","key_names":[],"key_types":[],"type":"guestnft_item"},{"name":"landcomms","index_type":"i64","key_names":[],"key_types":[],"type":"landcomm"},{"name":"minerclaim","index_type":"i64","key_names":[],"key_types":[],"type":"miner_claim"},{"name":"miners","index_type":"i64","key_names":[],"key_types":[],"type":"miner"},{"name":"miningnfts","index_type":"i64","key_names":[],"key_types":[],"type":"miningnft_item"},{"name":"nftwins","index_type":"i64","key_names":[],"key_types":[],"type":"contr_nftwins"},{"name":"pools","index_type":"i64","key_names":[],"key_types":[],"type":"pools"},{"name":"props","index_type":"i64","key_names":[],"key_types":[],"type":"contr_props"},{"name":"state3","index_type":"i64","key_names":[],"key_types":[],"type":"contr_state"},{"name":"tooluse","index_type":"i64","key_names":[],"key_types":[],"type":"tooluse_item"}],"ricardian_clauses":[],"error_messages":[],"abi_extensions":[],"variants":[{"name":"variant_int8_uint8_int32_uint32_int64_uint64_int128_uint128_bool_int64[]_name_string_time_point_sec_asset_extended_asset","types":["int8","uint8","int32","uint32","int64","uint64","int128","uint128","bool","int64[]","name","string","time_point_sec","asset","extended_asset"]}]}
aaroncox commented 1 year ago

FWIW the code I used to decode, if you're curious about alternative syntax.

        const raw =
            '0e656f73696f3a3a6162692f312e32011373746174655f76616c75655f76617269616e747876617269616e745f696e74385f75696e74385f696e7433325f75696e7433325f696e7436345f75696e7436345f696e743132385f75696e743132385f626f6f6c5f696e7436345b5d5f6e616d655f737472696e675f74696d655f706f696e745f7365635f61737365745f657874656e6465645f617373657427036261670003076163636f756e74046e616d65056974656d730875696e7436345b5d066c6f636b656404626f6f6c0a636c61696d5f6974656d0002056d696e6572046e616d650c74656d706c6174655f6964730875696e7433325b5d0a636c61696d636f6d6d730001087265636569766572046e616d650a636c61696d6d696e65730001087265636569766572046e616d6509636c61696d6e6674730001056d696e6572046e616d6509636c6561726261677300000b636c6561726d696e65727300000c636c6561726e66746d696e650002056f776e6572046e616d650861737365745f69640675696e7436340b636c656172706172616d7300000d636f6e6669675f7374727563740001046461746121706169725f737472696e675f73746174655f76616c75655f76617269616e745b5d0c636f6e74725f676c6f62616c00031064656c61795f6d756c7469706c6965720675696e7431360f6c75636b5f6d756c7469706c6965720675696e7431360f656173655f6d756c7469706c6965720675696e7431360d636f6e74725f6e667477696e7300040474696d650675696e743332096f7261636c655f69640575696e74380a6c6173745f696e6465780675696e743332096d61785f696e6465780675696e7433320b636f6e74725f70726f70730005086c6173745f726e670675696e743332097265736572766564310675696e743332097265736572766564320675696e743634097265736572766564330675696e743634097265736572766564340675696e7436340b636f6e74725f737461746500040e6c6173745f66696c6c5f74696d650a74696d655f706f696e740966696c6c5f7261746507666c6f617436340c6275636b65745f746f74616c0561737365740b6d696e655f6275636b65740561737365740664656c6e66740001056d696e6572046e616d65076465706f7369740002076163636f756e74046e616d65087175616e746974790561737365740466696c6c0002076163636f756e74046e616d650b706c616e65745f6e616d65046e616d65076669786d696e740003056d696e6572046e616d65076f6c64746d70730875696e7433325b5d076e6577746d70730875696e7433325b5d0d67756573746e66745f6974656d0003026964046e616d650b70726f626162696c6974790675696e7431360961737365745f6964730875696e7436345b5d086c616e64636f6d6d0003096c616e646f776e6572046e616d6505636f6d6d730561737365740974696d657374616d700e74696d655f706f696e745f736563046d696e650002056d696e6572046e616d65056e6f6e6365056279746573056d696e65720004056d696e6572046e616d650c6c6173745f6d696e655f74780b636865636b73756d323536096c6173745f6d696e650e74696d655f706f696e745f7365630c63757272656e745f6c616e640675696e7436340b6d696e65725f636c61696d0003056d696e6572046e616d6506616d6f756e740561737365740974696d657374616d700e74696d655f706f696e745f7365630e6d696e696e676e66745f6974656d000206726172697479046e616d650c74656d706c6174655f6964730875696e7433325b5d11706169725f737472696e675f61737365740002036b657906737472696e670576616c756505617373657413706169725f737472696e675f666c6f617436340002036b657906737472696e670576616c756507666c6f617436341f706169725f737472696e675f73746174655f76616c75655f76617269616e740002036b657906737472696e670576616c75651373746174655f76616c75655f76617269616e7405706f6f6c73000205726174657315706169725f737472696e675f666c6f617436345b5d0c706f6f6c5f6275636b65747313706169725f737472696e675f61737365745b5d0a7265736574737461746500010b706c616e65745f6e616d65046e616d65067365746261670002076163636f756e74046e616d65056974656d730875696e7436345b5d09736574636f6e6669670002036b657906737472696e670576616c75651373746174655f76616c75655f76617269616e74077365746c616e640002076163636f756e74046e616d65076c616e645f69640675696e7436340b7365746c616e646e69636b0003076163636f756e74046e616d65076c616e645f69640675696e743634086e69636b6e616d6506737472696e67077365746e667473000206726172697479046e616d650c74656d706c6174655f6964730875696e7433325b5d08736574706172616d0002036b65790675696e7436340576616c75650675696e7436340c736574706f6f6c7261746573000205726174657315706169725f737472696e675f666c6f617436345b5d0b706c616e65745f6e616d65046e616d650974657374706172616d0001036b6579046e616d650c746f6f6c7573655f6974656d00020861737365745f69640675696e743634086c6173745f7573650675696e74333209756e6c6f636b6261670001056d696e6572046e616d65150000969222e94c440a636c61696d636f6d6d7300000056d349e94c440a636c61696d6d696e6573000000c0794de94c4409636c61696d6e667473000000c0cc9c6b544409636c656172626167730000f055d3c96b54440b636c6561726d696e65727300a0a69379cd6b54440c636c6561726e66746d696e650000b034d7d46b54440b636c656172706172616d730000000000e435a34a0664656c6e667400000000000010a35b0466696c6c00000000204f27bb5b076669786d696e74000000000000a0a693046d696e65000080ca26e3acb0ba0a7265736574737461746500000000003073b2c206736574626167000000606e4d8ab2c209736574636f6e66696700000000204d13b3c2077365746c616e6400002072334d13b3c20b7365746c616e646e69636b0000000000e735b3c2077365746e66747300000000d25c53b3c208736574706172616d0080553637525ab3c20c736574706f6f6c726174657300000090e69a9ab1ca0974657374706172616d00000060e64044e3d409756e6c6f636b626167000f0000000000809939036936340000036261670000000060e94c440369363400000a636c61696d5f6974656d0000000030b726450369363400000d636f6e6669675f737472756374000000383b4cab4a036936340000076465706f73697400000000447368640369363400000c636f6e74725f676c6f62616c0000c079cd8c95660369363400000d67756573746e66745f6974656d0000c0525294a689036936340000086c616e64636f6d6d00807426a2aba6930369363400000b6d696e65725f636c61696d00000000e0aba693036936340000056d696e65720000ce6bb2e9a6930369363400000e6d696e696e676e66745f6974656d000000004fc7f39a0369363400000d636f6e74725f6e667477696e7300000000001c29ad03693634000005706f6f6c7300000000005ce9ad0369363400000b636f6e74725f70726f7073000000000c954dc60369363400000b636f6e74725f737461746500000040611d29cd0369363400000c746f6f6c7573655f6974656d000000017876617269616e745f696e74385f75696e74385f696e7433325f75696e7433325f696e7436345f75696e7436345f696e743132385f75696e743132385f626f6f6c5f696e7436345b5d5f6e616d655f737472696e675f74696d655f706f696e745f7365635f61737365745f657874656e6465645f61737365740f04696e74380575696e743805696e7433320675696e74333205696e7436340675696e74363406696e743132380775696e7431323804626f6f6c07696e7436345b5d046e616d6506737472696e670e74696d655f706f696e745f7365630561737365740e657874656e6465645f6173736574'
        const abi = Serializer.decode({data: raw, type: ABI})
        console.log(JSON.stringify(abi))
cc32d9 commented 1 year ago

in your example, data is not raw, but a hex string of raw, so I'll stick to my syntax :)

Indeed, cleos get abi also doesn't show logmine action. For some reason, Hyperion is still able to show the content. Probably it's using an older version of ABI, as this contract updated the ABI quite a lot.

I'll try to get more diagnostics, but it looks like the decoder is alright, but the data quality is not

cc32d9 commented 1 year ago

another example, seems like everything is in place: trxid bde4e9ad905af3c9ee322473eea25bb7d7529b272c7c884d4dfd9ca00565c213

        "action_ordinal": 1,
        "creator_action_ordinal": 0,
        "receipt": {
          "receiver": "iraces.nova",
          "act_digest": "56db2fe8741f52a54b9c68ac77fe0920e3c89c61b9175ec861be2a38fb04f576",
          "global_sequence": "78164377411",
          "recv_sequence": 7408529,
          "auth_sequence": [
            {
              "account": "i1rhg.wam",
              "sequence": 160320
            }
          ],
          "code_sequence": 17,
          "abi_sequence": 7
        },
        "receiver": "iraces.nova",
        "act": {
          "account": "iraces.nova",
          "name": "claimprize",
          "authorization": [
            {
              "actor": "i1rhg.wam",
              "permission": "active"
            }
          ],
          "data": "0000908603d66e701e00"
        },
        "context_free": false,
        "elapsed": 143,
        "console": "",
        "account_ram_deltas": [
          {
            "account": "iraces.nova",
            "delta": -4
          }
        ],
        "except": null,
        "error_code": null,

ABI:

0e656f73696f3a3a6162692f312e31020e6173736574735f62795f636f646518706169725f73796d626f6c5f636f64655f696e7436345b5d056578705f740a6578705f737472756374390a6361725f726570616972000206706c61796572046e616d650861737365745f69640675696e74363417636861726d5f6d756c7469706c6965725f64656c6574650002066c6561677565046e616d6508706f736974696f6e0675696e74363417636861726d5f6d756c7469706c6965725f7265636f7264000208706f736974696f6e0675696e7436340a6d756c7469706c696572056578705f7417636861726d5f6d756c7469706c6965725f7570736572740003066c6561677565046e616d6508706f736974696f6e0675696e7436340a6d756c7469706c696572056578705f7411636861726d5f706f6f6c5f7265636f726400030d636861726d5f7065725f736563056578705f740762616c616e63650561737365740e6c6173745f7570646174655f74730675696e7433320b636c61696d5f6173736574000306706c61796572046e616d6507726163655f69640675696e7433320672657061697204626f6f6c0b636c61696d5f636861726d000106706c61796572046e616d650b636c61696d5f7072697a65000206706c61796572046e616d65056c696d69740675696e74313605636c65617200000a636c6561725f7261636500010269640675696e7436340d636f6e6669675f7265636f7264000a0c6c6173745f726163655f74730675696e7433320969735f70617573656404626f6f6c0f69735f64656174685f70617573656404626f6f6c0977686974656c697374066e616d655b5d1164656174685f72616c6c795f737461746505696e7433321064656174685f72616c6c795f736565640775696e74385b5d1064656174685f72616c6c795f73697a650675696e7433320e64656174685f72616c6c795f69640675696e74363412667265655f72616365735f7065725f6461790675696e7438241564656174685f72616c6c795f6a6f696e5f636f7374066173736574240e636f6e74696e75655f646561746800010c72616e646f6d5f76616c75650b636865636b73756d3235361a64656174685f72616c6c795f647269766572735f7265636f726400020b74656d706c6174655f696405696e74333205636f756e740675696e7436341264656174685f72616c6c795f7265636f726400090269640675696e74363406706c61796572046e616d651076656869636c655f61737365745f69640675696e74363410647269766572315f61737365745f69640675696e74363410647269766572325f61737365745f69640675696e7436340474696d650675696e7433320673746174757305696e74333208706f736974696f6e0675696e743332097072697a655f69647307696e7433325b5d0964656c5f7072697a650002066c6561677565046e616d650269640675696e7436340b64656c6574655f6765617200010269640675696e7436340d64656c6574655f706f696e7473000207676561725f69640675696e74363408706f736974696f6e0675696e7436340a6469737175616c696679000206706c61796572046e616d650861737365745f69640675696e7436340c64725f7072697a655f6d6f6400030269640675696e7436340b74656d706c6174655f696405696e743332066368616e63650675696e7431360d64725f7072697a655f73656e6400010269640675696e7433320a6578705f7374727563740002086d616e746973736105696e743634086578706f6e656e7404696e74380a6675656c72657475726e000206706c61796572046e616d65056675656c730761737365745b5d0b676561725f7265636f726400040269640675696e7436340a6d756c7469706c696572056578705f740a6e66745f6368616e6365056578705f740a726163655f707269636513706169725f75696e7436345f61737365745b5d046a6f696e000706706c61796572046e616d651076656869636c655f61737365745f69640675696e74363410647269766572315f61737365745f69640675696e74363410647269766572325f61737365745f69640675696e74363407676561725f69640675696e743634097573655f626f6f737404626f6f6c0c72616365735f6e756d6265720675696e743634096a6f696e5f7465616d00071076656869636c655f61737365745f69640675696e74363410647269766572315f61737365745f69640675696e74363410647269766572325f61737365745f69640675696e7436340d726567697374657265645f74730675696e743332066c6561677565046e616d6505666c6167730675696e74363407676561725f69640675696e7436340c6c61756e63685f646561746800020269640675696e7433320c72616e646f6d5f76616c75650b636865636b73756d3235360b6c61756e63685f72616365000207726163655f69640675696e7436340c72616e646f6d5f76616c75650b636865636b73756d323536086c61756e6368647200000b6c6f67647266696e697368000306706c61796572046e616d6508706f736974696f6e0675696e7436341064656174685f72616c6c795f73697a650675696e743634096c6f6766696e697368000606706c61796572046e616d6508706f736974696f6e0675696e743634066c6561677565046e616d6507676561725f69640675696e743634076472697665723106737472696e67076472697665723206737472696e670a6d616b655f726163657300010c72616e646f6d5f76616c75650b636865636b73756d323536076d69677261746500000c6d6967726174657175657565000016706169725f73796d626f6c5f636f64655f696e7436340002036b65790b73796d626f6c5f636f64650576616c756505696e74363411706169725f75696e7436345f61737365740002036b65790675696e7436340576616c756505617373657412706c617965725f696e666f5f7265636f726400040d626f6f73745f62616c616e63650675696e7433320e70656e64696e675f7072697a657307696e7433325b5d0d7370656e745f636f756e7465720e6173736574735f62795f636f64650862616c616e6365730e6173736574735f62795f636f646512706c617965725f726163655f7265636f7264000c07726163655f69640675696e7436341076656869636c655f61737365745f69640675696e74363410647269766572315f61737365745f69640675696e74363410647269766572325f61737365745f69640675696e743634066c6561677565046e616d6508706f736974696f6e0575696e74380d746f74616c5f74696d655f74730675696e743332117072697a655f74656d706c6174655f696405696e74333205666c6167730675696e74363407676561725f69640675696e74363406726577617264056173736574127072697a655f74656d706c6174655f69647307696e7433325b5d097072697a655f61646400030b74656d706c6174655f696405696e743332066368616e63650675696e743136066c656167756506737472696e67097072697a655f64656c00020269640675696e743634066c656167756506737472696e670c7072697a655f6d6f6469667900040269640675696e7436340b74656d706c6174655f696405696e743332066368616e63650675696e743136066c656167756506737472696e670d7072697a65735f7265636f726400030269640675696e7436340b74656d706c6174655f696405696e743332066368616e63650675696e7431361370726f6d6f5f706f696e74735f7265636f7264000208706f736974696f6e0675696e74363406706f696e74730675696e7436340c71756575655f7265636f726400030269640675696e74363406706c61796572046e616d65056a6f696e730b6a6f696e5f7465616d5b5d0b726163655f7265636f726400070269640675696e743634096c61756e63685f74730675696e74333207706c6179657273066e616d655b5d0c626573745f74696d655f6d730675696e7433320677696e6e6572046e616d65067365636f6e64046e616d65057468697264046e616d650b7265636569766572616e6400020b637573746f6d65725f69640675696e7436340c72616e646f6d5f76616c75650b636865636b73756d3235360c72656d6f766566726f6d647200010269640675696e7436340b7265706561745f72616365000107726163655f69640675696e7436340c7265776172647072697a6573000207706c6179657273066e616d655b5d067072697a657307696e7433325b5d097365745f636861726d00010d636861726d5f7065725f736563056578705f74107365745f64725f6a6f696e5f636f7374000104636f73740561737365740e7365745f667265655f726163657300010972616365735f6e756d0575696e7438097365745f706175736500030670617573656404626f6f6c0b64656174685f706175736504626f6f6c0977686974656c697374066e616d655b5d07736574706f6f6c0002086e65775f706f6f6c05617373657404646174650675696e74333206756e6c6f636b000206706c61796572046e616d650961737365745f6964730875696e7436345b5d0b7570736572745f6765617200070269640675696e7436340a6d756c7469706c696572056578705f740a6e66745f6368616e6365056578705f740c726f6f6b69655f707269636505617373657412696e7465726d6564696174655f70726963650561737365740d7665746572616e5f70726963650561737365740c6d61737465725f70726963650561737365740d7570736572745f706f696e7473000307676561725f69640675696e74363408706f736974696f6e0675696e74363406706f696e74730675696e7436340d77697468647261775f6675656c0002056f776e6572046e616d6506616d6f756e74056173736574290000b8ce5475af410a6361725f726570616972000000c80a03794d43097365745f636861726d00209d890860794d430b636c61696d5f636861726d00004056181be94c440b636c61696d5f6173736574000080faee56e94c440b636c61696d5f7072697a650000000000806b544405636c65617200008042e6826b54440a636c6561725f726163650000805f2e1a6db14b0a6469737175616c6966790000949e2e4f8ac04d0e636f6e74696e75655f646561746800000068686a13c14d0c6c61756e63685f646561746800105502eabb5bc14d097072697a655f64656c0090a804eabb5bc14d0c64725f7072697a655f6d6f6400902606eabb5bc14d0d64725f7072697a655f73656e64000000509b4a75c14d0c72656d6f766566726f6d647200d0d0d426fa9bc14d086c61756e63686472009015c60a99abd45d0e7365745f667265655f72616365730000c0bc3aab1b955e0a6675656c72657475726e000000005125708d620b64656c6574655f6765617200000000b86a708d620b7570736572745f67656172000000000000301d7d046a6f696e00001a76d3ad9b188d0b6c6f67647266696e69736800000068d84db7188d096c6f6766696e697368000000004065739993076d69677261746500a0b4d256657399930c6d696772617465717565756500000048c900f5ddad097072697a655f616464000000882a01f5ddad0964656c5f7072697a65000000485402f5ddad0c7072697a655f6d6f6469667900a0b28a2a012ae9ad0d64656c6574655f706f696e74730090afc255032ae9ad0d7570736572745f706f696e747300001a9ada44a090b90b6c61756e63685f7261636500000050d048a090b90a6d616b655f72616365730000b251555da090b90b7265706561745f726163650000d234576da790ba0b7265636569766572616e640000405409a46bb8ba17636861726d5f6d756c7469706c6965725f64656c657465000000ae1aa46bb8ba17636861726d5f6d756c7469706c6965725f7570736572740080d577b7a66bb8ba0c7265776172647072697a6573000000c898a29bb2c2107365745f64725f6a6f696e5f636f7374000000000a6b53b3c2097365745f70617573650000000020525ab3c207736574706f6f6c00000000004044e3d406756e6c6f636b00000000dcdcd4b2e30d77697468647261775f6675656c000e10abcb514b794d4303693634000017636861726d5f6d756c7469706c6965725f7265636f72640000889456794d4303693634000011636861726d5f706f6f6c5f7265636f72640000000030b726450369363400000d636f6e6669675f7265636f726400b0faeed6968d4a0369363400000d7072697a65735f7265636f726400808fd1dc968d4a0369363400001264656174685f72616c6c795f7265636f72640000b8095fb5dd4d0369363400001a64656174685f72616c6c795f647269766572735f7265636f726400000000007c8d620369363400000b676561725f7265636f7264801532974d97a6aa03693634000012706c617965725f726163655f7265636f726400b042e65ee54dac03693634000012706c617965725f726163655f7265636f726400e89a0e5fe54dac03693634000012706c617965725f696e666f5f7265636f72640000000060f5ddad0369363400000d7072697a65735f7265636f726480f374b4022ae9ad0369363400001370726f6d6f5f706f696e74735f7265636f72640000000000a595b60369363400000c71756575655f7265636f72640000000000ac90b90369363400000b726163655f7265636f726400000000
cc32d9 commented 1 year ago

@jnordberg this last example seems to be a valid bug though

jnordberg commented 1 year ago

If you can reproduce a decoding bug please open a new issue with the ABI and code to reproduce and we'll look in to it ASAP!