From 61865a2efc8be4fdcf872d8f7b071246f4646045 Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Fri, 23 Feb 2024 15:15:56 +0100 Subject: [PATCH 1/9] init --- evaluations/DAOsign_m1_PieWol | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 evaluations/DAOsign_m1_PieWol diff --git a/evaluations/DAOsign_m1_PieWol b/evaluations/DAOsign_m1_PieWol new file mode 100644 index 000000000..d2c1dfcb5 --- /dev/null +++ b/evaluations/DAOsign_m1_PieWol @@ -0,0 +1,39 @@ +# Evaluation + + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DAOsign.md +- **Milestone:** 1 +- **Previously successfully merged evaluation:** All by PieWol + + + +| Number | Deliverable | Accepted |Link | Evaluation Notes | +|--------|---------------------------| ------------- |------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0a. | License | [LICENSE](https://github.com/DAOsign/polkadot-smart-contracts/blob/main/LICENSE) | | Apache 2.0 | +| 0b. | Documentation | [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | | Inline documentation of the code and a basic tutorial that explains how a user can use DAOsign Smart Contract developed in ink! for proof verification. | +| 0c. | Testing and Testing Guide | https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | | TODO | +| 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 delivered with this milestone. | +| 0e. | Article | https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | | Article that explains what was done as part of the grant. | +| 1. | Smart Contracts | https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | | DAOsign proofs stored on Polkadot Blockchain using Agreement Contract, EIP712/EIP2771 standard implementation on Ink! | + + +## General Notes +One of the major goals of the grant project by the w3f is to nurture development of innovative tech thats open source and easily reusable by anybody. + +In your Ink! contracts you used some code that doesn't seem to have any meaningful impact on the functionality. +e.g.: + +```pub fn validate_signed_proof_of_agreement(&self, data: SignedProofOfAgreement) -> bool { + assert!(data.proof_cid.len() == IPFS_CID_LENGTH, "Invalid proof CID"); + assert!(data.message.app == "daosign", "Invalid app name"); +``` + +Whats the reason to setup the contracts in this way? Are you trying to make sure that no other service uses the contracts you have deployed yourself? + +I would love to see those gatekeeping lines removed so others can use the code you wrote for the ink! contracts directly without modifying it or having to adapt their dApp towards these additional checks. + +I wonder why you added those in the first place. If somebody really wanted to they still could just construct their calls towards the contract in a way that it conforms with your additional logic for name checking. So I'm looking forward to your reply on this matter. + +## Article +I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. \ No newline at end of file From b05ccf11159c08bc10c5f2b88bf1a71d020f362b Mon Sep 17 00:00:00 2001 From: Piet <75956460+PieWol@users.noreply.github.com> Date: Fri, 23 Feb 2024 15:22:50 +0100 Subject: [PATCH 2/9] markdown --- evaluations/{DAOsign_m1_PieWol => DAOsign_m1_PieWol.md} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename evaluations/{DAOsign_m1_PieWol => DAOsign_m1_PieWol.md} (98%) diff --git a/evaluations/DAOsign_m1_PieWol b/evaluations/DAOsign_m1_PieWol.md similarity index 98% rename from evaluations/DAOsign_m1_PieWol rename to evaluations/DAOsign_m1_PieWol.md index d2c1dfcb5..9875f701e 100644 --- a/evaluations/DAOsign_m1_PieWol +++ b/evaluations/DAOsign_m1_PieWol.md @@ -21,7 +21,7 @@ ## General Notes One of the major goals of the grant project by the w3f is to nurture development of innovative tech thats open source and easily reusable by anybody. -In your Ink! contracts you used some code that doesn't seem to have any meaningful impact on the functionality. +In your Ink! contracts you used some code that doesn't seem to have any meaningful impact on the functionality. e.g.: ```pub fn validate_signed_proof_of_agreement(&self, data: SignedProofOfAgreement) -> bool { @@ -36,4 +36,4 @@ I would love to see those gatekeeping lines removed so others can use the code y I wonder why you added those in the first place. If somebody really wanted to they still could just construct their calls towards the contract in a way that it conforms with your additional logic for name checking. So I'm looking forward to your reply on this matter. ## Article -I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. \ No newline at end of file +I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. From 01a7e9f73db2aa0b00815e2f945910496d7bda3f Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Fri, 23 Feb 2024 16:07:41 +0100 Subject: [PATCH 3/9] add ink unit tests --- evaluations/DAOsign_m1_PieWol.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index 9875f701e..49f6d3897 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -37,3 +37,29 @@ I wonder why you added those in the first place. If somebody really wanted to th ## Article I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. + +## Testing +ink! unit tests are passing. +
+ink! unit tests +
+Well, you asked for it! + +```````` +running 6 tests +test daosign_app::tests::test_get_proof_of_authority ... ok +test daosign_app::tests::test_get_proof_of_agreement ... ok +test daosign_app::tests::test_get_proof_of_signature ... ok +test daosign_app::tests::test_store_proof_of_authority ... ok +test daosign_app::tests::test_store_proof_of_agreement ... ok +test daosign_app::tests::test_store_proof_of_signature ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Doc-tests daosign_app + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +`````` +
\ No newline at end of file From c9b293aaf0b94bee11bfebef0fd0ffe26aefb457 Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Fri, 23 Feb 2024 16:15:20 +0100 Subject: [PATCH 4/9] fix dropdowns --- evaluations/DAOsign_m1_PieWol.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index 49f6d3897..fe6a3c0c1 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -39,11 +39,30 @@ I wonder why you added those in the first place. If somebody really wanted to th I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. ## Testing -ink! unit tests are passing. +ink! unit tests are partly passing. The eip tests are not. + +
+ink! eip unit tests +
+ +```````` +Building [=======================> ] 139/140: daosign_eip712(test) +error[E0119]: conflicting implementations of trait `Debug` for type `daosign_eip712::DAOsignEIP712` +--> contracts/daosign_eip712/src/lib.rs:184:5 +| +184 | /// Contract Storage struct +| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `daosign_eip712::DAOsignEIP712` +185 | #[ink(storage)] +186 | #[derive(Debug)] +| ----- first implementation here +| += note: this error originates in the derive macro `::core::fmt::Debug` (in Nightly builds, run with -Z macro-backtrace for more info) +```````` +
+
ink! unit tests
-Well, you asked for it! ```````` running 6 tests @@ -62,4 +81,5 @@ running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s `````` -
\ No newline at end of file + + From d8e20db09bcb9b2ecc0eed7257653dfd420eaaa5 Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Mon, 26 Feb 2024 11:51:45 +0100 Subject: [PATCH 5/9] add docker test output --- evaluations/DAOsign_m1_PieWol.md | 39 ++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index fe6a3c0c1..460b3265b 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -8,14 +8,14 @@ -| Number | Deliverable | Accepted |Link | Evaluation Notes | -|--------|---------------------------| ------------- |------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0a. | License | [LICENSE](https://github.com/DAOsign/polkadot-smart-contracts/blob/main/LICENSE) |
  • [x]
| Apache 2.0 | -| 0b. | Documentation | [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) |
  • []
| Inline documentation of the code and a basic tutorial that explains how a user can use DAOsign Smart Contract developed in ink! for proof verification. | -| 0c. | Testing and Testing Guide | https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing |
  • []
| TODO | -| 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 delivered with this milestone. | -| 0e. | Article | https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 |
  • []
| Article that explains what was done as part of the grant. | -| 1. | Smart Contracts | https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts |
  • []
| DAOsign proofs stored on Polkadot Blockchain using Agreement Contract, EIP712/EIP2771 standard implementation on Ink! | +| Number | Deliverable | Accepted |Link | Evaluation Notes | +|--------|---------------------------| ----- |------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0a. | License |
  • [x]
| [LICENSE](https://github.com/DAOsign/polkadot-smart-contracts/blob/main/LICENSE) | Apache 2.0 | +| 0b. | Documentation |
  • [x]
| [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | Inline documentation of the code and a basic tutorial that explains how a user can use DAOsign Smart Contract developed in ink! for proof verification. | +| 0c. | Testing and Testing Guide |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | TODO | +| 0d. | Docker |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | +| 0e. | Article |
  • []
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | Article that explains what was done as part of the grant. | +| 1. | Smart Contracts |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | DAOsign proofs stored on Polkadot Blockchain using Agreement Contract, EIP712/EIP2771 standard implementation on Ink! // Check EIP issues | ## General Notes @@ -64,7 +64,7 @@ error[E0119]: conflicting implementations of trait `Debug` for type `daosign_eip ink! unit tests
-```````` +``` running 6 tests test daosign_app::tests::test_get_proof_of_authority ... ok test daosign_app::tests::test_get_proof_of_agreement ... ok @@ -80,6 +80,25 @@ test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s -`````` +``` + +
+docker test output +
+ +``` +> daosign-proofs@1.0.0 test +> npx mocha --config .mocharc.json + + + + DAOsignApp Tests + Lifecycle + ✔ #1 (225ms) + + + 1 passing (3s) +``` +
From 4399f1d1e34fb4629b836703fae57e567392150a Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Mon, 26 Feb 2024 13:19:00 +0100 Subject: [PATCH 6/9] update testing --- evaluations/DAOsign_m1_PieWol.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index 460b3265b..0767ea455 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -12,7 +12,7 @@ |--------|---------------------------| ----- |------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | 0a. | License |
  • [x]
| [LICENSE](https://github.com/DAOsign/polkadot-smart-contracts/blob/main/LICENSE) | Apache 2.0 | | 0b. | Documentation |
  • [x]
| [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | Inline documentation of the code and a basic tutorial that explains how a user can use DAOsign Smart Contract developed in ink! for proof verification. | -| 0c. | Testing and Testing Guide |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | TODO | +| 0c. | Testing and Testing Guide |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | TODO | | 0d. | Docker |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | | 0e. | Article |
  • []
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | Article that explains what was done as part of the grant. | | 1. | Smart Contracts |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | DAOsign proofs stored on Polkadot Blockchain using Agreement Contract, EIP712/EIP2771 standard implementation on Ink! // Check EIP issues | @@ -39,24 +39,30 @@ I wonder why you added those in the first place. If somebody really wanted to th I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. ## Testing -ink! unit tests are partly passing. The eip tests are not. +ink! unit tests are passing.
ink! eip unit tests
```````` -Building [=======================> ] 139/140: daosign_eip712(test) -error[E0119]: conflicting implementations of trait `Debug` for type `daosign_eip712::DAOsignEIP712` ---> contracts/daosign_eip712/src/lib.rs:184:5 -| -184 | /// Contract Storage struct -| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `daosign_eip712::DAOsignEIP712` -185 | #[ink(storage)] -186 | #[derive(Debug)] -| ----- first implementation here -| -= note: this error originates in the derive macro `::core::fmt::Debug` (in Nightly builds, run with -Z macro-backtrace for more info) +running 8 tests +test daosign_eip712::tests::constructor ... ok +test daosign_eip712::tests::hash_proof_of_signature ... ok +test daosign_eip712::tests::hash_proof_of_authority ... ok +test daosign_eip712::tests::hash_proof_of_agreement ... ok +test daosign_eip712::tests::recover_proof_of_signature ... ok +test daosign_eip712::tests::recover_proof_of_agreement ... ok +test daosign_eip712::tests::recover_proof_of_authority ... ok +test daosign_eip712::tests::recover ... ok + +test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests daosign_eip712 + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ````````
From 64f09590ce6661e1706c2b853e3994d4e56f4441 Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Mon, 26 Feb 2024 13:20:56 +0100 Subject: [PATCH 7/9] fix formatting --- evaluations/DAOsign_m1_PieWol.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index 0767ea455..9e0258da3 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -24,9 +24,11 @@ One of the major goals of the grant project by the w3f is to nurture development In your Ink! contracts you used some code that doesn't seem to have any meaningful impact on the functionality. e.g.: -```pub fn validate_signed_proof_of_agreement(&self, data: SignedProofOfAgreement) -> bool { +``` +pub fn validate_signed_proof_of_agreement(&self, data: SignedProofOfAgreement) -> bool { assert!(data.proof_cid.len() == IPFS_CID_LENGTH, "Invalid proof CID"); assert!(data.message.app == "daosign", "Invalid app name"); + } ``` Whats the reason to setup the contracts in this way? Are you trying to make sure that no other service uses the contracts you have deployed yourself? From b50a20b73476247fa439fcb888f068b9d4e3b01b Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Mon, 26 Feb 2024 13:37:14 +0100 Subject: [PATCH 8/9] fix notes --- evaluations/DAOsign_m1_PieWol.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index 9e0258da3..f670fa3c2 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -11,11 +11,11 @@ | Number | Deliverable | Accepted |Link | Evaluation Notes | |--------|---------------------------| ----- |------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | 0a. | License |
  • [x]
| [LICENSE](https://github.com/DAOsign/polkadot-smart-contracts/blob/main/LICENSE) | Apache 2.0 | -| 0b. | Documentation |
  • [x]
| [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | Inline documentation of the code and a basic tutorial that explains how a user can use DAOsign Smart Contract developed in ink! for proof verification. | -| 0c. | Testing and Testing Guide |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | TODO | -| 0d. | Docker |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | -| 0e. | Article |
  • []
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | Article that explains what was done as part of the grant. | -| 1. | Smart Contracts |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | DAOsign proofs stored on Polkadot Blockchain using Agreement Contract, EIP712/EIP2771 standard implementation on Ink! // Check EIP issues | +| 0b. | Documentation |
  • [x]
| [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | good | +| 0c. | Testing and Testing Guide |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | works | +| 0d. | Docker |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | works | +| 0e. | Article |
  • []
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | Article could be more conceptually explanatory. | +| 1. | Smart Contracts |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | Why the extra checks for app name? | ## General Notes From 38c8aaa2e33136891264c8b687992894378f4c8c Mon Sep 17 00:00:00 2001 From: Piet Wolff Date: Fri, 12 Apr 2024 12:14:56 +0200 Subject: [PATCH 9/9] update eval --- evaluations/DAOsign_m1_PieWol.md | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/evaluations/DAOsign_m1_PieWol.md b/evaluations/DAOsign_m1_PieWol.md index f670fa3c2..58da3927c 100644 --- a/evaluations/DAOsign_m1_PieWol.md +++ b/evaluations/DAOsign_m1_PieWol.md @@ -1,7 +1,7 @@ # Evaluation -- **Status:** In Progress +- **Status:** accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DAOsign.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by PieWol @@ -14,31 +14,14 @@ | 0b. | Documentation |
  • [x]
| [Autogenerated documentation](https://daosign.github.io/polkadot-smart-contracts/), [Readme](https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#overview) | good | | 0c. | Testing and Testing Guide |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#testing | works | | 0d. | Docker |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts?tab=readme-ov-file#with-docker | works | -| 0e. | Article |
  • []
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | Article could be more conceptually explanatory. | -| 1. | Smart Contracts |
  • []
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | Why the extra checks for app name? | +| 0e. | Article |
  • [x]
| https://medium.com/@daosign/daosign-smart-signature-protocol-is-now-secured-with-polkadot-smart-contracts-387f3f3d9d17 | ok | +| 1. | Smart Contracts |
  • [x]
| https://github.com/DAOsign/polkadot-smart-contracts/tree/main/contracts | ok | ## General Notes -One of the major goals of the grant project by the w3f is to nurture development of innovative tech thats open source and easily reusable by anybody. +Thanks for introducing the requested changes for more reusability of your smart contracts. -In your Ink! contracts you used some code that doesn't seem to have any meaningful impact on the functionality. -e.g.: -``` -pub fn validate_signed_proof_of_agreement(&self, data: SignedProofOfAgreement) -> bool { - assert!(data.proof_cid.len() == IPFS_CID_LENGTH, "Invalid proof CID"); - assert!(data.message.app == "daosign", "Invalid app name"); - } -``` - -Whats the reason to setup the contracts in this way? Are you trying to make sure that no other service uses the contracts you have deployed yourself? - -I would love to see those gatekeeping lines removed so others can use the code you wrote for the ink! contracts directly without modifying it or having to adapt their dApp towards these additional checks. - -I wonder why you added those in the first place. If somebody really wanted to they still could just construct their calls towards the contract in a way that it conforms with your additional logic for name checking. So I'm looking forward to your reply on this matter. - -## Article -I think your article currently has a very good introduction. You mention how the contract is mainly storing proofs but it's not clear to the reader how this enables the product you are creating as a whole. I see that you linked the github for technical details but I think main goal of the article is to explain to readers how you achieved your goal and which component plays what role in the context of the whole product. ## Testing ink! unit tests are passing.