Motoko - NFT with Approve and Transaction Log - An ICRC7/30/30 Canister

ICRC 7(Base NFT), 30(Approve workflow), and 3(Transaction Log) are reaching final draft status. The following classes allow you to easily add the functionality from these standards to your motoko actor:

GitHub - PanIndustrial-Org/icrc7.mo: ICRC7 implementation in motoko. - Supports minting, burning, transferring of NFTs

GitHub - PanIndustrial-Org/icrc30.mo: ICRC30 Implementation in motoko - Supports the Approve, ApproveCollection, and TransferFrom workflow

GitHub - PanIndustrial-Org/icrc3.mo - Supports a transaction log, including the creation of archive canisters that can store up to 96GB of transaction log data.

The following example puts them all together in a demo canister:

All are open sourced and MIT Licensed. It would be helpful to have community eyes on them and to develop a community audit procedure so that the classes can be certified as safe for production use.

Pull requests and issues are welcome.

4 Likes

Nice work. Always good to see Motoko development
Would be awesome if you could throw them on GitHub - motoko-unofficial/awesome-motoko: A curated list of Motoko code and resources.

1 Like

Done. Also bumped everything in mops as the working group updated some of the metadata keys today.

1 Like

:wave: @PanIndustrial

First off, thank you for these implementations, it’s great to have them in Motoko.

Pull requests and issues are welcome.

I just opened an issue on the icrc_nft.mo repository since I wasn’t really sure which method was responsible of the behavior I saw. You’ll see in attachement a scenario I made to reproduce the error. I would be curious to know your opinion on it. If you validate it’s a real bug I could try to do a fix myself if you’re busy.

Thank you

We have bumped this package in mops.

v0.5.0

  • Updated to the class+ library.

  • Breaking Change: You will need to update your args and class setup functions.

  • Fix for ICRC37 to allow batch transfer_from

See more about ClassPlus here: ClassPlus - A motoko class for classes

It should reduce boilerplate in your actors

2 Likes