Impossible to top up cycles via cycle minting canister with ICRC1?

Hey @mariop,

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:

image

I’m curious about a couple things.

  1. Why a different memo? Because of the null?
  2. 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.
  3. Why is TPUP backwards?
1 Like
  1. 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.
  2. 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.
  3. I don’t know. The Ledger doesn’t change the bytes sent by the user.
2 Likes