Skip to content

Commit

Permalink
Merge branch 'w3f:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
lukastanisic99 authored Nov 13, 2024
2 parents 6d691d0 + 62ecc82 commit c03c1dd
Show file tree
Hide file tree
Showing 7 changed files with 1,359 additions and 7 deletions.
38 changes: 38 additions & 0 deletions deliveries/DAOsign-milestone_2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 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:** [DAOsign](https://github.com/w3f/Grants-Program/blob/master/applications/DAOsign.md)
* **Milestone Number:** 2

**Context** (optional)
> In this milestone DaoSign deliveries JS/Typescript library to simplify interacting with DaoSign smart contract.
**Deliverables**


| Number | Deliverable | Link | Notes |
| ------------- | ------------- | ------------- |------------- |
| 0a. | License | [LICENSE](https://github.com/DAOsign/daosign-ink-js-sdk/blob/main/LICENSE) | Apache 2.0 |
| 0b. | Documentation | [Readme](https://github.com/DAOsign/daosign-ink-js-sdk/blob/main/README.md) | Instructions how to isntall library and how use it to store DaoSign proofs on-chain |
| 0c. | Testing and Testing Guide | https://github.com/DAOsign/daosign-ink-js-sdk?tab=readme-ov-file#testing | Unit tests to ensure functionality and robustness. The guide describe how to run these tests. |
| 0d. | Docker | https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | Dockerfile(s) that can be used to test all the functionality
| 1. | DAOsign Ink! JS SDK | [Github Repo](https://github.com/DAOsign/daosign-ink-js-sdk), [npm package](https://www.npmjs.com/package/@daosign/polkadot) | |
| 2. | DAOsign Application Integration | [Github Repo](https://github.com/DAOsign/frontend) | DaoSign Frontend Application with Polkadot Smart Contract integration


**Additional Information**

Here is example of DaoSign agreement proofs stored on Polkadot-based chain: https://app.dev.daosign.org/agreement/386869b1-af98-4be4-b582-d07b6bea9c07

You can click on Proofs:

![image](https://github.com/user-attachments/assets/4969b0cf-f16e-4f28-8de8-ce67f9150775)

Popup will appear:

![image](https://github.com/user-attachments/assets/9cd7c846-5726-4d09-a5df-0989c177f69a)

And then click on the [link](https://alephzero-testnet.subscan.io/extrinsic/0x8369934f419b3cc990466d0e856bb5a3565ce21389f74fe5cc9de1ad0e4e8fa0) and you will see transaction on block explorer.
41 changes: 41 additions & 0 deletions deliveries/TuxedoDApp_Milestone_2.md
Original file line number Diff line number Diff line change
@@ -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:** <https://github.com/w3f/Grants-Program/blob/master/applications/TuxedoDapp.md>
* **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: <https://github.com/Off-Narrative-Labs/Tuxedo/commit/80e7b5720a384907cef89e091034fff3fe0f2b7f>
2. Metadata analysis and design/experiments: <https://github.com/Off-Narrative-Labs/Tuxedo/issues/30#issuecomment-1920539885>
3. Complete CLI-wallet implementation for Kitties/Tradable kitties: <https://github.com/mlabs-haskell/Tuxedo/blob/main/wallet/src/kitty.rs>
4. Cryptokitties development: A comparative analysis between EVM - Cardano - Tuxedo/Polkadot: <https://docs.google.com/document/d/1kdYA9Jd100p91t9okjYncLZw_Qn6guo2Bm032mko3DU/edit?usp=sharing>
44 changes: 44 additions & 0 deletions deliveries/polkadart-followup-milestone_1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# 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:** https://github.com/w3f/Grants-Program/blob/master/applications/polkadart_extension.md
* **Milestone Number:** 1

**Context**

We have divided this grant into two milestones:
1 - Make a full developer-friendly documentation of what has been developed already
2 - New features and more documentation

Though this milestone was focused on documentation we have made significant progress into items from milestone 2:
- https://github.com/leonardocustodio/polkadart/pull/489
- https://github.com/leonardocustodio/polkadart/pull/487

And that's the reason it took more time than antecipated to submit this milestone.

We have made a documentation focused website that can be accessed at https://polkadart.dev
The documentation repository is also public and accepts contributions from any developer, located at: https://github.com/polkadart/docs

**Deliverables**

| Number | Deliverable | Link | Notes |
| ------------- | ------------- | ------------- |------------- |
| 0a. | License | https://github.com/polkadart/docs/blob/main/LICENSE | |
| 0b. | Documentation | https://polkadart.dev | |
| 1a. | API docs | https://polkadart.dev/api/overview | |
| 1c. | API examples | https://polkadart.dev/api/state/#sample-usage | |
| 2a. | Metadata docs | https://polkadart.dev/metadata/overview | |
| 2b. | Metadata examples | https://polkadart.dev/metadata/overview/#example-stateapi | |
| 3a. | Keyring docs | https://polkadart.dev/keyring-signer/overview | |
| 3b. | Keyring examples | https://polkadart.dev/keyring-signer/keypair | |
| 1d. | API faq | http://polkadart.dev/guides/listen-blocks | |
| 2c. | Metadata faq | https://polkadart.dev/guides/read-storage | |
| 3c. | Keyring faq | http://localhost:4321/guides/make-transfer | |

We have renamed the `Metadata` section to `Blockchain API` the reason for that is that our `polkadart_cli` tool uses the metadata to generate all interfaces to each network.
We have replaced `FAQs` by `Guides` as we don't really have any "frequently asked questions" being asked right now. Each of those shows common use-cases that people would "ask how to do it" in each of those areas.

**Additional Information**

We have been investing a good amount of time in making the documentation as good as possible. We believe that just like polkadot.wiki a good well-structured, clean, and easy to follow documentation is more important than just a huge amount of information that people can't follow. If the person only wants access to reference we have provided references to all methods/apis from every package in the website as well. Finally, we are starting to setup a community to help people to use Polkadart, we have setup a dev group at https://t.me/polkadart which can be used for doubts or help.
56 changes: 49 additions & 7 deletions evaluations/DAOsign_m2_keeganquigley.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,60 @@
# Evaluation


- **Status:** in progress
- **Status:** Accepted
- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DAOsign.md
- **Milestone:** 2
- **Previously successfully merged evaluation:** All by PieWol
- **Previously successfully merged evaluation:** PieWol

| Number | Deliverable | Accepted | Link | Notes |
| ------------- | ------------- | ------------- | ------------- | ------------- |
| 0a. | License | <ul><li>[x] </li></ul> | [LICENSE](https://github.com/DAOsign/daosign-ink-js-sdk/blob/main/LICENSE) | Apache 2.0 |
| 0b. | Documentation | <ul><li>[x] </li></ul> | [Readme](https://github.com/DAOsign/daosign-ink-js-sdk/blob/main/README.md) | |
| 0c. | Testing and Testing Guide | <ul><li>[x] </li></ul> | https://github.com/DAOsign/daosign-ink-js-sdk?tab=readme-ov-file#testing | |
| 0d. | Docker | <ul><li>[x] </li></ul> | https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker |
| 1. | DAOsign Ink! JS SDK | <ul><li>[x] </li></ul> | [Github Repo](https://github.com/DAOsign/daosign-ink-js-sdk), [npm package](https://www.npmjs.com/package/@daosign/polkadot) | |
| 2. | DAOsign Application Integration | <ul><li>[x] </li></ul> | [Github Repo](https://github.com/DAOsign/frontend) |
| 0b. | Documentation | <ul><li>[x] </li></ul> | [Readme](https://github.com/DAOsign/daosign-ink-js-sdk/blob/main/README.md) | Readme could be updated. |
| 0c. | Testing and Testing Guide | <ul><li>[x] </li></ul> | https://github.com/DAOsign/daosign-ink-js-sdk?tab=readme-ov-file#testing | All passing. |
| 0d. | Docker | <ul><li>[x] </li></ul> | https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | Ok.
| 1. | DAOsign Ink! JS SDK | <ul><li>[x] </li></ul> | [Github Repo](https://github.com/DAOsign/daosign-ink-js-sdk), [npm package](https://www.npmjs.com/package/@daosign/polkadot) | Ok. |
| 2. | DAOsign Application Integration | <ul><li>[x] </li></ul> | [Github Repo](https://github.com/DAOsign/frontend) | Ok.

# General Notes

Passed but for the next milestone consider writing some better docs.

~~Only two unit tests.~~

UPDATE: All unit tests now passing with good coverage:

```ts
PASS __tests__/DaosignPolkadotContractInteractor.test.ts (6.888 s)
numberToArray
should correctly convert positive numbers (3 ms)
should correctly handle zero (1 ms)
should correctly convert large numbers (1 ms)
should throw an error for numbers exceeding maximum safe integer (13 ms)
should throw an error for negative numbers
sendTransaction
should send a transaction successfully with valid parameters (16 ms)
should handle transaction failure gracefully
should handle insufficient funds and network errors gracefully (1 ms)
Proof storage functions
should store proof of authority successfully with valid parameters (2 ms)
should store proof of signature successfully with valid parameters (1 ms)
should store proof of agreement successfully with valid parameters (1 ms)
should fail storing proof of authority with invalid parameters (1 ms)
should fail storing proof of signature with invalid parameters (1 ms)
should fail storing proof of agreement with invalid parameters (1 ms)
should handle network issues or contract errors in proof storage
Check wallet balance
should get account balance successfully (29 ms)
should throw an error if account balance retrieval fails (13 ms)

----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 93.1 | 75 | 92.3 | 92.72 |
index.ts | 93.1 | 75 | 92.3 | 92.72 | 72-75,116
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 17 passed, 17 total
Snapshots: 0 total
Time: 6.969 s
```
28 changes: 28 additions & 0 deletions evaluations/p2pStateChannels_1_piewol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Evaluation

- **Status:** accepted
- **Application Document:** [P2P State Channels](https://github.com/w3f/Grants-Program/blob/master/applications/P2PStateChannels.md)
- **Milestone:** 1
- **Previously successfully merged evaluation:** All by PieWol

| Number | Deliverable | Accepted | Link | Evaluation Notes |
| ------ | ----------- | :------: | ---- |----------------- |
| **0a.** | License | <ul><li>[x] </li></ul> | [License file](https://github.com/peer3to/state-channels-plus/blob/master/LICENSE) | MIT, compiling the solidity contracts emits warnings about unspecified licenses. |
| **0b.** | Documentation | <ul><li>[x] </li></ul> |https://github.com/peer3to/state-channels-plus/blob/master/docs/mfsDocs.md | ok |
| **0c.** | Testing and Testing Guide | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/tree/master/test | ok |
| **0d.** | Docker | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/Dockerfile | works |
| **1** | Channel Opening | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/db81f2bb11a032a2e4678b98ceed9f7944477325/examples/TicTacToe/contracts/TicTacToe/TicTacToeStateChannelManagerProxy.sol#L23 , [interface](https://github.com/peer3to/state-channels-plus/blob/master/contracts/V1/StateChannelManagerInterface.sol) | ok |
| **2** | Cryptography | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/master/contracts/V1/StateChannelDiamondProxy/StateChannelUtilLibrary.sol | ok |
| **3** | Liveness | <ul><li>[x] </li></ul> | https://github.com/peer3to/state-channels-plus/blob/db81f2bb11a032a2e4678b98ceed9f7944477325/examples/TicTacToe/contracts/TicTacToe/TicTacToeStateChannelManagerProxy.sol#L23 | ok |



## General Notes
Looks good, all tests are passing and all deliverables have been achieved. Thanks! A lot of files could use some more expressive inline documentation. I'm hopeful that this will be improved in the future.
I'd love to see a PVM integration.

## tests
all tests passing
````
31 passing (11s)
````
Loading

0 comments on commit c03c1dd

Please sign in to comment.