From 47cb7099ac1b5209bae839461e5193a70c6f6faa Mon Sep 17 00:00:00 2001 From: Mario Altimari Date: Fri, 19 Apr 2024 18:51:39 +0100 Subject: [PATCH 01/10] Create TuxedoDApp_Milestone_1 doc mandatory for the milestone approval --- deliveries/TuxedoDApp_Milestone_1.md | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/TuxedoDApp_Milestone_1.md diff --git a/deliveries/TuxedoDApp_Milestone_1.md b/deliveries/TuxedoDApp_Milestone_1.md new file mode 100644 index 000000000..346ffa0cc --- /dev/null +++ b/deliveries/TuxedoDApp_Milestone_1.md @@ -0,0 +1,30 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** https://github.com/w3f/Grants-Program/blob/master/applications/TuxedoDapp.md +* **Milestone Number:** 1 + +**Context** + +Unlike traditional account-based systems, UTXO-based systems treat each transaction output as a distinct entity, introducing advantages in parallel processing and state transition simplicity. The Tuxedo project endeavours to demonstrate the flexibility and interoperability of Polkadot by implementing UTXO as one of its paradigms. MLabs, with expertise in the Cardano ecosystem utilizing UTXO as its core model, sees an opportunity to contribute to Tuxedo's success, address identified issues, and engage in future collaborative activities. + +Our goal is to showcase the potential of Polkadot using the UTXO paradigm for the end user, leveraging Tuxedo. + +**Deliverables** + + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------------- | +| **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | +| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | +| **0c.** | Testing and Testing Guide | link to readme? how to do so? | Tests are run in CI and instructions for running them locally are in the readme.| +| **0d.** | Article | Link to video and [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows how to use the Talismat wallet which we integrated | +| **0e.** | Docker | ? | anything about it? | +| **0f.** | Web-based wallet, CLI wallet and core | [DApp repo](https://github.com/mlabs-haskell/TuxedoDapp) , [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo) | We integrated the well-known web-based wallet Talisman which was not compatible with Tuxedo nor the UTXO model | + +## + +**Additional Information** + +Following the suggestion of Joshua Orndorff, author of Tuxedo, we focused on the integration of something existing instead of building from scratch a redundant solution. The effort was not trivial because Talisman doesn't support UTXO. However, to be sure about how the front end of the Dapp was supposed to work, we had to build extra features on the Tuxedo CLI-wallet. That effort was outside the scope of the grant, but we preferred to invest extra time and resources in this direction as well, to deeply understand and test the Tuxedo code. From 08a5d592915206fbe6c8be5b5d470b4f78e6f983 Mon Sep 17 00:00:00 2001 From: AltiMario Date: Mon, 22 Apr 2024 09:48:49 +0100 Subject: [PATCH 02/10] update additional information --- deliveries/TuxedoDApp_Milestone_1.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deliveries/TuxedoDApp_Milestone_1.md b/deliveries/TuxedoDApp_Milestone_1.md index 346ffa0cc..8dd32199e 100644 --- a/deliveries/TuxedoDApp_Milestone_1.md +++ b/deliveries/TuxedoDApp_Milestone_1.md @@ -2,8 +2,8 @@ **The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** https://github.com/w3f/Grants-Program/blob/master/applications/TuxedoDapp.md -* **Milestone Number:** 1 +* **Application Document:** +* **Milestone Number:** 1 **Context** @@ -13,7 +13,6 @@ Our goal is to showcase the potential of Polkadot using the UTXO paradigm for th **Deliverables** - | Number | Deliverable | Link | Notes | | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | @@ -27,4 +26,7 @@ Our goal is to showcase the potential of Polkadot using the UTXO paradigm for th **Additional Information** -Following the suggestion of Joshua Orndorff, author of Tuxedo, we focused on the integration of something existing instead of building from scratch a redundant solution. The effort was not trivial because Talisman doesn't support UTXO. However, to be sure about how the front end of the Dapp was supposed to work, we had to build extra features on the Tuxedo CLI-wallet. That effort was outside the scope of the grant, but we preferred to invest extra time and resources in this direction as well, to deeply understand and test the Tuxedo code. +Following the suggestion of Joshua Orndorff, author of Tuxedo, we focused on integrating something existing instead of building a redundant solution from scratch. The effort was not trivial because Talisman doesn't support UTXO. However, to be sure how the front end of the Dapp was supposed to work, we had to build extra features on the Tuxedo CLI wallet. That effort was outside the scope of the grant, but we preferred to invest the extra time and resources in this direction, to understand and test the Tuxedo code deeply. Other than the out-of-scope implementation of CLI-wallet for Kitties/Tradable kitties, we also worked on : + +1. Mint_coin: +2. Metadata analysis and design/experiments: From 69460c4cc6d14c973548f15fcab6f1cb1f47a964 Mon Sep 17 00:00:00 2001 From: AltiMario Date: Mon, 22 Apr 2024 10:53:54 +0100 Subject: [PATCH 03/10] added testing, docker and further clarification --- deliveries/TuxedoDApp_Milestone_1.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deliveries/TuxedoDApp_Milestone_1.md b/deliveries/TuxedoDApp_Milestone_1.md index 8dd32199e..b426c87cd 100644 --- a/deliveries/TuxedoDApp_Milestone_1.md +++ b/deliveries/TuxedoDApp_Milestone_1.md @@ -17,10 +17,10 @@ Our goal is to showcase the potential of Polkadot using the UTXO paradigm for th | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | | **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | -| **0c.** | Testing and Testing Guide | link to readme? how to do so? | Tests are run in CI and instructions for running them locally are in the readme.| -| **0d.** | Article | Link to video and [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows how to use the Talismat wallet which we integrated | -| **0e.** | Docker | ? | anything about it? | -| **0f.** | Web-based wallet, CLI wallet and core | [DApp repo](https://github.com/mlabs-haskell/TuxedoDapp) , [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo) | We integrated the well-known web-based wallet Talisman which was not compatible with Tuxedo nor the UTXO model | +| **0c.** | Testing and Testing Guide | [CLI-Wallet test](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wardrobe/kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wallet/README.md) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README | +| **0d.** | Article | [Demo wallet integration](https://www.loom.com/share/e1270ecea79a4689aff5732e8acfae14), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows how to use the Talisman wallet which we integrated. The GitHub PM tool tracked the amount of work done across different developers | +| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | +| **0f.** | Frontend, CLI wallet and core | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp) , [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo) | We integrated the well-known web-based wallet Talisman which was not compatible with Tuxedo nor the UTXO model | ## From 7ec8d8794f7b5171f493441a5a75bc5fc866490c Mon Sep 17 00:00:00 2001 From: AltiMario Date: Mon, 29 Apr 2024 12:48:08 +0100 Subject: [PATCH 04/10] 2nd milestone --- deliveries/TuxedoDApp-Milestone_2.md | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 deliveries/TuxedoDApp-Milestone_2.md diff --git a/deliveries/TuxedoDApp-Milestone_2.md b/deliveries/TuxedoDApp-Milestone_2.md new file mode 100644 index 000000000..59914f831 --- /dev/null +++ b/deliveries/TuxedoDApp-Milestone_2.md @@ -0,0 +1,41 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** +* **Milestone Number:** 2 + +**Context** + +Unlike traditional account-based systems, UTXO-based systems treat each transaction output as a distinct entity, introducing advantages in parallel processing and state transition simplicity. The Tuxedo project endeavours to demonstrate the flexibility and interoperability of Polkadot by implementing UTXO as one of its paradigms. MLabs, with expertise in the Cardano ecosystem utilizing UTXO as its core model, sees an opportunity to contribute to Tuxedo's success, address identified issues, and engage in future collaborative activities. + +Our goal is to showcase the potentiality of a real business case of UTXO paradigm on Polkadot. + +In this conclusive milestone of the project, we will demo the overall solution with every single component we built (frontend, web service, swagger restful API contracts and the CLI-wallet extended). We will include our comments on how this product could have been built by adopting an EVM-based chain and also another UTXO-based chain backed by smart contracts. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------------- | +| **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | +| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | +| **0c.** | Testing and Testing Guide | [CLI-Wallet test](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wardrobe/kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | +| **0d.** | Article | [Demo frontend, web service, swagger restful API contracts](https://www.loom.com/share/4445b97dddd8447c8ccafa3b9cea6bb6), [Demo - CLI-wallet - part 1/3](https://youtu.be/Mom3BV_HozY), [Demo - CLI-wallet - part 2/3](https://youtu.be/GfyiBW1XFW0), [Demo - CLI-wallet - part 3/3](https://youtu.be/1T2oE0bfaCQ), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows every single component we built including the Talisman integration. The GitHub PM tool tracked the amount of work done across different developers | +| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | +| **0f.** | Frontend, CLI wallet and core, Backend | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo), [Webservice APIs](https://github.com/mlabs-haskell/Tuxedo/tree/webservice-redeemer-gen-debug-with-lks/webservice-wallet) | We integrated Talisman and created a Dapp with the business logic in the backend that uses the UTXO model to send money and Kitties. For the same purposes, users could also use the CLI-wallet we extended. | +| **0g.** | Personalized Dashboard | Video showed at 0d | A personal dashboard for users to view and manage their NFT-based kitty collections. Display detailed information about each NFT, including ownership and other details such as parents, dna, Tradable status, Price, etc | + + +## + +**Additional Information** + +We did a [short comparative analysis](https://docs.google.com/document/d/1kdYA9Jd100p91t9okjYncLZw_Qn6guo2Bm032mko3DU/edit?usp=sharing) of the development of the same application adopting EVM-based and Cardano (eUTXO) versus Tuxedo. +Moreover, it underscores the potential for Tuxedo's ongoing development to become a robust platform for creating UTXO Dapps on Polkadot. + +Additional extra work outside the scope of the grant: + +1. Mint_coin: +2. Metadata analysis and design/experiments: +3. Complete CLI-wallet implementation for Kitties/Tradable kitties: +4. Cryptokitties development: A comparative analysis between EVM - Tuxedo/Polkadot - Cardano: \ No newline at end of file From c63e8b97a0a4319deb8dfb6880b261e7c9d38e54 Mon Sep 17 00:00:00 2001 From: AltiMario Date: Mon, 29 Apr 2024 13:47:26 +0100 Subject: [PATCH 05/10] updates test file --- deliveries/TuxedoDApp-Milestone_2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/TuxedoDApp-Milestone_2.md b/deliveries/TuxedoDApp-Milestone_2.md index 59914f831..7e8698dcc 100644 --- a/deliveries/TuxedoDApp-Milestone_2.md +++ b/deliveries/TuxedoDApp-Milestone_2.md @@ -19,7 +19,7 @@ In this conclusive milestone of the project, we will demo the overall solution w | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | | **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | -| **0c.** | Testing and Testing Guide | [CLI-Wallet test](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wardrobe/kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | +| **0c.** | Testing and Testing Guide | [Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/kitties/src/tests.rs) , [Tradable Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/tradable_kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/main/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | | **0d.** | Article | [Demo frontend, web service, swagger restful API contracts](https://www.loom.com/share/4445b97dddd8447c8ccafa3b9cea6bb6), [Demo - CLI-wallet - part 1/3](https://youtu.be/Mom3BV_HozY), [Demo - CLI-wallet - part 2/3](https://youtu.be/GfyiBW1XFW0), [Demo - CLI-wallet - part 3/3](https://youtu.be/1T2oE0bfaCQ), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows every single component we built including the Talisman integration. The GitHub PM tool tracked the amount of work done across different developers | | **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | | **0f.** | Frontend, CLI wallet and core, Backend | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo), [Webservice APIs](https://github.com/mlabs-haskell/Tuxedo/tree/webservice-redeemer-gen-debug-with-lks/webservice-wallet) | We integrated Talisman and created a Dapp with the business logic in the backend that uses the UTXO model to send money and Kitties. For the same purposes, users could also use the CLI-wallet we extended. | From b4a13839873e9cda3ee15730972d48a243efb5e0 Mon Sep 17 00:00:00 2001 From: AltiMario Date: Wed, 1 May 2024 11:28:59 +0100 Subject: [PATCH 06/10] removed a wrong file --- deliveries/TuxedoDApp-Milestone_2.md | 41 ---------------------------- 1 file changed, 41 deletions(-) delete mode 100644 deliveries/TuxedoDApp-Milestone_2.md diff --git a/deliveries/TuxedoDApp-Milestone_2.md b/deliveries/TuxedoDApp-Milestone_2.md deleted file mode 100644 index 7e8698dcc..000000000 --- a/deliveries/TuxedoDApp-Milestone_2.md +++ /dev/null @@ -1,41 +0,0 @@ -# Milestone Delivery :mailbox: - -**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** -* **Milestone Number:** 2 - -**Context** - -Unlike traditional account-based systems, UTXO-based systems treat each transaction output as a distinct entity, introducing advantages in parallel processing and state transition simplicity. The Tuxedo project endeavours to demonstrate the flexibility and interoperability of Polkadot by implementing UTXO as one of its paradigms. MLabs, with expertise in the Cardano ecosystem utilizing UTXO as its core model, sees an opportunity to contribute to Tuxedo's success, address identified issues, and engage in future collaborative activities. - -Our goal is to showcase the potentiality of a real business case of UTXO paradigm on Polkadot. - -In this conclusive milestone of the project, we will demo the overall solution with every single component we built (frontend, web service, swagger restful API contracts and the CLI-wallet extended). We will include our comments on how this product could have been built by adopting an EVM-based chain and also another UTXO-based chain backed by smart contracts. - -**Deliverables** - -| Number | Deliverable | Link | Notes | -| -----: | ----------- | ------------- | ------------- | -| **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | -| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | -| **0c.** | Testing and Testing Guide | [Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/kitties/src/tests.rs) , [Tradable Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/tradable_kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/main/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | -| **0d.** | Article | [Demo frontend, web service, swagger restful API contracts](https://www.loom.com/share/4445b97dddd8447c8ccafa3b9cea6bb6), [Demo - CLI-wallet - part 1/3](https://youtu.be/Mom3BV_HozY), [Demo - CLI-wallet - part 2/3](https://youtu.be/GfyiBW1XFW0), [Demo - CLI-wallet - part 3/3](https://youtu.be/1T2oE0bfaCQ), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows every single component we built including the Talisman integration. The GitHub PM tool tracked the amount of work done across different developers | -| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | -| **0f.** | Frontend, CLI wallet and core, Backend | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo), [Webservice APIs](https://github.com/mlabs-haskell/Tuxedo/tree/webservice-redeemer-gen-debug-with-lks/webservice-wallet) | We integrated Talisman and created a Dapp with the business logic in the backend that uses the UTXO model to send money and Kitties. For the same purposes, users could also use the CLI-wallet we extended. | -| **0g.** | Personalized Dashboard | Video showed at 0d | A personal dashboard for users to view and manage their NFT-based kitty collections. Display detailed information about each NFT, including ownership and other details such as parents, dna, Tradable status, Price, etc | - - -## - -**Additional Information** - -We did a [short comparative analysis](https://docs.google.com/document/d/1kdYA9Jd100p91t9okjYncLZw_Qn6guo2Bm032mko3DU/edit?usp=sharing) of the development of the same application adopting EVM-based and Cardano (eUTXO) versus Tuxedo. -Moreover, it underscores the potential for Tuxedo's ongoing development to become a robust platform for creating UTXO Dapps on Polkadot. - -Additional extra work outside the scope of the grant: - -1. Mint_coin: -2. Metadata analysis and design/experiments: -3. Complete CLI-wallet implementation for Kitties/Tradable kitties: -4. Cryptokitties development: A comparative analysis between EVM - Tuxedo/Polkadot - Cardano: \ No newline at end of file From 1ddbce9303e099a2018a96965cb1219a582aed23 Mon Sep 17 00:00:00 2001 From: AltiMario Date: Thu, 2 May 2024 10:02:52 +0100 Subject: [PATCH 07/10] milestone 2 --- deliveries/TuxedoDApp_Milestone_2.md | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 deliveries/TuxedoDApp_Milestone_2.md diff --git a/deliveries/TuxedoDApp_Milestone_2.md b/deliveries/TuxedoDApp_Milestone_2.md new file mode 100644 index 000000000..1af88ef36 --- /dev/null +++ b/deliveries/TuxedoDApp_Milestone_2.md @@ -0,0 +1,41 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** +* **Milestone Number:** 2 + +**Context** + +Unlike traditional account-based systems, UTXO-based systems treat each transaction output as a distinct entity, introducing advantages in parallel processing and state transition simplicity. The Tuxedo project endeavours to demonstrate the flexibility and interoperability of Polkadot by implementing UTXO as one of its paradigms. MLabs, with expertise in the Cardano ecosystem utilizing UTXO as its core model, sees an opportunity to contribute to Tuxedo's success, address identified issues, and engage in future collaborative activities. + +Our goal is to showcase the potentiality of a real business case of UTXO paradigm on Polkadot. + +In this conclusive milestone of the project, we will demo the overall solution with every single component we built (frontend, web service, swagger restful API contracts and the CLI-wallet extended). We will include our comments on how this product could have been built by adopting an EVM-based chain and also another UTXO-based chain backed by smart contracts. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------------- | +| **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | +| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | +| **0c.** | Testing and Testing Guide | [Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/kitties/src/tests.rs) , [Tradable Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/tradable_kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/main/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | +| **0d.** | Article | [Demo frontend, web service, swagger restful API contracts](https://www.loom.com/share/4445b97dddd8447c8ccafa3b9cea6bb6), [Demo - CLI-wallet - part 1/3](https://youtu.be/Mom3BV_HozY), [Demo - CLI-wallet - part 2/3](https://youtu.be/GfyiBW1XFW0), [Demo - CLI-wallet - part 3/3](https://youtu.be/1T2oE0bfaCQ), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows every single component we built including the Talisman integration. The GitHub PM tool tracked the amount of work done across different developers | +| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | +| **0f.** | Frontend, CLI wallet and core, Backend | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo), [Webservice APIs](https://github.com/mlabs-haskell/Tuxedo/tree/webservice-redeemer-gen-debug-with-lks/webservice-wallet) | We integrated Talisman and created a Dapp with the business logic in the backend that uses the UTXO model to send money and Kitties. For the same purposes, users could also use the CLI-wallet we extended. | +| **0g.** | Personalized Dashboard | Video showed at 0d | A personal dashboard for users to view and manage their NFT-based kitty collections. Display detailed information about each NFT, including ownership and other details such as parents, dna, Tradable status, Price, etc | + + +## + +**Additional Information** + +We did a [short comparative analysis](https://docs.google.com/document/d/1kdYA9Jd100p91t9okjYncLZw_Qn6guo2Bm032mko3DU/edit?usp=sharing) of the development of the same application adopting EVM-based and Cardano (eUTXO) versus Tuxedo. +Moreover, it underscores the potential for Tuxedo's ongoing development to become a robust platform for creating UTXO Dapps on Polkadot. + +Additional extra work outside the scope of the grant: + +1. Mint_coin: +2. Metadata analysis and design/experiments: +3. Complete CLI-wallet implementation for Kitties/Tradable kitties: +4. Cryptokitties development: A comparative analysis between EVM - Cardano - Tuxedo/Polkadot: \ No newline at end of file From 4b2760b05648295cc74813faf80f94ca3bf9487a Mon Sep 17 00:00:00 2001 From: AltiMario Date: Thu, 2 May 2024 10:05:00 +0100 Subject: [PATCH 08/10] Revert "milestone 2" This reverts commit 1ddbce9303e099a2018a96965cb1219a582aed23. --- deliveries/TuxedoDApp_Milestone_2.md | 41 ---------------------------- 1 file changed, 41 deletions(-) delete mode 100644 deliveries/TuxedoDApp_Milestone_2.md diff --git a/deliveries/TuxedoDApp_Milestone_2.md b/deliveries/TuxedoDApp_Milestone_2.md deleted file mode 100644 index 1af88ef36..000000000 --- a/deliveries/TuxedoDApp_Milestone_2.md +++ /dev/null @@ -1,41 +0,0 @@ -# Milestone Delivery :mailbox: - -**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** -* **Milestone Number:** 2 - -**Context** - -Unlike traditional account-based systems, UTXO-based systems treat each transaction output as a distinct entity, introducing advantages in parallel processing and state transition simplicity. The Tuxedo project endeavours to demonstrate the flexibility and interoperability of Polkadot by implementing UTXO as one of its paradigms. MLabs, with expertise in the Cardano ecosystem utilizing UTXO as its core model, sees an opportunity to contribute to Tuxedo's success, address identified issues, and engage in future collaborative activities. - -Our goal is to showcase the potentiality of a real business case of UTXO paradigm on Polkadot. - -In this conclusive milestone of the project, we will demo the overall solution with every single component we built (frontend, web service, swagger restful API contracts and the CLI-wallet extended). We will include our comments on how this product could have been built by adopting an EVM-based chain and also another UTXO-based chain backed by smart contracts. - -**Deliverables** - -| Number | Deliverable | Link | Notes | -| -----: | ----------- | ------------- | ------------- | -| **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | -| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | -| **0c.** | Testing and Testing Guide | [Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/kitties/src/tests.rs) , [Tradable Kitty Piece test](https://github.com/mlabs-haskell/Tuxedo/blob/main/wardrobe/tradable_kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/main/wallet/README.md) , [APIs test](https://github.com/mlabs-haskell/Tuxedo/tree/main/webservice-wallet#rest-documentation) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README. We did tests also for the APIs | -| **0d.** | Article | [Demo frontend, web service, swagger restful API contracts](https://www.loom.com/share/4445b97dddd8447c8ccafa3b9cea6bb6), [Demo - CLI-wallet - part 1/3](https://youtu.be/Mom3BV_HozY), [Demo - CLI-wallet - part 2/3](https://youtu.be/GfyiBW1XFW0), [Demo - CLI-wallet - part 3/3](https://youtu.be/1T2oE0bfaCQ), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows every single component we built including the Talisman integration. The GitHub PM tool tracked the amount of work done across different developers | -| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | -| **0f.** | Frontend, CLI wallet and core, Backend | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo), [Webservice APIs](https://github.com/mlabs-haskell/Tuxedo/tree/webservice-redeemer-gen-debug-with-lks/webservice-wallet) | We integrated Talisman and created a Dapp with the business logic in the backend that uses the UTXO model to send money and Kitties. For the same purposes, users could also use the CLI-wallet we extended. | -| **0g.** | Personalized Dashboard | Video showed at 0d | A personal dashboard for users to view and manage their NFT-based kitty collections. Display detailed information about each NFT, including ownership and other details such as parents, dna, Tradable status, Price, etc | - - -## - -**Additional Information** - -We did a [short comparative analysis](https://docs.google.com/document/d/1kdYA9Jd100p91t9okjYncLZw_Qn6guo2Bm032mko3DU/edit?usp=sharing) of the development of the same application adopting EVM-based and Cardano (eUTXO) versus Tuxedo. -Moreover, it underscores the potential for Tuxedo's ongoing development to become a robust platform for creating UTXO Dapps on Polkadot. - -Additional extra work outside the scope of the grant: - -1. Mint_coin: -2. Metadata analysis and design/experiments: -3. Complete CLI-wallet implementation for Kitties/Tradable kitties: -4. Cryptokitties development: A comparative analysis between EVM - Cardano - Tuxedo/Polkadot: \ No newline at end of file From fe53ff2a398b36edb391d80c3d31366eb77779b2 Mon Sep 17 00:00:00 2001 From: Mario Altimari Date: Tue, 14 May 2024 21:11:05 +0100 Subject: [PATCH 09/10] Fixed documentation and article Related to the evaluation https://github.com/w3f/Grant-Milestone-Delivery/pull/1175 --- deliveries/TuxedoDApp_Milestone_1.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/deliveries/TuxedoDApp_Milestone_1.md b/deliveries/TuxedoDApp_Milestone_1.md index b426c87cd..d380ba99f 100644 --- a/deliveries/TuxedoDApp_Milestone_1.md +++ b/deliveries/TuxedoDApp_Milestone_1.md @@ -16,17 +16,18 @@ Our goal is to showcase the potential of Polkadot using the UTXO paradigm for th | Number | Deliverable | Link | Notes | | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | -| **0b.** | Documentation | [Wiki](https://github.com/mlabs-haskell/TuxedoDapp/wiki) | Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game design, Talisman wallet, Wireframes | +| **0b.** | Documentation | [Demo wallet integration](https://www.loom.com/share/e1270ecea79a4689aff5732e8acfae14), [CLI-wallet - Demo part 1/3](https://youtu.be/Mom3BV_HozY), [CLI-wallet - Demo part 2/3](https://youtu.be/GfyiBW1XFW0), [CLI-wallet - Demo part 3/3](https://youtu.be/1T2oE0bfaCQ), [APIs spreadsheet](https://github.com/mlabs-haskell/TuxedoDapp/wiki/APIs-spreadsheet), [Build and run the project](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Build-and-run-the-project), [Frontend development libs](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Frontend-development-libs), [Game design](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Game-design), [Wireframes](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Wireframes), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | Video to showcase the integration. Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game Design, Wireframes. The GitHub PM tool tracked the amount of work done across different developers | | **0c.** | Testing and Testing Guide | [CLI-Wallet test](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wardrobe/kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wallet/README.md) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README | -| **0d.** | Article | [Demo wallet integration](https://www.loom.com/share/e1270ecea79a4689aff5732e8acfae14), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | This video shows how to use the Talisman wallet which we integrated. The GitHub PM tool tracked the amount of work done across different developers | -| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Web wallet integration docker is not needed, however, we included the one used for the webservice | -| **0f.** | Frontend, CLI wallet and core | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp) , [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo) | We integrated the well-known web-based wallet Talisman which was not compatible with Tuxedo nor the UTXO model | +| **0d.** | Article | [Tuxedo DApp specification](https://docs.google.com/document/d/1dHsb_k3Xo5f4yFx802sMe22z6NYq3FeZc9l4bB0exMk/edit), [Talisman integration design](https://docs.google.com/presentation/d/1vsfJ5TYPXcvF4vmY7fHfM25lcNmZdjh6YfUyyoOzVAw/edit) | DApp specification with description of the components. A brief design of the talisman integration. | +| **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Talisman integration, docker is not needed. However, we included the docked used for the webservice | +| **0f.** | Frontend, CLI wallet and core | [main DApp repo](https://github.com/mlabs-haskell/TuxedoDapp), [CLI Wallet and core repo](https://github.com/mlabs-haskell/Tuxedo) | In these repos we have the DApp including the integrated Talisman and the CLI-Wallet together with the core | + ## **Additional Information** -Following the suggestion of Joshua Orndorff, author of Tuxedo, we focused on integrating something existing instead of building a redundant solution from scratch. The effort was not trivial because Talisman doesn't support UTXO. However, to be sure how the front end of the Dapp was supposed to work, we had to build extra features on the Tuxedo CLI wallet. That effort was outside the scope of the grant, but we preferred to invest the extra time and resources in this direction, to understand and test the Tuxedo code deeply. Other than the out-of-scope implementation of CLI-wallet for Kitties/Tradable kitties, we also worked on : +Following the suggestion of Joshua Orndorff, author of Tuxedo, we focused on integrating an existing wallet instead of building a redundant solution from scratch. The effort was not trivial because Talisman doesn't support UTXO. However, to be sure how the front end of the Dapp was supposed to work, we had to build extra features on the Tuxedo CLI wallet. That effort was not foreseen during the original budget definition of the grant. Still, we preferred to invest the extra time and resources in this direction, to understand and test the Tuxedo code deeply. Other than the CLI-wallet we also worked on extra areas outside of the granted budget: 1. Mint_coin: 2. Metadata analysis and design/experiments: From 2e3987bf39eea80898aaf6b059272de451d68ce9 Mon Sep 17 00:00:00 2001 From: Mario Altimari Date: Fri, 17 May 2024 11:05:19 +0100 Subject: [PATCH 10/10] added the README file in documentation produced --- deliveries/TuxedoDApp_Milestone_1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/TuxedoDApp_Milestone_1.md b/deliveries/TuxedoDApp_Milestone_1.md index d380ba99f..7b4f4f917 100644 --- a/deliveries/TuxedoDApp_Milestone_1.md +++ b/deliveries/TuxedoDApp_Milestone_1.md @@ -16,7 +16,7 @@ Our goal is to showcase the potential of Polkadot using the UTXO paradigm for th | Number | Deliverable | Link | Notes | | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [License file](https://github.com/mlabs-haskell/TuxedoDapp?tab=Apache-2.0-1-ov-file#readme) | Apache 2.0, as recommended | -| **0b.** | Documentation | [Demo wallet integration](https://www.loom.com/share/e1270ecea79a4689aff5732e8acfae14), [CLI-wallet - Demo part 1/3](https://youtu.be/Mom3BV_HozY), [CLI-wallet - Demo part 2/3](https://youtu.be/GfyiBW1XFW0), [CLI-wallet - Demo part 3/3](https://youtu.be/1T2oE0bfaCQ), [APIs spreadsheet](https://github.com/mlabs-haskell/TuxedoDapp/wiki/APIs-spreadsheet), [Build and run the project](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Build-and-run-the-project), [Frontend development libs](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Frontend-development-libs), [Game design](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Game-design), [Wireframes](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Wireframes), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | Video to showcase the integration. Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game Design, Wireframes. The GitHub PM tool tracked the amount of work done across different developers | +| **0b.** | Documentation | [README](https://github.com/mlabs-haskell/TuxedoDapp/blob/master/README.md), [Demo wallet integration](https://www.loom.com/share/e1270ecea79a4689aff5732e8acfae14), [CLI-wallet - Demo part 1/3](https://youtu.be/Mom3BV_HozY), [CLI-wallet - Demo part 2/3](https://youtu.be/GfyiBW1XFW0), [CLI-wallet - Demo part 3/3](https://youtu.be/1T2oE0bfaCQ), [APIs spreadsheet](https://github.com/mlabs-haskell/TuxedoDapp/wiki/APIs-spreadsheet), [Build and run the project](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Build-and-run-the-project), [Frontend development libs](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Frontend-development-libs), [Game design](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Game-design), [Wireframes](https://github.com/mlabs-haskell/TuxedoDapp/wiki/Wireframes), [GitHub project management tool](https://github.com/orgs/mlabs-haskell/projects/57/views/1) | Overall project description. Video to showcase the Talisman integration. Info about APIs spreadsheet, Build and run the project, DApp specification, Frontend development libs, Game Design, Wireframes. The GitHub PM tool tracked the amount of work done across different developers | | **0c.** | Testing and Testing Guide | [CLI-Wallet test](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wardrobe/kitties/src/tests.rs) , [Tuxedo Template Wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/wallet/README.md) | We included our tests done for the CLI-Wallet, they can be executed using the Tuxedo documentation in the README | | **0d.** | Article | [Tuxedo DApp specification](https://docs.google.com/document/d/1dHsb_k3Xo5f4yFx802sMe22z6NYq3FeZc9l4bB0exMk/edit), [Talisman integration design](https://docs.google.com/presentation/d/1vsfJ5TYPXcvF4vmY7fHfM25lcNmZdjh6YfUyyoOzVAw/edit) | DApp specification with description of the components. A brief design of the talisman integration. | | **0e.** | Docker | [webservice-wallet](https://github.com/mlabs-haskell/Tuxedo/blob/webservice-redeemer-gen-debug-with-lks/webservice-wallet/Dockerfile) | For the Talisman integration, docker is not needed. However, we included the docked used for the webservice |