From 3cec7ba252b0f09adc778355d3045cfa54ce335f Mon Sep 17 00:00:00 2001 From: Romi Date: Mon, 27 Jan 2025 20:43:54 +0100 Subject: [PATCH 1/4] Create nftaa_m1.md --- deliveries/nftaa_m1.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/nftaa_m1.md diff --git a/deliveries/nftaa_m1.md b/deliveries/nftaa_m1.md new file mode 100644 index 000000000..a81c1d031 --- /dev/null +++ b/deliveries/nftaa_m1.md @@ -0,0 +1,30 @@ +# Milestone Delivery :mailbox: + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** [nftaa.md](https://github.com/w3f/Grants-Program/blob/master/applications/nftaa.md) +* **Milestone Number:** 1/3 + +**Context** (optional) + +In this milestone, we are delivering the foundational component of the NFT as an Account (NFTAA) project — a custom Substrate pallet enabling NFTs to function as proxy tradable accounts. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[MIT NFTAA general repo](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/LICENSE), [MIT NFTAA pallet src repo](https://github.com/decenzio/nftaa/blob/main/LICENSE)| MIT | +| 0b. | Documentation |[How to run?](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md), [NFTAA doc](https://github.com/decenzio/nftaa/blob/main/README.md)| Readmes for all major parts of repository + inline documentation in each version of pallet + official documentation | +| 0c. | Testing and Testing Guide |[Testing guide in readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md), [Unit tests file](https://github.com/decenzio/nftaa/blob/main/src/tests.rs)| Testing guide mentioned in readme & core unit tests | +| 0d. | Docker |[Docker file](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/Dockerfile), [Docker guid in this readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md)| Docker file provided to test the functionality of the solution | +| 1. | nftaa_pallet | Initial version of the nftaa_pallet | Containing the functionalities described in the following lines | +| 1a. | reimplement functionalities from pallet_nfts | [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | Integration with the Substrate nfts pallet (for now only selected functions) | +| 1b. | nftaa address | pub fn create, pub fn mint, pub fn transfer, fn generate_nfta_address in [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | NFTAA creation and ownership management, construct keyless address for given NFT, create NFTAA address as future input to act as proxy | +| 1c. | nftaa attributes | [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | Attribute management for NFTAA is inherited from the nfts pallet functionality and fully compatible., bind NFT and its new keyless address to one entity consists of filling in the attributes contained in the NFT(AA) item | +| 1d. | nftaa act as proxy | pub fn proxy_call in [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | Implement the proxy functionality to allow NFTs to act as proxy accounts, the owner of NFTAA can do a call via it; for this, we use pallet_utility special function as_derivate. We ensure that when an NFTAA is listed for sale, assets owned by the NFTAA cannot be withdrawn, effectively preventing fraudulent transfers. Therefore, if the NFTAA is listed, proxy calls are not possible. | +| 1e. | find owned assets | The default blockchain explorer can be used for this purpose | During the implementation, we realized that this is not possible in a pallet environment because the ownership of assets by the NFTAA entity is written onchain like any other ownership relationship we know from current accounts. However, the address of our NFTAA is fully compatible with existing blockchain explorer. | +| 1f. | find NFTAAs for account and owner | It is possible to query storage to Find NFTs for an address using Polkadot.js API | Function to find owner of given NFTAA | + +**Additional Information** + +Every aspect of the project outlined in the proposal was implemented as specified. However, an exception exists in point 1e, where the original proposal lacks clarity and feasibility in the context of blockchain operations. The functions referenced in point 1a are those explicitly mentioned in [our proposal and the Milestone 1 section](https://github.com/w3f/Grants-Program/blob/master/applications/nftaa.md#milestone-1--basic-functionality); they are not arbitrarily chosen. From 5c2f93c6b5510a64b3b5b28e5ccb9bb020880dcf Mon Sep 17 00:00:00 2001 From: Romi Date: Tue, 28 Jan 2025 00:06:31 +0100 Subject: [PATCH 2/4] Update nftaa_m1.md, improve links --- deliveries/nftaa_m1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deliveries/nftaa_m1.md b/deliveries/nftaa_m1.md index a81c1d031..c8c75810c 100644 --- a/deliveries/nftaa_m1.md +++ b/deliveries/nftaa_m1.md @@ -14,9 +14,9 @@ In this milestone, we are delivering the foundational component of the NFT as an | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | | 0a. | License |[MIT NFTAA general repo](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/LICENSE), [MIT NFTAA pallet src repo](https://github.com/decenzio/nftaa/blob/main/LICENSE)| MIT | -| 0b. | Documentation |[How to run?](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md), [NFTAA doc](https://github.com/decenzio/nftaa/blob/main/README.md)| Readmes for all major parts of repository + inline documentation in each version of pallet + official documentation | -| 0c. | Testing and Testing Guide |[Testing guide in readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md), [Unit tests file](https://github.com/decenzio/nftaa/blob/main/src/tests.rs)| Testing guide mentioned in readme & core unit tests | -| 0d. | Docker |[Docker file](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/Dockerfile), [Docker guid in this readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md)| Docker file provided to test the functionality of the solution | +| 0b. | Documentation |[How to run?](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md#how-to-run), [NFTAA doc](https://github.com/decenzio/nftaa/blob/main/README.md)| Readmes for all major parts of repository + inline documentation in each version of pallet + official documentation | +| 0c. | Testing and Testing Guide |[Testing guide in readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md#testing), [Unit tests file](https://github.com/decenzio/nftaa/blob/main/src/tests.rs)| Testing guide mentioned in readme & core unit tests | +| 0d. | Docker |[Docker file](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/Dockerfile), [Docker guid in this readme](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/README.md#docker)| Docker file provided to test the functionality of the solution | | 1. | nftaa_pallet | Initial version of the nftaa_pallet | Containing the functionalities described in the following lines | | 1a. | reimplement functionalities from pallet_nfts | [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | Integration with the Substrate nfts pallet (for now only selected functions) | | 1b. | nftaa address | pub fn create, pub fn mint, pub fn transfer, fn generate_nfta_address in [lib.rs](https://github.com/decenzio/nftaa/blob/main/src/lib.rs) | NFTAA creation and ownership management, construct keyless address for given NFT, create NFTAA address as future input to act as proxy | @@ -27,4 +27,4 @@ In this milestone, we are delivering the foundational component of the NFT as an **Additional Information** -Every aspect of the project outlined in the proposal was implemented as specified. However, an exception exists in point 1e, where the original proposal lacks clarity and feasibility in the context of blockchain operations. The functions referenced in point 1a are those explicitly mentioned in [our proposal and the Milestone 1 section](https://github.com/w3f/Grants-Program/blob/master/applications/nftaa.md#milestone-1--basic-functionality); they are not arbitrarily chosen. +Every aspect of the project outlined in the proposal was implemented as specified. However, an exception exists in point 1e, where we had to deviate slightly from the intention, but the resulting solution fulfils the same purpose. The functions referenced in point 1a are those explicitly mentioned in [our proposal and the Milestone 1 section](https://github.com/w3f/Grants-Program/blob/master/applications/nftaa.md#milestone-1--basic-functionality); they are not arbitrarily chosen. From b678e7fe77b0ef956184583055481b8bd587250f Mon Sep 17 00:00:00 2001 From: Romi Date: Tue, 28 Jan 2025 19:07:56 +0100 Subject: [PATCH 3/4] Update nftaa_m1.md add prj repo overview --- deliveries/nftaa_m1.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/deliveries/nftaa_m1.md b/deliveries/nftaa_m1.md index c8c75810c..5420aa9f6 100644 --- a/deliveries/nftaa_m1.md +++ b/deliveries/nftaa_m1.md @@ -11,6 +11,21 @@ In this milestone, we are delivering the foundational component of the NFT as an **Deliverables** +Repository overview - Here are the three repositories related to our project: + +1. NFTAA W3F Proposal Documents + Repository containing all materials related to the W3F proposal for NFTAA. + [GitHub Link: polkadot-nftaa-proposal](https://github.com/decenzio/polkadot-nftaa-proposal) + +2. Pallet Source Code + The core implementation of the NFTAA pallet. + [GitHub Link: nftaa](https://github.com/decenzio/nftaa) + +3. Custom Polkadot-SDK Fork + A customized fork of the Polkadot SDK. Development is happening in the `dev` branch. + [GitHub Link: polkadot-sdk](https://github.com/decenzio/polkadot-sdk) + + | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | | 0a. | License |[MIT NFTAA general repo](https://github.com/decenzio/polkadot-nftaa-proposal/blob/main/LICENSE), [MIT NFTAA pallet src repo](https://github.com/decenzio/nftaa/blob/main/LICENSE)| MIT | From e300db73c121ec90d3878ebc2d604760618079bb Mon Sep 17 00:00:00 2001 From: Romi Date: Tue, 28 Jan 2025 19:16:21 +0100 Subject: [PATCH 4/4] Update and rename nftaa_m1.md to nftaa_milestone_1.md and fix ml number --- deliveries/{nftaa_m1.md => nftaa_milestone_1.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename deliveries/{nftaa_m1.md => nftaa_milestone_1.md} (99%) diff --git a/deliveries/nftaa_m1.md b/deliveries/nftaa_milestone_1.md similarity index 99% rename from deliveries/nftaa_m1.md rename to deliveries/nftaa_milestone_1.md index 5420aa9f6..bc861c8e5 100644 --- a/deliveries/nftaa_m1.md +++ b/deliveries/nftaa_milestone_1.md @@ -3,7 +3,7 @@ **The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** * **Application Document:** [nftaa.md](https://github.com/w3f/Grants-Program/blob/master/applications/nftaa.md) -* **Milestone Number:** 1/3 +* **Milestone Number:** 1 **Context** (optional)