I was trying to mint some cycles and use them to top up a canister via the cycles minting canister’s top up workflow. After a few frustrations I got to the point where the memo didn’t match, and while inspecting the block returned via query_blocks I saw this:
I’m curious about a couple things.
Why a different memo? Because of the null?
Any reason the CMC doesn’t check both memo fields? It chewed up half a day and I’m sure someone else will eventually run up against it as well.
The original memo was a u64, the one added by ICRC-1 is a bytearray. We need both for backward compatibility. If you use the old endpoints then the memo fills the first field while if you use ICRC-1 endpoints then the memo fills the second field.
The CMC and the NNS do not support ICRC-1 endpoints yet. The plan is to support ICRC-2 in future in both of them but I don’t know when it will happen.
I don’t know. The Ledger doesn’t change the bytes sent by the user.