NNS Update: October 19, 2023: enabling ICRC-2 on the ICP ledger

Hello!

I’m curious if there is an error in the ledger canister archive DID file not being updated with the new struct for approve transactions?

Ledger version of Approve

  Approve : record {
    fee : Tokens;
    from : vec nat8;
    allowance_e8s : int;
    allowance : Tokens;
    expected_allowance : opt Tokens;
    expires_at : opt TimeStamp;
    spender : vec nat8;
  };

Archive (qjdve-lqaaa-aaaaa-aaaeq-cai) version of Approve

    Approve : record {
        from : AccountIdentifier;
        spender : AccountIdentifier;
        allowance_e8s : int;
        fee : Tokens;
        expires_at : opt Timestamp;
    };

Our 221Bravo ICP index canister has just hit a wall as “allowance : Tokens;” is not present in the data returned from block 6981590. I’m wondering if allowance should be opt Token to allow the archive canister to upgrade… or whether there is actually two types of approve blocks (old and new)?

Will the difference in structs/ records cause issues when sending new style approve txs to the archive canister? What record type should I use when fetching data from the ICP ledger to ensure I can get archive + current blocks.

Thanks,