I'm building a Golang client that interfaces with Polkadot and I want to better understand lookup errors.

In Polkadot block 10572717 the extrinsic at index 2 (subscan link 10572712-2) has failed with the Result "Failed (CannotLookup)".

It appears that the Extrinsic (which has the call Balances.Transfer_keep_alive) fails because of an invalid Destination identity: 0xE31Ad96c37604983899861ff171D7F51Ae074D81. It looks like the sender tried (and failed) repeatedly to send to this invalid account ID.

  1. Is 0xE31Ad96c37604983899861ff171D7F51Ae074D81 an invalid Destination identifier in Polkadot/Substrate?
  2. Is this the reason why the Extrinsic 10572717-2 failed?
  3. If I'm interested in balance transfer Extrinsics - I want to track account balances in our system - is it safe to ignore Failed results like this?

Thanks in advance

1 Answer 1

  1. Yes, 0xE31Ad96c37604983899861ff171D7F51Ae074D81 is not a valid Substrate / Polkadot address. It seems to be an Ethereum address.

  2. Yes, if you don't give a valid destination address, the transfer will certainly fail.

  3. To track the balance of accounts, you should not use the extrinsics, but instead the events which manifest from the extrinsics. All balance changes to accounts in Substrate will emit some events, for example the Transfer event. This event will only be emitted if the transfer completed successfully.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.