ICRC2 handling transfer_from() and expires_at

When the approval expires, the ledger treats it as if it never existed (the DFINITY implementation actively prunes expired approvals from memory, for example). So the icrc2_transfer_from method should return the InsufficientAllowance error when the approval expires.

Also note that the GenericError variant is reserved for future refinements of the standard, not for the implementors to return custom errors.

3 Likes