The FI Team will be submitting the following add canister proposal this Monday, 2023-08-28. DFINITY plans to vote on this proposal the following Thursday.
Proposals to be Submitted
# Proposal to Add ICP-Index Canister to NNS Subnet
Proposer: DFINITY Foundation
Git Hash: 1c3f9883dd2bd6d36b88ddd4bfe434d1d4372d52
Wasm Hash: 083cf14f68be2ac5bf9213f3d024078600d39e9ddb0be6530dda8aebd665515e
Init Arguments Hash: d954e72837fb2b3b77baba2443e059d44c4c7f7a4e9e983d405af27388b87ff9
## Features
- Add support for accountidentifier based search for transactions of the ICP ledger
## Wasm Verification
git fetch
git checkout 1c3f9883dd2bd6d36b88ddd4bfe434d1d4372d52
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/ic-icp-index-canister.wasm.gz
## Argument Verification
didc encode -d rs/rosetta-api/icp_ledger/index/index.did -t '(InitArg)' '(record {ledger_id = principal "ryjl3-tyaaa-aaaaa-aaaba-cai"})' | xxd -r -p > ~/ledger_arg.bin
sha256sum ~/ledger_arg.bin
Yes i noticed it was optional, but for a Transfer operation i would expect that this data is always filled. What could be the reason that this isn’t filled? Is this an arg that need to be filled on the transfer call?
If you look at the ICRC-1 standard, more specifically the section on deduplication, you can see that the created_at_time field is used to deduplicate transactions in a certain time window. If a user is fine with their transaction not being deduplicated they can simply leave the field as None. The ledger will then not check whether the transaction has already been seen in the transaction window. If however, a user wants to make sure a certain transaction is only processed once during a transaction window, they would use the created_at_time. This is for example useful in asynchronous client-server environments during crash-recovery operations.