From 94c6b7381c0f1e604117387e2b55e5b9c8000325 Mon Sep 17 00:00:00 2001 From: Walter Strametz <57393847+wstrametz@users.noreply.github.com> Date: Sun, 30 May 2021 15:51:30 +0200 Subject: [PATCH 001/253] Create FIAT-on-off-ramp.md --- deliveries/FIAT-on-off-ramp.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 deliveries/FIAT-on-off-ramp.md diff --git a/deliveries/FIAT-on-off-ramp.md b/deliveries/FIAT-on-off-ramp.md new file mode 100644 index 000000000..95fce8ef2 --- /dev/null +++ b/deliveries/FIAT-on-off-ramp.md @@ -0,0 +1,29 @@ +## Milestone Delivery + +* Name: FIAT on-off-ramp [FIAT-on-off-ramp.md](https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md) +* Milestone 1 of 3 + + +### Milestone 1 Implement FIAT Rest interface + +* Link to [github repo](https://github.com/element36-io/ebics-java-service/), commit hash: 58807c92d4132ef87378dba88fb193c90c13a374 +* Link to the initial [pull request 348](https://github.com/w3f/Open-Grants-Program/pull/348) + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------| +| 0a. | License | [Licence badge](https://github.com/element36-io/ebics-java-service) and [file](https://github.com/element36-io/ebics-java-service/blob/main/LICENCE) |Apache 2.0 | +| 0b. | Documentation | [Source](https://github.com/element36-io/ebics-java-service/tree/main/src/main/java/io/element36/cash36); [documentation](https://github.com/element36-io/ebics-java-service/blob/main/README.md#setup) | See inline documentation of the code and a basic tutorial that explains how a user can link the Open Banking Client to an Ebis/ISO20022 compatible bank account. After Ebics setup with the bank, you can query balance, to read new transactions and to send test and real transactions that will show how the new functionality works. Tested with Hypi Lenzburg, Switzerland. If you need a demo with the real backend, do not hesitate to contact us. | +| 0c. | Testing Guide | [TEST.md](https://github.com/element36-io/ebics-java-service/blob/main/TEST.md) | Core functions are covered by unit tests to ensure functionality and robustness. Tests can be run in the docker container. | +| 1. | Module: Open Banking Client | [Start Image with Swagger](https://github.com/element36-io/ebics-java-service#start-the-service--take-a-look-at-the-api); [source of controller](https://github.com/element36-io/ebics-java-service/blob/main/src/main/java/io/element36/cash36/ebics/controller/EbicsController.java) | We used different names for functions. The specified vs. implemented names map as follows: `getAccountBalance():Decimal` ==> POST `/unpeg`, `getIncomingOrders():IncomingPayments` ==> GET `/bankstatements`, `createOrder (OutgoingPayment)` ==> POST `/unpeg` and `simulatePayment(Payment)` ==> POST `/simulate`. Addional APIs: `create`: send funds from any of linked accounts, GET `/paymentstatus`: status of a payment order. | +| 2. | Docker | [Dockerhub](https://hub.docker.com/r/e36io/ebics-service); [Howto link image with bank account](https://github.com/element36-io/ebics-java-service/blob/main/HOWTO.md) | Dockerfile for the Open Banking Client on Docker Hub, plus add documentation on how to link the image with a bank account. | + +### Remark + +Please note that the milestone 1 does not contain substrate or rust code, as indicated in the grant. + +### Coding guidelines + +We followed typical [coding style](https://www.cs.cornell.edu/courses/JavaAndDS/JavaStyle.html#NameVariable) +for java and best practices for [application structure](https://medium.com/the-resonant-web/spring-boot-2-0-project-structure-and-best-practices-part-2-7137bdcba7d3) (folders, package names) for [Spring Boot](https://spring.io/projects/spring-boot). + + From 1a99ffe8705a2f67753e0bfed9c6ee7574a4bd60 Mon Sep 17 00:00:00 2001 From: Walter Strametz <57393847+wstrametz@users.noreply.github.com> Date: Sun, 30 May 2021 16:06:33 +0200 Subject: [PATCH 002/253] Update FIAT-on-off-ramp.md --- deliveries/FIAT-on-off-ramp.md | 1 + 1 file changed, 1 insertion(+) diff --git a/deliveries/FIAT-on-off-ramp.md b/deliveries/FIAT-on-off-ramp.md index 95fce8ef2..d0e904735 100644 --- a/deliveries/FIAT-on-off-ramp.md +++ b/deliveries/FIAT-on-off-ramp.md @@ -2,6 +2,7 @@ * Name: FIAT on-off-ramp [FIAT-on-off-ramp.md](https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md) * Milestone 1 of 3 +* Link to the initial [pull request 348](https://github.com/w3f/Open-Grants-Program/pull/348) ### Milestone 1 Implement FIAT Rest interface From dafd0d0f7dde10054b3bca7013d03cbdac129c16 Mon Sep 17 00:00:00 2001 From: Walter Strametz <57393847+wstrametz@users.noreply.github.com> Date: Mon, 31 May 2021 17:30:54 +0200 Subject: [PATCH 003/253] Rename FIAT-on-off-ramp.md to FIAT-on-off-ramp-milestone-1.md --- .../{FIAT-on-off-ramp.md => FIAT-on-off-ramp-milestone-1.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename deliveries/{FIAT-on-off-ramp.md => FIAT-on-off-ramp-milestone-1.md} (100%) diff --git a/deliveries/FIAT-on-off-ramp.md b/deliveries/FIAT-on-off-ramp-milestone-1.md similarity index 100% rename from deliveries/FIAT-on-off-ramp.md rename to deliveries/FIAT-on-off-ramp-milestone-1.md From 118e7916bd094b8691ffab861a9788904e1ce56a Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Sun, 20 Mar 2022 21:33:59 +0200 Subject: [PATCH 004/253] Create FIAT-on-off-ramp-milestone-2.md --- deliveries/FIAT-on-off-ramp-milestone-2.md | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 deliveries/FIAT-on-off-ramp-milestone-2.md diff --git a/deliveries/FIAT-on-off-ramp-milestone-2.md b/deliveries/FIAT-on-off-ramp-milestone-2.md new file mode 100644 index 000000000..ec7ed83bc --- /dev/null +++ b/deliveries/FIAT-on-off-ramp-milestone-2.md @@ -0,0 +1,38 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/milestone-deliverables-guidelines.md).** + +* **Application Document:** FIAT on-off-ramp [FIAT-on-off-ramp.md](https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md) +* **Milestone Number:** 2 out of 3 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +### Milestone 2 Implement Substrate based chain + +* **Estimated Duration:** 6 months +* **FTE:** 2 +* **Costs:** 20.000 USD + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| 0a. | License | Apache 2.0 | +| 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also provided | +| 0c. | Testing Guide | Core functions of the basic token and the off chain worker is fully covered by unit tests to ensure functionality and robustness. Instructions to run the tests are provided. | +| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that serves the following purposes: a) polls the bank account for bank statements, for incoming transactions, mints if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, transfers otherwise | +| 2. | Pallet: FIAT stable coin | We will create a basic token with init, mint, burn, transfer, getBalance(address) and getTotalBalance. Burn and transfer will emit events and errors. At this point for simplicity, we will not use [Currency](https://substrate.dev/recipes/currency.html) trait. | +| 3. | Substrate chain | Use described modules of our custom chain will provide a token, which synchronizes with a fully pegging bank account as described throughout the document. | +| 4. | Unit Tests | We will add unit tests to cover mint, burn, transfer, getBalance, getTotalBalance for the basic token. We will add unit tests to the off chain worker to test the local datastore with the map of IBAN to addresses and vice-versa, plus mint and burn. | +| 5. | Docker-Compose Substrate node | We will provide a docker-compose file to demonstrate the full functionality of our chain, the ocw, including a stub for the FIAT Rest Interface developed in Milestone 1. | + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 42a1bef628a0398e09b73f648968707a2c70bae9 Mon Sep 17 00:00:00 2001 From: dastansam Date: Mon, 21 Mar 2022 01:14:38 +0200 Subject: [PATCH 005/253] Update delivery --- deliveries/FIAT-on-off-ramp-milestone-2.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-2.md b/deliveries/FIAT-on-off-ramp-milestone-2.md index ec7ed83bc..668797e77 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-2.md +++ b/deliveries/FIAT-on-off-ramp-milestone-2.md @@ -28,11 +28,16 @@ | 0a. | License | Apache 2.0 | | 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also provided | | 0c. | Testing Guide | Core functions of the basic token and the off chain worker is fully covered by unit tests to ensure functionality and robustness. Instructions to run the tests are provided. | -| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that serves the following purposes: a) polls the bank account for bank statements, for incoming transactions, mints if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, transfers otherwise | -| 2. | Pallet: FIAT stable coin | We will create a basic token with init, mint, burn, transfer, getBalance(address) and getTotalBalance. Burn and transfer will emit events and errors. At this point for simplicity, we will not use [Currency](https://substrate.dev/recipes/currency.html) trait. | -| 3. | Substrate chain | Use described modules of our custom chain will provide a token, which synchronizes with a fully pegging bank account as described throughout the document. | -| 4. | Unit Tests | We will add unit tests to cover mint, burn, transfer, getBalance, getTotalBalance for the basic token. We will add unit tests to the off chain worker to test the local datastore with the map of IBAN to addresses and vice-versa, plus mint and burn. | -| 5. | Docker-Compose Substrate node | We will provide a docker-compose file to demonstrate the full functionality of our chain, the ocw, including a stub for the FIAT Rest Interface developed in Milestone 1. | +| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that performs two main activities: a) polls the bank account for bank statements. Bank statement contains IBAN number, and list of incoming and outgoing transactions. For incoming transactions, pallet mints `amount` of tokens if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, performs simple transfer otherwise. b) stores and processes burn requests. Burn request is created when user wants to initiate transfer or burn action on their bank account via on-chain extrinsic with their registered account. Burn requests are stored only until they are processed by the offchain worker. They will be removed even if `unpegging`/`burning` action fails. More explanation of offchain worker is provided in README file of the repository | +| 2. | Balances Pallet: FIAT stable coin | Balances pallet is loosely coupled into our pallet that makes it possible to have the most basic token actions: mint, burn, transfer, etc. Our token has 10 decimals and has a name pEURO (pegged EURO). Total supply for testing purposes is 40000 pEUROs. | +| 3. | Substrate chain | Altogether, we have a solo Substrate chain that connects to the banking APIs via offchain worker and makes sure to synchronize bank accounts' state with on-chain state. | +| 4. | Unit Tests | Unit tests cover the most essential features of our offchain worker pallet. Every extrinsic, offchain worker behaviour and parsing of raw string into pallet types are thoroughly tested. | +| 5. | Docker-Compose Substrate node | A docker-compose file is provided to spawn the banking interface API developed in the Milestone 1. | **Additional Information** > Any further comments on the milestone that you would like to share with us. + +There have been some changes from the initial grant proposal. They are: + +- `Minting`: minting process is not proactive, i.e it's not possible to call an extrinsic to mint new stablecoins. Stablecoins are minted only when offchain worker detects an incoming transaction from an unknown IBAN address, i.e from an IBAN address is not mapped to any on-chain account address. +- `Burning`: unlike minting, burning can be achieved either via extrinsic or banking API. However, `burn` extrinsic is not an instant call, pallet will first register the burn request from the user and passes it to offchain worker to process the burn request. Offchain worker then sends the `unpeg` request to the banking API. And once the request suceeds, it will be reflected in the statement as an outgoing transaction, which in turn should be picked up by offchain worker again and processed accordingly. From bf6ab6de082c45525593e746bea8f43898d353aa Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 21 Mar 2022 02:55:54 +0200 Subject: [PATCH 006/253] Update FIAT-on-off-ramp-milestone-2.md --- deliveries/FIAT-on-off-ramp-milestone-2.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-2.md b/deliveries/FIAT-on-off-ramp-milestone-2.md index 668797e77..ea99c4512 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-2.md +++ b/deliveries/FIAT-on-off-ramp-milestone-2.md @@ -12,6 +12,8 @@ **Context** (optional) > Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. +In this milestone we worked on connecting our EBICS service developed in the first milestone with a Substrate chain. Our Substrate chain utilises offchain workers to synchronize the state of connected bank accounts with their on-chain state. Thus it creates a token that represents is pegged by a bank account currency. Currently, our chain supports EURO currency and our token is called pEURO, or simply *pegged euro*. With the use of our chain users can easily on ramp and off ramp from web3. For example, just with signing and submitting an extrinsic call, user can easily transfer their EUROs from their bank account to another bank account. And respectively, can mint *pEUROs* by simply depositing to their bank account. + **Deliverables** > Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. > @@ -23,12 +25,15 @@ * **FTE:** 2 * **Costs:** 20.000 USD +* Link to [github repo](https://github.com/element36-io/ocw-ebics/tree/milestone-2) +* Link to the initial [pull request 348](https://github.com/w3f/Open-Grants-Program/pull/348) + | Number | Deliverable | Specification | | -----: | ----------- | ------------- | | 0a. | License | Apache 2.0 | -| 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also provided | +| 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also provided (Main README file and INSTRUCTIONS.md)| | 0c. | Testing Guide | Core functions of the basic token and the off chain worker is fully covered by unit tests to ensure functionality and robustness. Instructions to run the tests are provided. | -| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that performs two main activities: a) polls the bank account for bank statements. Bank statement contains IBAN number, and list of incoming and outgoing transactions. For incoming transactions, pallet mints `amount` of tokens if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, performs simple transfer otherwise. b) stores and processes burn requests. Burn request is created when user wants to initiate transfer or burn action on their bank account via on-chain extrinsic with their registered account. Burn requests are stored only until they are processed by the offchain worker. They will be removed even if `unpegging`/`burning` action fails. More explanation of offchain worker is provided in README file of the repository | +| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that performs two main activities: a) polls the bank account for bank statements. Bank statement contains IBAN number, and list of incoming and outgoing transactions. For incoming transactions, pallet mints `amount` of tokens if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, performs simple transfer otherwise. b) stores and processes burn requests. Burn request is created when user wants to initiate transfer or burn action on their bank account via on-chain extrinsic with their registered account. Burn requests are stored until they are processed by the offchain worker and removed after that. They will be removed even if `unpegging`/`burning` action fails. More explanation of offchain worker is provided in README file of the repository | | 2. | Balances Pallet: FIAT stable coin | Balances pallet is loosely coupled into our pallet that makes it possible to have the most basic token actions: mint, burn, transfer, etc. Our token has 10 decimals and has a name pEURO (pegged EURO). Total supply for testing purposes is 40000 pEUROs. | | 3. | Substrate chain | Altogether, we have a solo Substrate chain that connects to the banking APIs via offchain worker and makes sure to synchronize bank accounts' state with on-chain state. | | 4. | Unit Tests | Unit tests cover the most essential features of our offchain worker pallet. Every extrinsic, offchain worker behaviour and parsing of raw string into pallet types are thoroughly tested. | @@ -41,3 +46,5 @@ There have been some changes from the initial grant proposal. They are: - `Minting`: minting process is not proactive, i.e it's not possible to call an extrinsic to mint new stablecoins. Stablecoins are minted only when offchain worker detects an incoming transaction from an unknown IBAN address, i.e from an IBAN address is not mapped to any on-chain account address. - `Burning`: unlike minting, burning can be achieved either via extrinsic or banking API. However, `burn` extrinsic is not an instant call, pallet will first register the burn request from the user and passes it to offchain worker to process the burn request. Offchain worker then sends the `unpeg` request to the banking API. And once the request suceeds, it will be reflected in the statement as an outgoing transaction, which in turn should be picked up by offchain worker again and processed accordingly. +- Currently, it is not possible to run backend service with machines on Apple M1 Silicone chips. Therefore, for testing purposes you would need to use our hosted version of the backend. +- There is an offchain worker keypair inserted into the keystore so that offchain worker can sign and submit transactions. Since it needs funds for transactions, it comes endowed with 10k pEURO balance. From e816075d30e685829f60bf0566b424ee2f262c70 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 21 Mar 2022 02:59:42 +0200 Subject: [PATCH 007/253] Update FIAT-on-off-ramp-milestone-2.md --- deliveries/FIAT-on-off-ramp-milestone-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-2.md b/deliveries/FIAT-on-off-ramp-milestone-2.md index ea99c4512..c7f2e6a9a 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-2.md +++ b/deliveries/FIAT-on-off-ramp-milestone-2.md @@ -12,7 +12,7 @@ **Context** (optional) > Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. -In this milestone we worked on connecting our EBICS service developed in the first milestone with a Substrate chain. Our Substrate chain utilises offchain workers to synchronize the state of connected bank accounts with their on-chain state. Thus it creates a token that represents is pegged by a bank account currency. Currently, our chain supports EURO currency and our token is called pEURO, or simply *pegged euro*. With the use of our chain users can easily on ramp and off ramp from web3. For example, just with signing and submitting an extrinsic call, user can easily transfer their EUROs from their bank account to another bank account. And respectively, can mint *pEUROs* by simply depositing to their bank account. +In this milestone we worked on connecting our EBICS service developed in the first milestone with a Substrate chain. Our Substrate chain utilises offchain workers to synchronize the state of connected bank accounts with their on-chain state. Thus it creates a token that is pegged by a bank account currency. Currently, our chain supports EURO and our token is called pEURO, or simply *pegged euro*. With the use of our chain users can easily on and off ramp to web3. For example, just with signing and submitting an extrinsic call, user can easily transfer their EUROs from their bank account to another bank account. And respectively, can mint *pEUROs* by simply depositing to their bank account. **Deliverables** > Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. From 1fd8e0dba51bd474cabec224d6235dea92aad694 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 21 Mar 2022 03:05:51 +0200 Subject: [PATCH 008/253] Update FIAT-on-off-ramp-milestone-2.md --- deliveries/FIAT-on-off-ramp-milestone-2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-2.md b/deliveries/FIAT-on-off-ramp-milestone-2.md index c7f2e6a9a..243579beb 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-2.md +++ b/deliveries/FIAT-on-off-ramp-milestone-2.md @@ -31,12 +31,12 @@ In this milestone we worked on connecting our EBICS service developed in the fir | Number | Deliverable | Specification | | -----: | ----------- | ------------- | | 0a. | License | Apache 2.0 | -| 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also provided (Main README file and INSTRUCTIONS.md)| +| 0b. | Documentation | Inline documentation is provided. Documentation on how to build, test and launch Substrate chain and a separate instruction on testing minting, burning is also [provided](https://github.com/element36-io/ocw-ebics/blob/milestone-2/INSTRUCTIONS.md)| | 0c. | Testing Guide | Core functions of the basic token and the off chain worker is fully covered by unit tests to ensure functionality and robustness. Instructions to run the tests are provided. | -| 1. | Off chain worker pallet: Event Processing | An offchain worker pallet is implemented that performs two main activities: a) polls the bank account for bank statements. Bank statement contains IBAN number, and list of incoming and outgoing transactions. For incoming transactions, pallet mints `amount` of tokens if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, performs simple transfer otherwise. b) stores and processes burn requests. Burn request is created when user wants to initiate transfer or burn action on their bank account via on-chain extrinsic with their registered account. Burn requests are stored until they are processed by the offchain worker and removed after that. They will be removed even if `unpegging`/`burning` action fails. More explanation of offchain worker is provided in README file of the repository | +| 1. | Off chain worker pallet: Event Processing | An [offchain worker pallet](https://github.com/element36-io/ocw-ebics/blob/milestone-2/pallets/fiat-ramps/src/lib.rs) is implemented that performs two main activities: a) polls the bank account for bank statements. Bank statement contains IBAN number, and list of incoming and outgoing transactions. For incoming transactions, pallet mints `amount` of tokens if `source` IBAN of the transaction is not registered on chain, transfers from `source` if it is registered. For outgoing transactions, burns if `destination` IBAN is not registered on chain, performs simple transfer otherwise. b) stores and processes burn requests. Burn request is created when user wants to initiate transfer or burn action on their bank account via on-chain extrinsic with their registered account. Burn requests are stored until they are processed by the offchain worker and removed after that. They will be removed even if `unpegging`/`burning` action fails. More explanation of offchain worker is provided in README file of the repository | | 2. | Balances Pallet: FIAT stable coin | Balances pallet is loosely coupled into our pallet that makes it possible to have the most basic token actions: mint, burn, transfer, etc. Our token has 10 decimals and has a name pEURO (pegged EURO). Total supply for testing purposes is 40000 pEUROs. | | 3. | Substrate chain | Altogether, we have a solo Substrate chain that connects to the banking APIs via offchain worker and makes sure to synchronize bank accounts' state with on-chain state. | -| 4. | Unit Tests | Unit tests cover the most essential features of our offchain worker pallet. Every extrinsic, offchain worker behaviour and parsing of raw string into pallet types are thoroughly tested. | +| 4. | Unit Tests | Unit tests cover the most essential features of our offchain worker pallet. Every extrinsic, offchain worker behaviour and parsing of raw string into pallet types are thoroughly [tested](https://github.com/element36-io/ocw-ebics/blob/milestone-2/pallets/fiat-ramps/src/tests.rs)| | 5. | Docker-Compose Substrate node | A docker-compose file is provided to spawn the banking interface API developed in the Milestone 1. | **Additional Information** From 4ef7804cf0f87da7aef888c1558508db7ee29501 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Mon, 4 Jul 2022 11:07:55 +0530 Subject: [PATCH 009/253] add to template --- .../project_aurras_mvp_phase_2_milestone-1.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deliveries/project_aurras_mvp_phase_2_milestone-1.md diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-1.md b/deliveries/project_aurras_mvp_phase_2_milestone-1.md new file mode 100644 index 000000000..3afb13d7c --- /dev/null +++ b/deliveries/project_aurras_mvp_phase_2_milestone-1.md @@ -0,0 +1,22 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md +* **Milestone Number:** 1 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | ... |...| ...| +| 2. | ... |...| ...| + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From ab66091d1fc3d458d188a5750021f898ff0be99b Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Wed, 14 Dec 2022 13:48:14 +0100 Subject: [PATCH 010/253] Create silent-data-proposal.md --- silent-data-proposal.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 silent-data-proposal.md diff --git a/silent-data-proposal.md b/silent-data-proposal.md new file mode 100644 index 000000000..6f08ce563 --- /dev/null +++ b/silent-data-proposal.md @@ -0,0 +1,23 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_silentdata.md +* **Milestone Number:** 1 + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | ... |...| ...| +| 2. | ... |...| ...| + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 6034dccd57897cbd6c8025402a6f19ed8c23fb29 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:27:17 +0100 Subject: [PATCH 011/253] Rename silent-data-proposal.md to sielnt-data-milestone_1md --- silent-data-proposal.md => sielnt-data-milestone_1md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename silent-data-proposal.md => sielnt-data-milestone_1md (100%) diff --git a/silent-data-proposal.md b/sielnt-data-milestone_1md similarity index 100% rename from silent-data-proposal.md rename to sielnt-data-milestone_1md From 5a832ac8ef885fbba4dd8c4e66f4e8717fdacb4a Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Fri, 20 Jan 2023 15:13:39 +0530 Subject: [PATCH 012/253] update application --- .../project_aurras_mvp_phase_2_milestone-1.md | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-1.md b/deliveries/project_aurras_mvp_phase_2_milestone-1.md index 3afb13d7c..0f289c185 100644 --- a/deliveries/project_aurras_mvp_phase_2_milestone-1.md +++ b/deliveries/project_aurras_mvp_phase_2_milestone-1.md @@ -5,18 +5,20 @@ * **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md * **Milestone Number:** 1 -**Context** (optional) -> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. - **Deliverables** -> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. -> -> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 1. | ... |...| ...| -| 2. | ... |...| ...| - -**Additional Information** -> Any further comments on the milestone that you would like to share with us. +| 0a. | License | | | +| 0b. | Documentation | | | +| 0c. | Testing Guide | | | +| 1a. | Workflow Composer: Rust OpenWhisk Client Library | https://github.com/HugoByte/openwhisk-client-rust | | +| 1b. | Workflow Composer: Composer | https://github.com/HugoByte/aurras/tree/next/workflow/composer | | +| 1c. | Workflow Composer: Pipe | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | | +| 1d. | Workflow Composer: structured YAML file | https://github.com/HugoByte/aurras/blob/next/workflow/examples/STRUCTURED_YAML.yaml | | +| 1e. | Workflow Composer: Concat Operator | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L362 | | +| 1f. | Workflow Composer: Map Operator | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L538 | | +| 2. | Predefined boiler plate | https://github.com/HugoByte/aurras/tree/next/workflow/boilerplate | | +| 3a. | Flow Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/flow.py | | +| 3b. | Task Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/task.py | | +| 3c. | Workflow Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/workflow.py | | From cee7a85567e9abc1cc83fe75e378211072958828 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Tue, 7 Feb 2023 02:52:22 +0530 Subject: [PATCH 013/253] add mandatory deliverables --- deliveries/project_aurras_mvp_phase_2_milestone-1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-1.md b/deliveries/project_aurras_mvp_phase_2_milestone-1.md index 0f289c185..ba366563b 100644 --- a/deliveries/project_aurras_mvp_phase_2_milestone-1.md +++ b/deliveries/project_aurras_mvp_phase_2_milestone-1.md @@ -9,9 +9,9 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License | | | -| 0b. | Documentation | | | -| 0c. | Testing Guide | | | +| 0a. | License | https://github.com/HugoByte/aurras/blob/master/LICENSE | | +| 0b. | Documentation | https://github.com/HugoByte/openwhisk-client-rust#usage
https://github.com/HugoByte/aurras/tree/next/workflow/composer#usage | | +| 0c. | Testing Guide | https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test | | | 1a. | Workflow Composer: Rust OpenWhisk Client Library | https://github.com/HugoByte/openwhisk-client-rust | | | 1b. | Workflow Composer: Composer | https://github.com/HugoByte/aurras/tree/next/workflow/composer | | | 1c. | Workflow Composer: Pipe | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | | From 870a8634dfaf7d6085ae06fac0192cf7081fed30 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Wed, 8 Feb 2023 21:59:27 +0530 Subject: [PATCH 014/253] add milestone 2 deliverables --- .../project_aurras_mvp_phase_2_milestone-2.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 deliveries/project_aurras_mvp_phase_2_milestone-2.md diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-2.md b/deliveries/project_aurras_mvp_phase_2_milestone-2.md new file mode 100644 index 000000000..2027611f8 --- /dev/null +++ b/deliveries/project_aurras_mvp_phase_2_milestone-2.md @@ -0,0 +1,17 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md +* **Milestone Number:** 2 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/HugoByte/aurras/blob/master/LICENSE | | +| 0b. | Documentation | https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | | +| 0c. | Testing Guide | https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | | +| 0d. | Docker File | https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | | +| 1a. | Workflow Composer: Flow Macro | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | | +| 1b. | staking and payout features for scs/substrate-api-client | https://github.com/scs/substrate-api-client/pull/294 | | \ No newline at end of file From fb44b089566c5013249c7246a7a86c4ebdce03a7 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Fri, 10 Feb 2023 23:56:44 +0530 Subject: [PATCH 015/253] remove m1 deliverables --- .../project_aurras_mvp_phase_2_milestone-1.md | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 deliveries/project_aurras_mvp_phase_2_milestone-1.md diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-1.md b/deliveries/project_aurras_mvp_phase_2_milestone-1.md deleted file mode 100644 index ba366563b..000000000 --- a/deliveries/project_aurras_mvp_phase_2_milestone-1.md +++ /dev/null @@ -1,24 +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/milestone-deliverables-guidelines.md).** - -* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md -* **Milestone Number:** 1 - -**Deliverables** - -| Number | Deliverable | Link | Notes | -| ------------- | ------------- | ------------- |------------- | -| 0a. | License | https://github.com/HugoByte/aurras/blob/master/LICENSE | | -| 0b. | Documentation | https://github.com/HugoByte/openwhisk-client-rust#usage
https://github.com/HugoByte/aurras/tree/next/workflow/composer#usage | | -| 0c. | Testing Guide | https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test | | -| 1a. | Workflow Composer: Rust OpenWhisk Client Library | https://github.com/HugoByte/openwhisk-client-rust | | -| 1b. | Workflow Composer: Composer | https://github.com/HugoByte/aurras/tree/next/workflow/composer | | -| 1c. | Workflow Composer: Pipe | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | | -| 1d. | Workflow Composer: structured YAML file | https://github.com/HugoByte/aurras/blob/next/workflow/examples/STRUCTURED_YAML.yaml | | -| 1e. | Workflow Composer: Concat Operator | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L362 | | -| 1f. | Workflow Composer: Map Operator | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L538 | | -| 2. | Predefined boiler plate | https://github.com/HugoByte/aurras/tree/next/workflow/boilerplate | | -| 3a. | Flow Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/flow.py | | -| 3b. | Task Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/task.py | | -| 3c. | Workflow Provider | https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/workflow.py | | From 6337eb3f0678e3e23b45f5c299d821af8b103a9c Mon Sep 17 00:00:00 2001 From: Everett Hildenbrandt Date: Wed, 22 Feb 2023 03:58:09 +0000 Subject: [PATCH 016/253] deliveries/rv_kmir-milestone_1: milestone document --- deliveries/rv_kmir-milestone_1.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 deliveries/rv_kmir-milestone_1.md diff --git a/deliveries/rv_kmir-milestone_1.md b/deliveries/rv_kmir-milestone_1.md new file mode 100644 index 000000000..6ccd27c1b --- /dev/null +++ b/deliveries/rv_kmir-milestone_1.md @@ -0,0 +1,26 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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:** In the case of a public [Grants Program](https://github.com/w3f/Grants-Program) application, please provide a link to the merged contract (the `.md` file in the [applications](https://github.com/w3f/Grants-Program/tree/master/applications) directory). In the case of a private application, please provide the name of the project. +* **Milestone Number:** e.g. 1 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | ... |...| ...| +| 2. | ... |...| ...| + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 816fbc79a6fe7def8c39e2dedf2d2fc757647edd Mon Sep 17 00:00:00 2001 From: yanliu18 Date: Fri, 24 Feb 2023 14:10:17 +1100 Subject: [PATCH 017/253] milestone 1 delivery submission application --- deliveries/rv_kmir-milestone_1.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/deliveries/rv_kmir-milestone_1.md b/deliveries/rv_kmir-milestone_1.md index 6ccd27c1b..594371336 100644 --- a/deliveries/rv_kmir-milestone_1.md +++ b/deliveries/rv_kmir-milestone_1.md @@ -1,26 +1,28 @@ # Milestone Delivery :mailbox: -> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. -> -> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. - **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:** In the case of a public [Grants Program](https://github.com/w3f/Grants-Program) application, please provide a link to the merged contract (the `.md` file in the [applications](https://github.com/w3f/Grants-Program/tree/master/applications) directory). In the case of a private application, please provide the name of the project. -* **Milestone Number:** e.g. 1 +* **Application Document:** https://github.com/runtimeverification/web3-grants-program/blob/rv-kmir-grant/applications/rv-kmir.md -**Context** (optional) -> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. +* **Milestone Number:** 1 **Deliverables** -> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. -> -> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 1. | ... |...| ...| -| 2. | ... |...| ...| +| **0a.** | License | [BSD-3](https://github.com/runtimeverification/mir-semantics/blob/master/LICENSE) | +| **0b.** | Documentation | [README](https://github.com/runtimeverification/mir-semantics/blob/master/README.md) | +| **0c.** | Testing and Testing Guide | [Makefile](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/Makefile), [README](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/README.md) | `miri` is replaced by `rustc`, the latter is more suitable. +| **0d.** | Docker | [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/master/Dockerfile) | +| 1. | MIR code snippets | `.mir` tests in [Parsing](https://github.com/runtimeverification/mir-semantics/tree/master/kmir/src/tests/integration/test-data/parsing), [Compiletest-ui](https://github.com/runtimeverification/mir-semantics-compiletest/tree/9251b00e38504a6f1279b0ca9f81b90b4964080d/ui) | +| 2. | Generate output from **miri** |`.stderr` and `.stdout` files in [Compiletest-ui](https://github.com/runtimeverification/mir-semantics-compiletest/tree/9251b00e38504a6f1279b0ca9f81b90b4964080d/ui) | `miri` is replaced by `rustc` +| 3. | **kmir** executable stub | [`kmir.py`](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/src/kmir/kmir.py) | **Additional Information** -> Any further comments on the milestone that you would like to share with us. + +- For item number 1, the initial goal was to write `.mir` test cases manually. However, we dicovered later that `rustc` provides a comprehensive test suits [`compiletest`](https://rustc-dev-guide.rust-lang.org/tests/compiletest.html), in particular the test cases in suite +`ui` best suits our purpose, of providing the best coverage of MIR syntax. + +- For item number 0c, 2, 3, `rustc` fits our purpose better than `miri`(who wraps on `rustc`) by emitting MIR file in each steps. + +- In the repo provided, we have implemented part of the MIR syntax which belongs to milestone 2. The **kmir** executable stub could be used to parse actual MIR programs. \ No newline at end of file From ea5314a6c767952c56cbd1d06816e93271d8cfc4 Mon Sep 17 00:00:00 2001 From: yanliu18 Date: Tue, 28 Feb 2023 13:43:47 +1100 Subject: [PATCH 018/253] update deliverable links to branch --- deliveries/rv_kmir-milestone_1.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deliveries/rv_kmir-milestone_1.md b/deliveries/rv_kmir-milestone_1.md index 594371336..74486ae14 100644 --- a/deliveries/rv_kmir-milestone_1.md +++ b/deliveries/rv_kmir-milestone_1.md @@ -11,18 +11,18 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | | **0a.** | License | [BSD-3](https://github.com/runtimeverification/mir-semantics/blob/master/LICENSE) | -| **0b.** | Documentation | [README](https://github.com/runtimeverification/mir-semantics/blob/master/README.md) | -| **0c.** | Testing and Testing Guide | [Makefile](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/Makefile), [README](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/README.md) | `miri` is replaced by `rustc`, the latter is more suitable. -| **0d.** | Docker | [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/master/Dockerfile) | -| 1. | MIR code snippets | `.mir` tests in [Parsing](https://github.com/runtimeverification/mir-semantics/tree/master/kmir/src/tests/integration/test-data/parsing), [Compiletest-ui](https://github.com/runtimeverification/mir-semantics-compiletest/tree/9251b00e38504a6f1279b0ca9f81b90b4964080d/ui) | +| **0b.** | Documentation | [README](https://github.com/runtimeverification/mir-semantics/blob/milestone1-delivery/README.md) | +| **0c.** | Testing and Testing Guide | [Makefile](https://github.com/runtimeverification/mir-semantics/blob/milestone1-delivery/kmir/Makefile), [README](https://github.com/runtimeverification/mir-semantics/blob/milestone1-delivery/kmir/README.md) | `miri` is replaced by `rustc`, the latter is more suitable. +| **0d.** | Docker | [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/milestone1-delivery/Dockerfile) | +| 1. | MIR code snippets | `.mir` tests in [Parsing](https://github.com/runtimeverification/mir-semantics/tree/milestone1-delivery/kmir/src/tests/integration/test-data/parsing), [Compiletest-ui](https://github.com/runtimeverification/mir-semantics-compiletest/tree/9251b00e38504a6f1279b0ca9f81b90b4964080d/ui) | | 2. | Generate output from **miri** |`.stderr` and `.stdout` files in [Compiletest-ui](https://github.com/runtimeverification/mir-semantics-compiletest/tree/9251b00e38504a6f1279b0ca9f81b90b4964080d/ui) | `miri` is replaced by `rustc` -| 3. | **kmir** executable stub | [`kmir.py`](https://github.com/runtimeverification/mir-semantics/blob/master/kmir/src/kmir/kmir.py) | +| 3. | **kmir** executable stub | [`kmir.py`](https://github.com/runtimeverification/mir-semantics/blob/milestone1-delivery/kmir/src/kmir/kmir.py) | **Additional Information** - For item number 1, the initial goal was to write `.mir` test cases manually. However, we dicovered later that `rustc` provides a comprehensive test suits [`compiletest`](https://rustc-dev-guide.rust-lang.org/tests/compiletest.html), in particular the test cases in suite `ui` best suits our purpose, of providing the best coverage of MIR syntax. -- For item number 0c, 2, 3, `rustc` fits our purpose better than `miri`(who wraps on `rustc`) by emitting MIR file in each steps. +- For item number 0c, 2, 3, `rustc` fits our purpose better than `miri` (`miri` is integrated in `rustc`) by emitting MIR file in each steps. - In the repo provided, we have implemented part of the MIR syntax which belongs to milestone 2. The **kmir** executable stub could be used to parse actual MIR programs. \ No newline at end of file From e2d4bda688f8c9e4165a594fc45c174bbb4925f2 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Wed, 5 Apr 2023 21:35:10 +0530 Subject: [PATCH 019/253] docs: add workflow testing util --- deliveries/project_aurras_mvp_phase_2_milestone-1.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-1.md b/deliveries/project_aurras_mvp_phase_2_milestone-1.md index ba366563b..080fb0936 100644 --- a/deliveries/project_aurras_mvp_phase_2_milestone-1.md +++ b/deliveries/project_aurras_mvp_phase_2_milestone-1.md @@ -11,7 +11,8 @@ | ------------- | ------------- | ------------- |------------- | | 0a. | License | https://github.com/HugoByte/aurras/blob/master/LICENSE | | | 0b. | Documentation | https://github.com/HugoByte/openwhisk-client-rust#usage
https://github.com/HugoByte/aurras/tree/next/workflow/composer#usage | | -| 0c. | Testing Guide | https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test | | +| 0c. | Testing Guide | https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test
+https://github.com/HugoByte/aurras/tree/next/workflow#testing | | | 1a. | Workflow Composer: Rust OpenWhisk Client Library | https://github.com/HugoByte/openwhisk-client-rust | | | 1b. | Workflow Composer: Composer | https://github.com/HugoByte/aurras/tree/next/workflow/composer | | | 1c. | Workflow Composer: Pipe | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | | From e5966917194dcdd35ed055983eeca17842090ac9 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Thu, 6 Apr 2023 16:27:31 +0200 Subject: [PATCH 020/253] Update sielnt-data-milestone_1md --- sielnt-data-milestone_1md | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/sielnt-data-milestone_1md b/sielnt-data-milestone_1md index 6f08ce563..848873c95 100644 --- a/sielnt-data-milestone_1md +++ b/sielnt-data-milestone_1md @@ -1,23 +1,29 @@ # Milestone Delivery :mailbox: -> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. -> -> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. +**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).** -**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/milestone-deliverables-guidelines.md).** - -* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_silentdata.md +* **Application Document:** Silent Data Polkadot Integration * **Milestone Number:** 1 +**Context** + +Silent Data is a platform for proving properties of private off-chain data in blockchain smart contract applications. This milestone extends Silent Data to support Substrate based blockchains, with Polkadot being the main focus. The Silent Data web application now includes an integration with the polkadot{.js} wallet. Support for Sr25519 and Secp256k1 signatures has been added to allow signature verification in either ink! smart contracts or Substrate pallets. + +In order to improve the developer experience a Node.js library for interacting with the Silent Data API has been developed. We have also created both an example ink! smart contract and Substrate pallet to demonstrate how Silent Data can be used to securely provide off-chain data to blockchain applications. + **Deliverables** -> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. -> -> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 1. | ... |...| ...| -| 2. | ... |...| ...| +| 0a. | License |[Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE)%7C ...| +| 0b. | Documentation |[Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
[Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md)%7C ...| +| 0c. | Testing Guide |[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing)%7C ...| +| 0d. | Docker |[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
[Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node)%7C ...| +| 0e. | Article |...| ...| +| 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node)%7C ...| +| 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot)%7C ...| +| 3. | Extension |[Secure enclave](https://github.com/appliedblockchain/silentdata-defi-core/compare/v0.4.0...v0.5.0-rc1)
[Web application](https://github.com/appliedblockchain/silentdata-defi-app/compare/v0.4.0...v0.5.0-rc1)%7C Both private repositories | **Additional Information** -> Any further comments on the milestone that you would like to share with us. + +The reviewer will need to provide their github usernames to be given read access to the `silentdata-defi-core` and `silentdata-defi-app` repositories. From 4a151adb708eae3607fc55705f6c45b5832c7154 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Wed, 12 Apr 2023 08:43:38 +0200 Subject: [PATCH 021/253] Rename sielnt-data-milestone_1md to silent_data-milestone_1.md --- sielnt-data-milestone_1md => silent_data-milestone_1.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sielnt-data-milestone_1md => silent_data-milestone_1.md (100%) diff --git a/sielnt-data-milestone_1md b/silent_data-milestone_1.md similarity index 100% rename from sielnt-data-milestone_1md rename to silent_data-milestone_1.md From 901614beb976a9f185f544dd2f9b5200376813ae Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Wed, 12 Apr 2023 13:24:05 +0200 Subject: [PATCH 022/253] Update silent_data-milestone_1.md --- silent_data-milestone_1.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/silent_data-milestone_1.md b/silent_data-milestone_1.md index 848873c95..06cdd1630 100644 --- a/silent_data-milestone_1.md +++ b/silent_data-milestone_1.md @@ -15,14 +15,14 @@ In order to improve the developer experience a Node.js library for interacting w | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License |[Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE)%7C ...| -| 0b. | Documentation |[Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
[Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md)%7C ...| -| 0c. | Testing Guide |[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing)%7C ...| -| 0d. | Docker |[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
[Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node)%7C ...| -| 0e. | Article |...| ...| -| 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node)%7C ...| -| 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot)%7C ...| -| 3. | Extension |[Secure enclave](https://github.com/appliedblockchain/silentdata-defi-core/compare/v0.4.0...v0.5.0-rc1)
[Web application](https://github.com/appliedblockchain/silentdata-defi-app/compare/v0.4.0...v0.5.0-rc1)%7C Both private repositories | +| 0a. | License |[Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE) | ...| +| 0b. | Documentation |[Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
[Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md) | ...| +| 0c. | Testing Guide |[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing) | ...| +| 0d. | Docker |[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
[Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node) | ...| +| 0e. | Article |[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| ...| +| 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| +| 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| +| 3. | Extension |[Secure enclave](https://github.com/appliedblockchain/silentdata-defi-core/compare/v0.4.0...v0.5.0-rc1)
[Web application](https://github.com/appliedblockchain/silentdata-defi-app/compare/v0.4.0...v0.5.0-rc1) | Both private repositories | **Additional Information** From 88ecd9b706864fb7b316a9661d75602f4acbf7f9 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Wed, 12 Apr 2023 18:04:31 +0200 Subject: [PATCH 023/253] Update silent_data-milestone_1.md --- silent_data-milestone_1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/silent_data-milestone_1.md b/silent_data-milestone_1.md index 06cdd1630..94ee95d03 100644 --- a/silent_data-milestone_1.md +++ b/silent_data-milestone_1.md @@ -2,7 +2,7 @@ **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:** Silent Data Polkadot Integration +* **Application Document:** [Silent Data Polkadot Integration ](https://github.com/annazambon/Grants-Program/blob/master/project_silentdata.md) * **Milestone Number:** 1 **Context** From c32d3a7f33eea1e1b20c62722cf24e7f74c9a838 Mon Sep 17 00:00:00 2001 From: BelSoft Dev DOO <126072104+beoblock@users.noreply.github.com> Date: Mon, 17 Apr 2023 15:47:52 +0200 Subject: [PATCH 024/253] Create Diffy_messenger_st1_ms1.md --- deliveries/Diffy_messenger_st1_ms1.md | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deliveries/Diffy_messenger_st1_ms1.md diff --git a/deliveries/Diffy_messenger_st1_ms1.md b/deliveries/Diffy_messenger_st1_ms1.md new file mode 100644 index 000000000..766c80dc1 --- /dev/null +++ b/deliveries/Diffy_messenger_st1_ms1.md @@ -0,0 +1,31 @@ +# 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/Diffy_chat.md +* **Milestone Number:** 1 + +**Context** + +P2p channels between users are set using WebRTC. This Substrate pallet is used for exchanging SDP offers. For address discovery of NAT users any public STUN server can be used. All messages between users are encrypted with user’s public keys. This pallet also includes a “contacts” feature: a user is able to tie names to wallet addresses and organize his contacts in a common way. + +**Deliverables** +In this milestone our team has executed the following deliverables + +- a Substrate pallet for chat initiation; +- a DOTRTC library for p2p transport implementation with test html pages for message passing. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. :heavy_check_mark: | License | [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | Apache 2.0 license | +| 0b. :heavy_check_mark: | Documentation | [Readme.md](https://github.com/Belsoft-rs/diffychat-pallet#readme) | Explaining basic features | +| 0c. :heavy_check_mark: | Testing Guide | [DOTRTC usage](https://github.com/Belsoft-rs/diffychat-dotrtc#usage); [Substrate pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | "How To" guide | +| 1. :heavy_check_mark: | Diffy chat pallet | [See here](https://github.com/Belsoft-rs/diffychat-pallet) | The Diffy chat Substrate pallet to [send and approve WebRTC offers](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/pallets/template/src/lib.rs#L89) for chat initiation. | +| 2. :heavy_check_mark: | DOTRTC library | [See here](https://github.com/Belsoft-rs/diffychat-dotrtc) | This library includes [an API class for organizing p2p communication](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L3), methods for [splitting packets into chunks](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L81) (and [reassemble](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L132) on the receiver’s end). For secure messaging between two participants an e2e [encryption using the ed25519 algorithm](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/Blockchain.js#L101) is implemented. | +| 3. :heavy_check_mark: | HTML test page | [See here](https://belsoft-rs.github.io/diffychat/index.html) | An HTML test page for DOTRTC library testing (setting a p2p channel between 2 users using the DOTRTC library). | + +**Additional Information** + +A short video showing delivered functionality: + +[![Delivery vid pic ms1](https://user-images.githubusercontent.com/126072104/232100957-aa315c8c-2c3f-440e-b2d3-0c2055c47eaf.jpg)](https://media.belsoft.rs/diffychat/diffy.mp4) From 760e101418b42b80b2d45b8bb790917858bcd5bf Mon Sep 17 00:00:00 2001 From: yanliu18 Date: Fri, 28 Apr 2023 16:24:48 +1000 Subject: [PATCH 025/253] prepare milestone 2 submission --- deliveries/rv_kmir-milestone_2.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 deliveries/rv_kmir-milestone_2.md diff --git a/deliveries/rv_kmir-milestone_2.md b/deliveries/rv_kmir-milestone_2.md new file mode 100644 index 000000000..54f5cd58b --- /dev/null +++ b/deliveries/rv_kmir-milestone_2.md @@ -0,0 +1,25 @@ +# 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:** [RV KMIR](https://github.com/w3f/Grants-Program/blob/master/applications/rv-kmir.md) + +* **Milestone Number:** 2 + +**Deliverables** +Specify the syntax of MIR programs in K. + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| **0a.** | License | [BSD-3](https://github.com/runtimeverification/mir-semantics/blob/master/LICENSE) | +| **0b.** | Documentation | [kmir CLI instructions](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md) | +| **0c.** | Testing and Testing Guide | [Testing Instructions with Docker](https://github.com/runtimeverification/mir-semantics/tree/milestone2-deliverable#running-integration-tests-with-docker) | +| **0d.** | Docker | [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/Dockerfile) | +| 1. | KMIR syntax | [mir-syntax.k](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/k-src/mir-syntax.k) | +| 2. | **kmir** executable extension | [**kmir parse** implementation](https://github.com/runtimeverification/mir-semantics/blob/bd09e9d1716904afbbab2c0e27735202689d788e/kmir/src/kmir/__main__.py#L23), [**kmir parse** examples](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md#examples) | + +**Additional Information** + +So far, we are able to pass ~3000 test cases in the conformance test cases, leaving 85 test cases not passes successfully. The unsuccessful test cases are due to tricky syntax rules or the lack of support in our K tool. + +We consider these tricky cases lower priority for the moment and will tackle it later while/ after we developping the execution semantics. \ No newline at end of file From 9cf9e63821e7963e9aad77f7663e9a0d94ec906a Mon Sep 17 00:00:00 2001 From: dastansam Date: Mon, 8 May 2023 01:24:55 +0300 Subject: [PATCH 026/253] Add milestone delivery --- deliveries/FIAT-on-off-ramp-milestone-3.md | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 deliveries/FIAT-on-off-ramp-milestone-3.md diff --git a/deliveries/FIAT-on-off-ramp-milestone-3.md b/deliveries/FIAT-on-off-ramp-milestone-3.md new file mode 100644 index 000000000..47b69cb00 --- /dev/null +++ b/deliveries/FIAT-on-off-ramp-milestone-3.md @@ -0,0 +1,47 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/milestone-deliverables-guidelines.md).** + +* **Application Document:** FIAT on-off-ramp [FIAT-on-off-ramp.md](https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md) +* **Milestone Number:** 3 out of 3 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +In this milestone we worked on a demo application that uses the Substrate chain developed in the previous milestone. The demo application is a simple web application that allows users to register their bank accounts and perform basic token actions such as minting, burning and transferring. The demo application is a proof of concept that shows how the Substrate chain can be used to build a FIAT on-off ramp. + +Demo app is a React application that uses [Polkadot JS API](https://polkadot.js.org/docs/api/start/) to interact with the Substrate chain. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +### Milestone 3 Demo-Dapp & Documentation + +* **Estimated Duration:** 2 months +* **FTE:** 1 +* **Costs:** 5000 USD + +* Link to [github repo](https://github.com/element36-io/ocw-ebics) +* Link to the initial [pull request 348](https://github.com/w3f/Open-Grants-Program/pull/348) + + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| 0a. | License | Apache 2.0 | +| 0b. | Tutorial | Tutorial is provided in the [`/ebics-demo/DEMO.md`](https://github.com/element36-io/ocw-ebics/blob/main/ebics-demo/DEMO.md) file. | +| 1. | Buy me a coffee dApp | A decentralized application is provided, which allows users to buy someone a coffee or simply donate to support their cause. Users can donate by either sending stablecoins or fiat to the recipient's on-chain account or bank account (IBAN). The recipient can then withdraw the funds to their bank account or send them to someone else. | +| 2. | Docker-Compose: node & Dapp | Instead of `docker-compose` a [Makefile](https://github.com/element36-io/ocw-ebics/blob/main/Makefile) is provided with the commands that launch the chain and the demo app | + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. +All previously completed deliverables can be tested the same way as described in the older milestone. Specifically, unit tests and coverage. We also added linting with `clippy`. + +There have been some major change to the project. Along with the demo app, to provide a better context to the project we were working on a draft whitepaper for our project “HyperFridge” which builds right on top of our delivery. In the initial funding request we noted that an attack vector would be the (ISO20022) API based backend which is vulnerable to man-in-the-middle attack or just to a fake backend, which we are actually using in our demo environment. The paper describes how this can be mitigated by zero knowledge proofs which leverage on the signatures of the banks, which are included in each transaction message coming from the banking backend. With HyperFridge, we cryptographically prove transaction data (and balances) of the banking ledger. Hence a bank account (its transactions) can be treated like a blockchain ledger in terms of trust. If this would work, we are able to fully mirror a bank ledger data on-chain, thus reducing the problem with “asymmetric information” between blockchain and banking ledgers. This allows us to create zero-trust decentralized Fiat bridges which also work across multiple chains consistently - proof of assets for stable coins and payment systems are the most obvious use cases. + +We also would like to note that we are very grateful for your support and understanding during the last months. We had to deal with some personal issues and we are very happy that we were able to deliver the project. We are looking forward to continue working on the project and we are very excited about the future of the Web3 Foundation and the Polkadot ecosystem. From 8366296a193486998da71850faeea2b8106639a7 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 8 May 2023 04:29:22 +0600 Subject: [PATCH 027/253] Update FIAT-on-off-ramp-milestone-3.md --- deliveries/FIAT-on-off-ramp-milestone-3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-3.md b/deliveries/FIAT-on-off-ramp-milestone-3.md index 47b69cb00..20a070dd4 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-3.md +++ b/deliveries/FIAT-on-off-ramp-milestone-3.md @@ -35,7 +35,7 @@ Demo app is a React application that uses [Polkadot JS API](https://polkadot.js. | -----: | ----------- | ------------- | | 0a. | License | Apache 2.0 | | 0b. | Tutorial | Tutorial is provided in the [`/ebics-demo/DEMO.md`](https://github.com/element36-io/ocw-ebics/blob/main/ebics-demo/DEMO.md) file. | -| 1. | Buy me a coffee dApp | A decentralized application is provided, which allows users to buy someone a coffee or simply donate to support their cause. Users can donate by either sending stablecoins or fiat to the recipient's on-chain account or bank account (IBAN). The recipient can then withdraw the funds to their bank account or send them to someone else. | +| 1. | Buy me a coffee dApp | A decentralized [application](https://github.com/element36-io/ocw-ebics/tree/main/ebics-demo) is provided, which allows users to buy someone a coffee or simply donate to support their cause. Users can donate by either sending stablecoins or fiat to the recipient's on-chain account or bank account (IBAN). The recipient can then withdraw the funds to their bank account or send them to someone else. | | 2. | Docker-Compose: node & Dapp | Instead of `docker-compose` a [Makefile](https://github.com/element36-io/ocw-ebics/blob/main/Makefile) is provided with the commands that launch the chain and the demo app | **Additional Information** From 041123cdc9653e11a4149f07d30c390f1be07bbf Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 8 May 2023 04:30:35 +0600 Subject: [PATCH 028/253] Update FIAT-on-off-ramp-milestone-3.md --- deliveries/FIAT-on-off-ramp-milestone-3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-3.md b/deliveries/FIAT-on-off-ramp-milestone-3.md index 20a070dd4..ebd17a0d7 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-3.md +++ b/deliveries/FIAT-on-off-ramp-milestone-3.md @@ -42,6 +42,6 @@ Demo app is a React application that uses [Polkadot JS API](https://polkadot.js. > Any further comments on the milestone that you would like to share with us. All previously completed deliverables can be tested the same way as described in the older milestone. Specifically, unit tests and coverage. We also added linting with `clippy`. -There have been some major change to the project. Along with the demo app, to provide a better context to the project we were working on a draft whitepaper for our project “HyperFridge” which builds right on top of our delivery. In the initial funding request we noted that an attack vector would be the (ISO20022) API based backend which is vulnerable to man-in-the-middle attack or just to a fake backend, which we are actually using in our demo environment. The paper describes how this can be mitigated by zero knowledge proofs which leverage on the signatures of the banks, which are included in each transaction message coming from the banking backend. With HyperFridge, we cryptographically prove transaction data (and balances) of the banking ledger. Hence a bank account (its transactions) can be treated like a blockchain ledger in terms of trust. If this would work, we are able to fully mirror a bank ledger data on-chain, thus reducing the problem with “asymmetric information” between blockchain and banking ledgers. This allows us to create zero-trust decentralized Fiat bridges which also work across multiple chains consistently - proof of assets for stable coins and payment systems are the most obvious use cases. +There have been one significant change to the project. Along with the demo app, to provide a better context to the project we were working on a draft [whitepaper](https://github.com/element36-io/ocw-ebics/blob/main/docs/hyperfridge-draft.pdf) for our project “HyperFridge” which builds right on top of our delivery. In the initial funding request we noted that an attack vector would be the (ISO20022) API based backend which is vulnerable to man-in-the-middle attack or just to a fake backend, which we are actually using in our demo environment. The paper describes how this can be mitigated by zero knowledge proofs which leverage on the signatures of the banks, which are included in each transaction message coming from the banking backend. With HyperFridge, we cryptographically prove transaction data (and balances) of the banking ledger. Hence a bank account (its transactions) can be treated like a blockchain ledger in terms of trust. If this would work, we are able to fully mirror a bank ledger data on-chain, thus reducing the problem with “asymmetric information” between blockchain and banking ledgers. This allows us to create zero-trust decentralized Fiat bridges which also work across multiple chains consistently - proof of assets for stable coins and payment systems are the most obvious use cases. We also would like to note that we are very grateful for your support and understanding during the last months. We had to deal with some personal issues and we are very happy that we were able to deliver the project. We are looking forward to continue working on the project and we are very excited about the future of the Web3 Foundation and the Polkadot ecosystem. From 1a45d84362a9fd11d114d49482827ae5f2172f18 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 8 May 2023 04:38:39 +0600 Subject: [PATCH 029/253] Update FIAT-on-off-ramp-milestone-3.md --- deliveries/FIAT-on-off-ramp-milestone-3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/FIAT-on-off-ramp-milestone-3.md b/deliveries/FIAT-on-off-ramp-milestone-3.md index ebd17a0d7..d2ff5acf0 100644 --- a/deliveries/FIAT-on-off-ramp-milestone-3.md +++ b/deliveries/FIAT-on-off-ramp-milestone-3.md @@ -7,7 +7,7 @@ **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/milestone-deliverables-guidelines.md).** * **Application Document:** FIAT on-off-ramp [FIAT-on-off-ramp.md](https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md) -* **Milestone Number:** 3 out of 3 +* **Milestone Number:** 3 **Context** (optional) > Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. From 0f752342c6a0375587126e30be7c5d699c49061c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mert=20K=C3=B6kl=C3=BC?= <37740842+justmert@users.noreply.github.com> Date: Mon, 8 May 2023 21:00:19 +0300 Subject: [PATCH 030/253] Create PolkaFlow-1.md --- deliveries/PolkaFlow-1.md | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 deliveries/PolkaFlow-1.md diff --git a/deliveries/PolkaFlow-1.md b/deliveries/PolkaFlow-1.md new file mode 100644 index 000000000..7ab08b1d9 --- /dev/null +++ b/deliveries/PolkaFlow-1.md @@ -0,0 +1,46 @@ +# 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/polkaflow.md +* **Milestone Number:** 1 + +**Context** (optional) + +PolkaFlow is a platform that provides visualizations and insights for open source projects in the DOT ecosystem. It offers a comprehensive view of activities of projects and insights into the ecosystem's trends. This is the document for the completion of only milestone for PolkaFlow. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[Frontend License](https://github.com/justmert/eco-flow-frontend/blob/master/LICENSE)
[Backend License](https://github.com/justmert/eco-flow-backend/blob/master/LICENSE)| | +| 0b. | Documentation |[Frontend Documentation](https://github.com/justmert/eco-flow-frontend/blob/master/README.md)
[Backend Documentation](https://github.com/justmert/eco-flow-backend/blob/master/README.md)| | +| 0c. | Testing and Testing Guide | [Backend Repo - Testing](https://github.com/justmert/eco-flow-backend#test-the-app) | 1-Clone the [Backend Documentation](https://github.com/justmert/eco-flow-backend/blob/master/README.md).
2-In the project directory, run `pip3 install -r requirements.txt`
3-After installing is done, run `pytest tests.py` | +| 0d. | Docker | | Not applicable | +| 1. | Database |[PolkaFlow Firebase Database Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/App.js)| | +| 2. | Python Backend |[Backend Repo](https://github.com/justmert/eco-flow-backend)| | +| 3. | Frontend: Dashboard Page
Backend: Data Process - (Star Count) |[PolkaFlow Website Dashboard Page](https://polkaflow.xyz/dashboard/substrate) | See `Polkadot Ecosystem Star Count` widget. | +| 4. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Commit History) |[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| See `Commit History By Weeks` widget. | +| 5. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Code Frequency) |[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| See `Weekly Code Frequency` widget. | +| 6. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Top Contributors) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See `Top Contributors` widget. | +| 7. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Activity) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | See `Recent Issue Activity` widget. | +| 8. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Count) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See `Issue Count` widget. | +| 9. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Issues) | [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See `Recent Issues` widget. | +| 10. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Commits) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | See `Recent Commits` widget. | +| 11. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Pull Request Count) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See `Pull Request Count` widget. | +| 12. | Frontend: Project Page
Backend: Data Process - (Pull Request Activity) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See `Recent Pull Request Activity` widget. | +| 13. | Frontend: Project Page
Backend: Data Process - (Project Info Card) |[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| See project info at the top of the project page. | +| 14. | Frontend: Project Page
Backend: Data Process - (Recent Stargazing) | [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | See `Recent Stargazing Activity` widget. | +| 15. | Frontend: Project List Page | [PolkaFlow Website Projects Page](https://polkaflow.xyz/projects)| | +| 16. | Integrate: Algolia | [Frontend Repo - Algolia Search Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/components/Layouts/Search/search.js) | | +| 17. | Frontend: Categorization |[Frontend Repo - Typeform Integration Line ](https://github.com/justmert/eco-flow-frontend/blob/170707defb2e00fbb475a7e338593fd80c343636/src/components/Layouts/Navbar/navbar.js#L96) | | +| 18. | Integrate: Typeform | [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | | +| 19. | Integrate: Google Analytics | [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | | +| 20. | Backend: Schedule | [Backend Repo - Schedule](https://github.com/justmert/eco-flow-backend/blob/master/main.py) | | +| 21. | Frontend: UX & UI | [PolkaFlow Website](https://polkaflow.xyz/)| Improved overall UI&UX | + + +**Additional Information** + +Implementation of insigts/charts can be also found in `components` directory of the [Frontend Repo](https://github.com/justmert/eco-flow-frontend/tree/master/src/components) and the [Backend Repo](https://github.com/justmert/eco-flow-backend/blob/master/update.py). From 81e476b282e78d430b0a9e1a62e051916ff8cf48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tolga=20Yayc=C4=B1?= <40897846+tolgayayci@users.noreply.github.com> Date: Mon, 8 May 2023 21:26:45 +0300 Subject: [PATCH 031/253] Create Awesome-Polka-1.md --- deliveries/Awesome-Polka-1.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 deliveries/Awesome-Polka-1.md diff --git a/deliveries/Awesome-Polka-1.md b/deliveries/Awesome-Polka-1.md new file mode 100644 index 000000000..679937a52 --- /dev/null +++ b/deliveries/Awesome-Polka-1.md @@ -0,0 +1,29 @@ +# 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:** [Contract File](https://github.com/w3f/Grants-Program/tree/master/applications/Awesome-Polka.md) +* **Milestone Number:** 1 + +**Context** +This milestone includes the functionality of the public part of the platform and the design of the project owner dashboard, as stated in the contract, normal users and project owners can use the platform. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| **0a.** | License | [MIT](https://github.com/tolgayayci/awesome-polka/blob/dev/LICENSE) | License Added to All Branches | +| **0b.** | Documentation | [Awesome Polka Docs](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | Base documentation provided, in near time this will be enhanced with examples and use cases. | +| **0c.** | Testing and Testing Guide | [Guide](https://docs.awesomepolka.org/docs/technical-details/testing) | API Tests & End to End tests are completed with a few users, also in this link you can see form validation tests. For future, hooks and api tests will be included in this page. | +| **0e.** | Article | [Documentation Includes](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | Documentation like a kind of article about how to use this platform. | +| **1.** | UI & UX Development | **Home Page:** [Link](https://awesomepolka.org)

**Projects Page:** [Link](https://awesomepolka.org/projects)

**Project Detail Page:** [Link](https://awesomepolka.org/projects/awesome-polka)

**Articles Page:** [Link](https://awesomepolka.org/articles)

**Article Detail Page:** [Link](https://awesomepolka.org/articles/09885b15-3a16-478f-aa2f-d6929d2f05c8)

**Ranking Page:** [Link](https://awesomepolka.org/ranking)

**Learn Page:** [Link](https://awesomepolka.org/learn)

**UX Improvements & Testing:** [Link](https://docs.awesomepolka.org/docs/technical-details/testing)| All pages that designed for milestones are completed, you can visit links to verify, ux improvements will be continue in future stages. | ... | +| *2.* | Project Owner Dashboard | [Dashboard Link](https://awesomepolka.org/dashboard/project) | You **must have an account** to use this dashboard. If you have an account, a "Dashboard" link appears in the footer of the site and you can access the dashboard by clicking this link. To request an account, click on the "Submit Project" on the main page or directly [this link](https://ts6prh04a2p.typeform.com/to/L4jpfJKl), after your membership is defined, you will receive an e-mail and you can start testing the dashboard.
| + +**Additional Information** +Although milestones of the project have been completed, it will continue to be actively developed, I will publish a report stating its status in the next two quarters. + +I would like to offer a more detailed infrastructure for testing, but you can test it by using the platform in the easiest way, while everyone can view the public part, I will authorize you when you fill out the form for the project owner dashboard, so you can try this dashboard. + +Api key of many platforms such as algolia, aws, thirdweb, coinbase cloud is required to set up a test infrastructure from start to finish, so a partial test report has been published to make things easier. + +Main domain currently lists dev branch but after approval I will push a clean main branch and we will start from scratch with new projects, so you can tamper with it as you wish, these changes will not be visible in prod version. From c2eaf9e7a0fe797d24e50f761c3e85e65ff56ef6 Mon Sep 17 00:00:00 2001 From: Joshy Orndorff Date: Mon, 8 May 2023 15:31:56 -0400 Subject: [PATCH 032/253] milestone 3 delivery --- deliveries/tuxedo_milestone-3.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deliveries/tuxedo_milestone-3.md diff --git a/deliveries/tuxedo_milestone-3.md b/deliveries/tuxedo_milestone-3.md new file mode 100644 index 000000000..7a41a29d5 --- /dev/null +++ b/deliveries/tuxedo_milestone-3.md @@ -0,0 +1,31 @@ +# 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/tuxedo.md +* **Milestone Number:** 3 + +**Context** +Tuxedo is a runtime framework for writing Substrate runtimes in the UTXO model. +It is analogous (and an alternative) to FRAME which uses the accounts model. +This is the last of three milestones in the grant. + +In this milestone we focused on making Tuxedo approachable to new developers who want to use it in their Substrate runtimes. +The primary deliverables are in 0b and 0e for this milestone, so don't miss them. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [LICENSE file](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3/LICENSE) | Apache 2.0, as recommended | +| 0b. | Documentation | [Hosted Rustdocs](https://off-narrative-labs.github.io/Tuxedo) | We have detailed rustdocs throughout the project; they are also hosted. These docs serve as a technical and architectural reference. | +| 0c. | Testing | [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#testing-and-code-quality) | Tests are run in CI and instructions for running them locally are in the readme. | +| 0d. | Docker | [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#docker), [Published Images](https://github.com/orgs/Off-Narrative-Labs/packages) | We provide docker images for both the template node and the PoC wallet as well as instructions for how to test the node with them. | +| 0e. | Full Tutorial | [Starter Code](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/), [Complete Solutions](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/tree/dex-solutions), [Walkthrough Video](https://www.youtube.com/watch?v=bWA2ksTmNBU) | Instead of the simple tutorial about passing around tokens from the original spec, we expanded this into a complete tutorial about adding an additional token to your runtime and designing a decentralized exchange between the two tokens. This tutorial contains written instructions, starter code, complete unit tests so you know when you have solved each part, and a complete solution example. We also worked through most of this tutorial live on Substrate Seminar. +| 1. | Template Piece | [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial#use-as-a-template), [Dex Template](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/blob/dex-tutorial/dex/src/lib.rs) | We've decided to use the same starting point for our tutorial and for a general-purpose template. As explained in the readme, this makes it easier for learners to complete the tutorial and continue naturally on to their project. It also makes it easier for downstream projects to get updates to tuxedo core. + +**Additional Information** + +While The Order Book Dex tutorial linked above is the primary deliverable product, we also worked to make Tuxedo more accessible and visible to developers by appearing twice on Substrate Seminar. +* 1. Conceptual and Architectural Overview - https://www.youtube.com/watch?v=6AY5VqXIAcM +* 2. Live coding on the beta Dex Tutorial - https://www.youtube.com/watch?v=bWA2ksTmNBU From 0ca67638050b51c770113b68ce66029e18593f25 Mon Sep 17 00:00:00 2001 From: BelSoft Dev DOO <126072104+beoblock@users.noreply.github.com> Date: Wed, 10 May 2023 15:44:46 +0200 Subject: [PATCH 033/253] Update Diffy_messenger_st1_ms1.md --- deliveries/Diffy_messenger_st1_ms1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deliveries/Diffy_messenger_st1_ms1.md b/deliveries/Diffy_messenger_st1_ms1.md index 766c80dc1..7375dd6b6 100644 --- a/deliveries/Diffy_messenger_st1_ms1.md +++ b/deliveries/Diffy_messenger_st1_ms1.md @@ -7,7 +7,7 @@ **Context** -P2p channels between users are set using WebRTC. This Substrate pallet is used for exchanging SDP offers. For address discovery of NAT users any public STUN server can be used. All messages between users are encrypted with user’s public keys. This pallet also includes a “contacts” feature: a user is able to tie names to wallet addresses and organize his contacts in a common way. +P2p channels between users are set by usernames using WebRTC. This Substrate pallet is used for exchanging SDP offers. For address discovery of NAT users any public STUN server can be used. All messages between users are encrypted with user’s ed25519 keys and transactions are signed using sr25519 keys (to support Polkadot compatibility). Both keys are tied to usernames so that users do not have to generate ed25519 keys manually. This pallet will also include a “contacts” feature in the next milestone. **Deliverables** In this milestone our team has executed the following deliverables @@ -20,8 +20,8 @@ In this milestone our team has executed the following deliverables | 0a. :heavy_check_mark: | License | [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | Apache 2.0 license | | 0b. :heavy_check_mark: | Documentation | [Readme.md](https://github.com/Belsoft-rs/diffychat-pallet#readme) | Explaining basic features | | 0c. :heavy_check_mark: | Testing Guide | [DOTRTC usage](https://github.com/Belsoft-rs/diffychat-dotrtc#usage); [Substrate pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | "How To" guide | -| 1. :heavy_check_mark: | Diffy chat pallet | [See here](https://github.com/Belsoft-rs/diffychat-pallet) | The Diffy chat Substrate pallet to [send and approve WebRTC offers](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/pallets/template/src/lib.rs#L89) for chat initiation. | -| 2. :heavy_check_mark: | DOTRTC library | [See here](https://github.com/Belsoft-rs/diffychat-dotrtc) | This library includes [an API class for organizing p2p communication](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L3), methods for [splitting packets into chunks](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L81) (and [reassemble](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L132) on the receiver’s end). For secure messaging between two participants an e2e [encryption using the ed25519 algorithm](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/Blockchain.js#L101) is implemented. | +| 1. :heavy_check_mark: | Diffy chat pallet | [See here](https://github.com/Belsoft-rs/diffychat-pallet) | The Diffy chat Substrate pallet to [register usernames](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/pallets/template/src/lib.rs#L106), [send and approve WebRTC offers](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/pallets/template/src/lib.rs#L86) for chat initiation. | +| 2. :heavy_check_mark: | DOTRTC library | [See here](https://github.com/Belsoft-rs/diffychat-dotrtc) | This library includes [method for username registration](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/Blockchain.js#L127), [an API class for organizing p2p communication](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L3), methods for [splitting packets into chunks](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L81) (and [reassembling](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/PeerChannel.js#L132) on the receiver’s end). For secure messaging between two participants an [e2e encryption using the ed25519 algorithm](https://github.com/Belsoft-rs/diffychat-dotrtc/blob/main/src/Blockchain.js#L180) is implemented. | | 3. :heavy_check_mark: | HTML test page | [See here](https://belsoft-rs.github.io/diffychat/index.html) | An HTML test page for DOTRTC library testing (setting a p2p channel between 2 users using the DOTRTC library). | **Additional Information** From acd59a6956bdcf814418d9d4929f77bf8a964e6d Mon Sep 17 00:00:00 2001 From: Samuel Brack Date: Fri, 12 May 2023 09:56:13 +0200 Subject: [PATCH 034/253] Create DIA_Bridgestate-1.md --- deliveries/DIA_Bridgestate-1.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 deliveries/DIA_Bridgestate-1.md diff --git a/deliveries/DIA_Bridgestate-1.md b/deliveries/DIA_Bridgestate-1.md new file mode 100644 index 000000000..c3ee9d5fa --- /dev/null +++ b/deliveries/DIA_Bridgestate-1.md @@ -0,0 +1,32 @@ +# 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:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/DIA_Bridge_Attestation_Oracle.md) +* **Milestone Number:** 1 + +**Context** + +We are submitting the delivery of the first milestone according to the initial grant application. The milestone includes core functionality of the solution, including: +- Pallet +- Off-chain worker +- Collateral ratio calculation logic +- Documentation on running the pallet +- Tests +- Article announcing the core functionality and features of the solution + +Next deliverable will be bridge integrations which will enable the full usage of the product. + +**Deliverables** + +| Number | Deliverable | Link | Notes +| -----: | ----------- | ------------- | ------------- | +| **0a.** | License | [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/LICENSE) | Apache 2.0 license | +| **0b.** | Documentation | [Link](https://github.com/diadata-org/bridgestate-ocw#readme) | Read.me explaining the core functionality | +| **0c.** | Testing and Testing Guide | [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/tests.rs) | Test the functionality | +| **0d.** | Docker | [Link](https://github.com/diadata-org/bridgestate-ocw#using-docker) | Docker file with functionality | +| 0e. | Article | [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/Article.md) | Article to be announced after approval | +| 1. | Attestation oracle core: Off-chain worker | Off-chain worker is part of the pallet listed below | +| 2. | Attestation oracle core: Pallet | [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#add-the-collateral-reader-pallet-to-your-runtime) | Pallet integration | +| 3. | Attestation oracle core: RPCs | [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/impls.rs) | RPCs fallback functionality | +| 4. | Attestation oracle core: Collateral ratio calculation | [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#about-the-collateral-reader-pallet) | The logic for calculating collateral ratio | From a7e0cf175cfbfe5a52a9c414999b46386cc2009c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tolga=20Yayc=C4=B1?= <40897846+tolgayayci@users.noreply.github.com> Date: Fri, 12 May 2023 17:56:10 +0300 Subject: [PATCH 035/253] Update Awesome-Polka-1.md link resolved --- deliveries/Awesome-Polka-1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/Awesome-Polka-1.md b/deliveries/Awesome-Polka-1.md index 679937a52..55ea1be49 100644 --- a/deliveries/Awesome-Polka-1.md +++ b/deliveries/Awesome-Polka-1.md @@ -2,7 +2,7 @@ **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:** [Contract File](https://github.com/w3f/Grants-Program/tree/master/applications/Awesome-Polka.md) +* **Application Document:** https://github.com/w3f/Grants-Program/tree/master/applications/Awesome-Polka.md * **Milestone Number:** 1 **Context** From cd793d4528b4742eb6bb1cd9131b733a5f742f87 Mon Sep 17 00:00:00 2001 From: Jose Ramirez Date: Fri, 12 May 2023 16:02:00 -0400 Subject: [PATCH 036/253] Kuma Wallet Milestone 2 --- deliveries/kuma-wallet_milestone_2.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 deliveries/kuma-wallet_milestone_2.md diff --git a/deliveries/kuma-wallet_milestone_2.md b/deliveries/kuma-wallet_milestone_2.md new file mode 100644 index 000000000..ee94a48af --- /dev/null +++ b/deliveries/kuma-wallet_milestone_2.md @@ -0,0 +1,23 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Kuma Wallet Grant](https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md) +* **Milestone Number:** 2 + +**Context** (optional) + +Kuma Wallet is the first of its kind, a cross-chain wallet that offers seamless management and transfer of assets between EVM and WASM chains. This wallet has been designed to make the experience of handling cross-chain assets as smooth and intuitive as possible. With Kuma Wallet, users can easily import and create accounts on both EVM and WASM chains and transfer their assets with ease, thanks to the integration of XCM. The sleek and user-friendly design of Kuma Wallet has been inspired by the highly successful Astar UI. We are committed to providing ongoing support to Kuma Wallet, including the establishment of Telegram and Discord channels, to ensure that users have a platform for feedback and to address any issues that may arise. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | +| 0b. | Documentation | https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | **english** and **spanish** versions of the documentation | +| 0c. | Testing Guide | https://github.com/blockcoders/kuma-wallet#running-locally | Unit test and end to end tests will cover the core functions to ensure everything works as expected | +| 1. | Custom tokens | https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/manageAssets/ManageAssets.tsx | Enable users to add custom tokens and networks/chains to the wallet. | +| 2. | Mesasges EVM - WASM | https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/signMessage/SignMessage.tsx | Provide the ability to sign messages for EVM and WASM accounts. | +| 3. | Transfer EVM - WASM | https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/send/Send.tsx | Allow users to transfer assets between their own EVM and WASM accounts on the same chain. | +| 4. | Transaction history | https://github.com/blockcoders/kuma-wallet/blob/main/src/entries/background/index.ts | Show users their transaction history for both EVM and WASM accounts. | +| 5. | Explorer link | https://github.com/blockcoders/kuma-wallet/blob/main/src/constants/chains.ts | Provide links to explorer pages for enhanced transparency and accountability. | \ No newline at end of file From 113318175fee8af9b110fe7fb823f50e5100fa9a Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Sun, 14 May 2023 23:39:36 -0400 Subject: [PATCH 037/253] Create tuxedo_3_keeganquigley.md --- deliveries/tuxedo_3_keeganquigley.md | 230 +++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 deliveries/tuxedo_3_keeganquigley.md diff --git a/deliveries/tuxedo_3_keeganquigley.md b/deliveries/tuxedo_3_keeganquigley.md new file mode 100644 index 000000000..6d6f0c7e2 --- /dev/null +++ b/deliveries/tuxedo_3_keeganquigley.md @@ -0,0 +1,230 @@ +```rust +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/amoeba-84e8bf0328439f3b) + +running 18 tests +test tests::creation_multiple_fails ... ok +test tests::creation_invalid_generation_fails ... ok +test tests::creation_valid_transaction_works ... ok +test tests::creation_with_badly_typed_output_fails ... ok +test tests::creation_with_inputs_fails ... ok +test tests::creation_with_no_output_fails ... ok +test tests::death_multiple_inputs ... ok +test tests::death_badly_typed_input ... ok +test tests::death_no_input ... ok +test tests::death_valid_transaction_works ... ok +test tests::death_with_output ... ok +test tests::mitosis_badly_typed_input ... ok +test tests::mitosis_badly_typed_output ... ok +test tests::mitosis_no_input ... ok +test tests::mitosis_too_many_outputs ... ok +test tests::mitosis_only_one_output ... ok +test tests::mitosis_valid_transaction_works ... ok +test tests::mitosis_wrong_generation ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/derive_no_bound-dbb3c33a916b13d8) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/kitties-7d7cd77f1b1d1170) + +running 26 tests +test tests::breed_dad_when_he_is_tired_fails ... ok +test tests::breed_two_dads_fails ... ok +test tests::breed_two_moms_fails ... ok +test tests::breed_mom_when_she_gave_birth_recently_fails ... ok +test tests::breed_wrong_input_type_fails ... ok +test tests::breed_wrong_output_type_fails ... ok +test tests::breed_happy_path_works ... ok +test tests::check_child_dad_parent_tired_fails ... ok +test tests::check_child_dna_incorrect_fails ... ok +test tests::check_child_free_breedings_incorrect_fails ... ok +test tests::check_dad_breedings_overflow_fails ... ok +test tests::check_dad_free_breedings_zero_fails ... ok +test tests::check_child_mom_parent_recently_gave_birth_fails ... ok +test tests::check_mom_breedings_overflow_fails ... ok +test tests::check_child_num_breedings_non_zero_fails ... ok +test tests::check_mom_free_breedings_zero_fails ... ok +test tests::check_new_dad_dna_doesnt_match_old_fails ... ok +test tests::check_new_dad_free_breedings_incorrect_fails ... ok +test tests::check_new_dad_num_breedings_incorrect_fails ... ok +test tests::check_new_mom_free_breedings_incorrect_fails ... ok +test tests::check_new_mom_dna_doesnt_match_old_fails ... ok +test tests::first_input_not_mom_fails ... ok +test tests::inputs_dont_contain_two_parents_fails ... ok +test tests::outputs_dont_contain_all_family_members_fails ... ok +test tests::first_output_not_mom_fails ... ok +test tests::check_new_mom_num_breedings_incorrect_fails ... ok + +test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/money-72ad746590f7c4eb) + +running 12 tests +test tests::mint_valid_transaction_works ... ok +test tests::mint_with_inputs_fails ... ok +test tests::mint_with_no_outputs_fails ... ok +test tests::mint_with_zero_value_output_fails ... ok +test tests::mint_wrong_output_type_fails ... ok +test tests::spend_no_inputs_fails ... ok +test tests::spend_no_outputs_is_a_burn ... ok +test tests::spend_valid_transaction_work ... ok +test tests::spend_wrong_input_type_fails ... ok +test tests::spend_wrong_output_type_fails ... ok +test tests::spend_with_zero_value_output_fails ... ok +test tests::spend_output_value_exceeds_input_value_fails ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/node_template-081cc689551156f4) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/node_template-3acc397e363f5ad9) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/poe-049bc1541e21e0c3) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/runtime_upgrade-e74911ac3b122840) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/tuxedo_core-3ab8267e7a21e02f) + +running 41 tests +test constraint_checker::testing::test_checker_fails ... ok +test constraint_checker::testing::test_checker_passes ... ok +test dynamic_typing::tests::display_wrong_type_error ... ok +test dynamic_typing::tests::display_decoding_failed_error ... ok +test dynamic_typing::tests::extract_wrong_type ... ok +test dynamic_typing::tests::extract_works ... ok +test dynamic_typing::tests::extract_decode_fails ... ok +test executive::tests::apply_empty_works ... ok +test executive::tests::apply_valid_extrinsic_work ... ok +test executive::tests::apply_invalid_extrinsic_rejects ... ok +test executive::tests::apply_with_missing_input_fails ... ok +test executive::tests::execute_block_invalid_transaction - should panic ... ok +test executive::tests::execute_block_extrinsic_root_mismatch - should panic ... ok +test executive::tests::execute_block_state_root_mismatch - should panic ... ok +test executive::tests::close_block_works ... ok +test executive::tests::execute_block_with_transaction_works ... ok +test executive::tests::open_block_works ... ok +test executive::tests::update_storage_adds_output ... ok +test executive::tests::execute_empty_block_works ... ok +test executive::tests::update_storage_consumes_input ... ok +test executive::tests::validate_empty_works ... ok +test executive::tests::validate_with_constraint_error_fails ... ok +test executive::tests::validate_with_duplicate_input_fails ... ok +test executive::tests::validate_with_output_works ... ok +test executive::tests::validate_with_input_works ... ok +test executive::tests::validate_with_missing_input_works ... ok +test types::tests::extrinsic_no_signed_payload ... ok +test types::tests::extrinsic_is_signed_works ... ok +test verifier::test::sig_check_with_bad_sig ... ok +test executive::tests::validate_with_pre_existing_output_fails ... ok +test verifier::test::test_verifier_fails ... ok +test verifier::test::test_verifier_passes ... ok +test executive::tests::validate_with_unsatisfied_redeemer_fails ... ok +test verifier::test::threshold_multisig_bogus_redeemer_encoding_fails ... ok +test verifier::test::sig_check_with_good_sig ... ok +test verifier::test::threshold_multisig_has_duplicate_signatories_fails ... ok +test verifier::test::threshold_multisig_replay_sig_attack_fails ... ok +test verifier::test::threshold_multisig_not_enough_sigs_fails ... ok +test verifier::test::up_for_grabs_always_verifies ... ok +test verifier::test::threshold_multisig_extra_sigs_still_passes ... ok +test verifier::test::threshold_multisig_with_enough_sigs_passes ... ok + +test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/tuxedo_template_runtime-bd5b9c6273e52f6b) + +running 2 tests +test tests::utxo_money_test_genesis ... ok +test tests::utxo_money_multi_sig_genesis_test ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s + + Running unittests src/main.rs (target/debug/deps/tuxedo_template_wallet-e663e5727350b4e6) + +running 2 tests +test output_filter::tests::filter_prints ... ok +test output_filter::tests::filter_sig_check_works ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests aggregator + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests amoeba + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests derive-no-bound + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests kitties + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests money + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests node-template + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests poe + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests runtime-upgrade + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests tuxedo-core + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests tuxedo-template-runtime + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` From c58d2f0f0d869f784db64ff132c3545892d49259 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Sun, 14 May 2023 23:41:13 -0400 Subject: [PATCH 038/253] Create tuxedo_3_keeganquigley.md --- evaluations/tuxedo_3_keeganquigley.md | 230 ++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 evaluations/tuxedo_3_keeganquigley.md diff --git a/evaluations/tuxedo_3_keeganquigley.md b/evaluations/tuxedo_3_keeganquigley.md new file mode 100644 index 000000000..6d6f0c7e2 --- /dev/null +++ b/evaluations/tuxedo_3_keeganquigley.md @@ -0,0 +1,230 @@ +```rust +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/amoeba-84e8bf0328439f3b) + +running 18 tests +test tests::creation_multiple_fails ... ok +test tests::creation_invalid_generation_fails ... ok +test tests::creation_valid_transaction_works ... ok +test tests::creation_with_badly_typed_output_fails ... ok +test tests::creation_with_inputs_fails ... ok +test tests::creation_with_no_output_fails ... ok +test tests::death_multiple_inputs ... ok +test tests::death_badly_typed_input ... ok +test tests::death_no_input ... ok +test tests::death_valid_transaction_works ... ok +test tests::death_with_output ... ok +test tests::mitosis_badly_typed_input ... ok +test tests::mitosis_badly_typed_output ... ok +test tests::mitosis_no_input ... ok +test tests::mitosis_too_many_outputs ... ok +test tests::mitosis_only_one_output ... ok +test tests::mitosis_valid_transaction_works ... ok +test tests::mitosis_wrong_generation ... ok + +test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/derive_no_bound-dbb3c33a916b13d8) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/kitties-7d7cd77f1b1d1170) + +running 26 tests +test tests::breed_dad_when_he_is_tired_fails ... ok +test tests::breed_two_dads_fails ... ok +test tests::breed_two_moms_fails ... ok +test tests::breed_mom_when_she_gave_birth_recently_fails ... ok +test tests::breed_wrong_input_type_fails ... ok +test tests::breed_wrong_output_type_fails ... ok +test tests::breed_happy_path_works ... ok +test tests::check_child_dad_parent_tired_fails ... ok +test tests::check_child_dna_incorrect_fails ... ok +test tests::check_child_free_breedings_incorrect_fails ... ok +test tests::check_dad_breedings_overflow_fails ... ok +test tests::check_dad_free_breedings_zero_fails ... ok +test tests::check_child_mom_parent_recently_gave_birth_fails ... ok +test tests::check_mom_breedings_overflow_fails ... ok +test tests::check_child_num_breedings_non_zero_fails ... ok +test tests::check_mom_free_breedings_zero_fails ... ok +test tests::check_new_dad_dna_doesnt_match_old_fails ... ok +test tests::check_new_dad_free_breedings_incorrect_fails ... ok +test tests::check_new_dad_num_breedings_incorrect_fails ... ok +test tests::check_new_mom_free_breedings_incorrect_fails ... ok +test tests::check_new_mom_dna_doesnt_match_old_fails ... ok +test tests::first_input_not_mom_fails ... ok +test tests::inputs_dont_contain_two_parents_fails ... ok +test tests::outputs_dont_contain_all_family_members_fails ... ok +test tests::first_output_not_mom_fails ... ok +test tests::check_new_mom_num_breedings_incorrect_fails ... ok + +test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/money-72ad746590f7c4eb) + +running 12 tests +test tests::mint_valid_transaction_works ... ok +test tests::mint_with_inputs_fails ... ok +test tests::mint_with_no_outputs_fails ... ok +test tests::mint_with_zero_value_output_fails ... ok +test tests::mint_wrong_output_type_fails ... ok +test tests::spend_no_inputs_fails ... ok +test tests::spend_no_outputs_is_a_burn ... ok +test tests::spend_valid_transaction_work ... ok +test tests::spend_wrong_input_type_fails ... ok +test tests::spend_wrong_output_type_fails ... ok +test tests::spend_with_zero_value_output_fails ... ok +test tests::spend_output_value_exceeds_input_value_fails ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/node_template-081cc689551156f4) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/node_template-3acc397e363f5ad9) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/poe-049bc1541e21e0c3) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/runtime_upgrade-e74911ac3b122840) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/tuxedo_core-3ab8267e7a21e02f) + +running 41 tests +test constraint_checker::testing::test_checker_fails ... ok +test constraint_checker::testing::test_checker_passes ... ok +test dynamic_typing::tests::display_wrong_type_error ... ok +test dynamic_typing::tests::display_decoding_failed_error ... ok +test dynamic_typing::tests::extract_wrong_type ... ok +test dynamic_typing::tests::extract_works ... ok +test dynamic_typing::tests::extract_decode_fails ... ok +test executive::tests::apply_empty_works ... ok +test executive::tests::apply_valid_extrinsic_work ... ok +test executive::tests::apply_invalid_extrinsic_rejects ... ok +test executive::tests::apply_with_missing_input_fails ... ok +test executive::tests::execute_block_invalid_transaction - should panic ... ok +test executive::tests::execute_block_extrinsic_root_mismatch - should panic ... ok +test executive::tests::execute_block_state_root_mismatch - should panic ... ok +test executive::tests::close_block_works ... ok +test executive::tests::execute_block_with_transaction_works ... ok +test executive::tests::open_block_works ... ok +test executive::tests::update_storage_adds_output ... ok +test executive::tests::execute_empty_block_works ... ok +test executive::tests::update_storage_consumes_input ... ok +test executive::tests::validate_empty_works ... ok +test executive::tests::validate_with_constraint_error_fails ... ok +test executive::tests::validate_with_duplicate_input_fails ... ok +test executive::tests::validate_with_output_works ... ok +test executive::tests::validate_with_input_works ... ok +test executive::tests::validate_with_missing_input_works ... ok +test types::tests::extrinsic_no_signed_payload ... ok +test types::tests::extrinsic_is_signed_works ... ok +test verifier::test::sig_check_with_bad_sig ... ok +test executive::tests::validate_with_pre_existing_output_fails ... ok +test verifier::test::test_verifier_fails ... ok +test verifier::test::test_verifier_passes ... ok +test executive::tests::validate_with_unsatisfied_redeemer_fails ... ok +test verifier::test::threshold_multisig_bogus_redeemer_encoding_fails ... ok +test verifier::test::sig_check_with_good_sig ... ok +test verifier::test::threshold_multisig_has_duplicate_signatories_fails ... ok +test verifier::test::threshold_multisig_replay_sig_attack_fails ... ok +test verifier::test::threshold_multisig_not_enough_sigs_fails ... ok +test verifier::test::up_for_grabs_always_verifies ... ok +test verifier::test::threshold_multisig_extra_sigs_still_passes ... ok +test verifier::test::threshold_multisig_with_enough_sigs_passes ... ok + +test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/tuxedo_template_runtime-bd5b9c6273e52f6b) + +running 2 tests +test tests::utxo_money_test_genesis ... ok +test tests::utxo_money_multi_sig_genesis_test ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s + + Running unittests src/main.rs (target/debug/deps/tuxedo_template_wallet-e663e5727350b4e6) + +running 2 tests +test output_filter::tests::filter_prints ... ok +test output_filter::tests::filter_sig_check_works ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests aggregator + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests amoeba + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests derive-no-bound + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests kitties + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests money + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests node-template + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests poe + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests runtime-upgrade + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests tuxedo-core + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests tuxedo-template-runtime + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` From 032889b931a0202d195c00c73d26bb71fef497c9 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Sun, 14 May 2023 23:41:49 -0400 Subject: [PATCH 039/253] Delete tuxedo_3_keeganquigley.md --- deliveries/tuxedo_3_keeganquigley.md | 230 --------------------------- 1 file changed, 230 deletions(-) delete mode 100644 deliveries/tuxedo_3_keeganquigley.md diff --git a/deliveries/tuxedo_3_keeganquigley.md b/deliveries/tuxedo_3_keeganquigley.md deleted file mode 100644 index 6d6f0c7e2..000000000 --- a/deliveries/tuxedo_3_keeganquigley.md +++ /dev/null @@ -1,230 +0,0 @@ -```rust -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/amoeba-84e8bf0328439f3b) - -running 18 tests -test tests::creation_multiple_fails ... ok -test tests::creation_invalid_generation_fails ... ok -test tests::creation_valid_transaction_works ... ok -test tests::creation_with_badly_typed_output_fails ... ok -test tests::creation_with_inputs_fails ... ok -test tests::creation_with_no_output_fails ... ok -test tests::death_multiple_inputs ... ok -test tests::death_badly_typed_input ... ok -test tests::death_no_input ... ok -test tests::death_valid_transaction_works ... ok -test tests::death_with_output ... ok -test tests::mitosis_badly_typed_input ... ok -test tests::mitosis_badly_typed_output ... ok -test tests::mitosis_no_input ... ok -test tests::mitosis_too_many_outputs ... ok -test tests::mitosis_only_one_output ... ok -test tests::mitosis_valid_transaction_works ... ok -test tests::mitosis_wrong_generation ... ok - -test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/derive_no_bound-dbb3c33a916b13d8) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/kitties-7d7cd77f1b1d1170) - -running 26 tests -test tests::breed_dad_when_he_is_tired_fails ... ok -test tests::breed_two_dads_fails ... ok -test tests::breed_two_moms_fails ... ok -test tests::breed_mom_when_she_gave_birth_recently_fails ... ok -test tests::breed_wrong_input_type_fails ... ok -test tests::breed_wrong_output_type_fails ... ok -test tests::breed_happy_path_works ... ok -test tests::check_child_dad_parent_tired_fails ... ok -test tests::check_child_dna_incorrect_fails ... ok -test tests::check_child_free_breedings_incorrect_fails ... ok -test tests::check_dad_breedings_overflow_fails ... ok -test tests::check_dad_free_breedings_zero_fails ... ok -test tests::check_child_mom_parent_recently_gave_birth_fails ... ok -test tests::check_mom_breedings_overflow_fails ... ok -test tests::check_child_num_breedings_non_zero_fails ... ok -test tests::check_mom_free_breedings_zero_fails ... ok -test tests::check_new_dad_dna_doesnt_match_old_fails ... ok -test tests::check_new_dad_free_breedings_incorrect_fails ... ok -test tests::check_new_dad_num_breedings_incorrect_fails ... ok -test tests::check_new_mom_free_breedings_incorrect_fails ... ok -test tests::check_new_mom_dna_doesnt_match_old_fails ... ok -test tests::first_input_not_mom_fails ... ok -test tests::inputs_dont_contain_two_parents_fails ... ok -test tests::outputs_dont_contain_all_family_members_fails ... ok -test tests::first_output_not_mom_fails ... ok -test tests::check_new_mom_num_breedings_incorrect_fails ... ok - -test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/money-72ad746590f7c4eb) - -running 12 tests -test tests::mint_valid_transaction_works ... ok -test tests::mint_with_inputs_fails ... ok -test tests::mint_with_no_outputs_fails ... ok -test tests::mint_with_zero_value_output_fails ... ok -test tests::mint_wrong_output_type_fails ... ok -test tests::spend_no_inputs_fails ... ok -test tests::spend_no_outputs_is_a_burn ... ok -test tests::spend_valid_transaction_work ... ok -test tests::spend_wrong_input_type_fails ... ok -test tests::spend_wrong_output_type_fails ... ok -test tests::spend_with_zero_value_output_fails ... ok -test tests::spend_output_value_exceeds_input_value_fails ... ok - -test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/node_template-081cc689551156f4) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/main.rs (target/debug/deps/node_template-3acc397e363f5ad9) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/poe-049bc1541e21e0c3) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/runtime_upgrade-e74911ac3b122840) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running unittests src/lib.rs (target/debug/deps/tuxedo_core-3ab8267e7a21e02f) - -running 41 tests -test constraint_checker::testing::test_checker_fails ... ok -test constraint_checker::testing::test_checker_passes ... ok -test dynamic_typing::tests::display_wrong_type_error ... ok -test dynamic_typing::tests::display_decoding_failed_error ... ok -test dynamic_typing::tests::extract_wrong_type ... ok -test dynamic_typing::tests::extract_works ... ok -test dynamic_typing::tests::extract_decode_fails ... ok -test executive::tests::apply_empty_works ... ok -test executive::tests::apply_valid_extrinsic_work ... ok -test executive::tests::apply_invalid_extrinsic_rejects ... ok -test executive::tests::apply_with_missing_input_fails ... ok -test executive::tests::execute_block_invalid_transaction - should panic ... ok -test executive::tests::execute_block_extrinsic_root_mismatch - should panic ... ok -test executive::tests::execute_block_state_root_mismatch - should panic ... ok -test executive::tests::close_block_works ... ok -test executive::tests::execute_block_with_transaction_works ... ok -test executive::tests::open_block_works ... ok -test executive::tests::update_storage_adds_output ... ok -test executive::tests::execute_empty_block_works ... ok -test executive::tests::update_storage_consumes_input ... ok -test executive::tests::validate_empty_works ... ok -test executive::tests::validate_with_constraint_error_fails ... ok -test executive::tests::validate_with_duplicate_input_fails ... ok -test executive::tests::validate_with_output_works ... ok -test executive::tests::validate_with_input_works ... ok -test executive::tests::validate_with_missing_input_works ... ok -test types::tests::extrinsic_no_signed_payload ... ok -test types::tests::extrinsic_is_signed_works ... ok -test verifier::test::sig_check_with_bad_sig ... ok -test executive::tests::validate_with_pre_existing_output_fails ... ok -test verifier::test::test_verifier_fails ... ok -test verifier::test::test_verifier_passes ... ok -test executive::tests::validate_with_unsatisfied_redeemer_fails ... ok -test verifier::test::threshold_multisig_bogus_redeemer_encoding_fails ... ok -test verifier::test::sig_check_with_good_sig ... ok -test verifier::test::threshold_multisig_has_duplicate_signatories_fails ... ok -test verifier::test::threshold_multisig_replay_sig_attack_fails ... ok -test verifier::test::threshold_multisig_not_enough_sigs_fails ... ok -test verifier::test::up_for_grabs_always_verifies ... ok -test verifier::test::threshold_multisig_extra_sigs_still_passes ... ok -test verifier::test::threshold_multisig_with_enough_sigs_passes ... ok - -test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s - - Running unittests src/lib.rs (target/debug/deps/tuxedo_template_runtime-bd5b9c6273e52f6b) - -running 2 tests -test tests::utxo_money_test_genesis ... ok -test tests::utxo_money_multi_sig_genesis_test ... ok - -test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s - - Running unittests src/main.rs (target/debug/deps/tuxedo_template_wallet-e663e5727350b4e6) - -running 2 tests -test output_filter::tests::filter_prints ... ok -test output_filter::tests::filter_sig_check_works ... ok - -test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests aggregator - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests amoeba - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests derive-no-bound - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests kitties - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests money - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests node-template - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests poe - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests runtime-upgrade - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests tuxedo-core - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests tuxedo-template-runtime - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s -``` From 7cd3b6e1f26d1727c5b2392268e677630426a338 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 15 May 2023 15:58:24 -0400 Subject: [PATCH 040/253] Update tuxedo_3_keeganquigley.md --- evaluations/tuxedo_3_keeganquigley.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/evaluations/tuxedo_3_keeganquigley.md b/evaluations/tuxedo_3_keeganquigley.md index 6d6f0c7e2..f876a3f77 100644 --- a/evaluations/tuxedo_3_keeganquigley.md +++ b/evaluations/tuxedo_3_keeganquigley.md @@ -1,3 +1,22 @@ +# Evaluation + +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Web3Box.md +- **Milestone:** 1 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- | ------------- | ------------- | +| 0a. | License |
  • [x]
| [LICENSE file](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3/LICENSE) | Apache 2.0, as recommended | +| 0b. | Documentation |
  • [x]
| [Hosted Rustdocs](https://off-narrative-labs.github.io/Tuxedo) | We have detailed rustdocs throughout the project; they are also hosted. These docs serve as a technical and architectural reference. | +| 0c. | Testing |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#testing-and-code-quality) | Tests are run in CI and instructions for running them locally are in the readme. | +| 0d. | Docker |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#docker), [Published Images](https://github.com/orgs/Off-Narrative-Labs/packages) | We provide docker images for both the template node and the PoC wallet as well as instructions for how to test the node with them. | +| 0e. | Full Tutorial |
  • [x]
| [Starter Code](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/), [Complete Solutions](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/tree/dex-solutions), [Walkthrough Video](https://www.youtube.com/watch?v=bWA2ksTmNBU) | Instead of the simple tutorial about passing around tokens from the original spec, we expanded this into a complete tutorial about adding an additional token to your runtime and designing a decentralized exchange between the two tokens. This tutorial contains written instructions, starter code, complete unit tests so you know when you have solved each part, and a complete solution example. We also worked through most of this tutorial live on Substrate Seminar. +| 1. | Template Piece |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial#use-as-a-template), [Dex Template](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/blob/dex-tutorial/dex/src/lib.rs) | We've decided to use the same starting point for our tutorial and for a general-purpose template. As explained in the readme, this makes it easier for learners to complete the tutorial and continue naturally on to their project. It also makes it easier for downstream projects to get updates to tuxedo core. + +# General Notes + +## Tests ```rust test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s From 0e7a4a038706b1841f190d6357c0f3f2f5f62d4f Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 15 May 2023 17:24:11 -0300 Subject: [PATCH 041/253] Update aurras_phase_2_1_dsm-w3f.md --- evaluations/aurras_phase_2_1_dsm-w3f.md | 32 ++++++++++++++----------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/evaluations/aurras_phase_2_1_dsm-w3f.md b/evaluations/aurras_phase_2_1_dsm-w3f.md index 55d640573..2f36454c2 100644 --- a/evaluations/aurras_phase_2_1_dsm-w3f.md +++ b/evaluations/aurras_phase_2_1_dsm-w3f.md @@ -1,6 +1,6 @@ -# Evaluation + Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md - **Milestone:** 1 - **Kusama Identity:** Address @@ -9,18 +9,22 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
| https://github.com/HugoByte/aurras/blob/master/LICENSE | | -| 0b. | Documentation |
  • [ ]
| https://github.com/HugoByte/openwhisk-client-rust#usage
https://github.com/HugoByte/aurras/tree/next/workflow/composer#usage | Not fully evaluated yet | -| 0c. | Testing Guide |
  • [ ]
| https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test | Not fully evaluated yet | -| 1a. | Workflow Composer: Rust OpenWhisk Client Library |
  • [ ]
| https://github.com/HugoByte/openwhisk-client-rust | Not fully evaluated yet | -| 1b. | Workflow Composer: Composer |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/composer | Not fully evaluated yet | -| 1c. | Workflow Composer: Pipe |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | Not fully evaluated yet | -| 1d. | Workflow Composer: structured YAML file |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/examples/STRUCTURED_YAML.yaml | Not fully evaluated yet | -| 1e. | Workflow Composer: Concat Operator |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L362 | Not fully evaluated yet | -| 1f. | Workflow Composer: Map Operator |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L538 | Not fully evaluated yet | -| 2. | Predefined boiler plate |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/boilerplate | Not fully evaluated yet | -| 3a. | Flow Provider |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/flow.py | Not fully evaluated yet | -| 3b. | Task Provider |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/task.py | Not fully evaluated yet | -| 3c. | Workflow Provider |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/workflow.py | Not fully evaluated yet | +| 0b. | Documentation |
  • [x]
| https://github.com/HugoByte/openwhisk-client-rust#usage
https://github.com/HugoByte/aurras/tree/next/workflow/composer#usage | | +| 0c. | Testing Guide |
  • [x]
| https://github.com/HugoByte/openwhisk-client-rust#test
https://github.com/HugoByte/aurras/tree/next/workflow/composer#test | | +| 1a. | Workflow Composer: Rust OpenWhisk Client Library |
  • [x]
| https://github.com/HugoByte/openwhisk-client-rust | | +| 1b. | Workflow Composer: Composer |
  • [x]
| https://github.com/HugoByte/aurras/tree/next/workflow/composer | | +| 1c. | Workflow Composer: Pipe |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs#L85 | | +| 1d. | Workflow Composer: structured YAML file |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/examples/STRUCTURED_YAML.yaml | | +| 1e. | Workflow Composer: Concat Operator |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L362 | | +| 1f. | Workflow Composer: Map Operator |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/functions.py#L538 | | +| 2. | Predefined boiler plate |
  • [x]
| https://github.com/HugoByte/aurras/tree/next/workflow/boilerplate | | +| 3a. | Flow Provider |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/flow.py | | +| 3b. | Task Provider |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/task.py | | +| 3c. | Workflow Provider |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/providers/hooks/workflow.py | | + +## Evaluation V6 + +Thanks for providing the video tutorial. I was able to check the push notification this time, as in the video, and the application works fine. ## Evaluation V5 From b8ba7736d72b8b931d5ab03248658413c68ce61b Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 15 May 2023 18:30:42 -0400 Subject: [PATCH 042/253] Update awesome-polka_1_keeganquigley.md --- evaluations/awesome-polka_1_keeganquigley.md | 101 +++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/evaluations/awesome-polka_1_keeganquigley.md b/evaluations/awesome-polka_1_keeganquigley.md index dfc7f52ea..39ff865c4 100644 --- a/evaluations/awesome-polka_1_keeganquigley.md +++ b/evaluations/awesome-polka_1_keeganquigley.md @@ -17,6 +17,10 @@ # General Notes +Site is built with Vercel and pretty straight forward to navigate. It is a good proof of concept but right now links to just our blogs and wiki pages. Not much information in any of the categories. I hope to see a lot more information added in the future. Hopefully this will change as people sign up to contribute posts. + +## Tests + 8 unit tests pass (validation using Yup) ```js yarn run v1.22.15 @@ -38,3 +42,100 @@ Time: 1.782 s Ran all test suites. ✨ Done in 2.92s. ``` +## General Notes V2 +UPDATE: Unit tests were added for hooks: +```js +yarn test +yarn run v1.22.15 +warning ../package.json: No license field +$ jest + PASS src/utils/validation/tests/faqValidation.test.ts + validateFaq + ✓ valid faq object passes validation (2 ms) + ✓ faq object with missing required field fails validation (4 ms) + ✓ faq object with invalid question length fails validation (1 ms) + ✓ faq object with invalid answer length fails validation (1 ms) + ✓ faq object with too few questions fails validation + + PASS src/utils/validation/tests/jobsValidation.test.ts + validateJobs + ✓ valid jobs object passes validation (6 ms) + ✓ jobs object with missing required field fails validation (18 ms) + ✓ jobs object with invalid title length fails validation (3 ms) + ✓ jobs object with invalid link fails validation (2 ms) + ✓ jobs object with too few job postings fails validation + + PASS src/utils/validation/tests/teamValidation.test.ts + validateTeam + ✓ valid team object passes validation (2 ms) + ✓ team object with missing required field fails validation (7 ms) + ✓ team object with invalid LinkedIn URL fails validation + ✓ team object with too few members fails validation (1 ms) + + PASS src/utils/validation/tests/descriptionValidation.test.ts + Description validation + ✓ should require bio (5 ms) + ✓ should require bio to be at least 12 characters (1 ms) + ✓ should require bio to be no longer than 50 characters (1 ms) + ✓ should allow description to be empty (1 ms) + ✓ should allow description to be most 1500 characters (3 ms) + + PASS src/utils/validation/tests/profileValidation.test.ts + validateProfile + ✓ should validate a correct profile object (5 ms) + ✓ should throw an error when bio is missing (12 ms) + ✓ should throw an error when bio is too short (3 ms) + ✓ should throw an error when bio is too long (1 ms) + ✓ should throw an error when image is missing (1 ms) + ✓ should throw an error when image URL is too short (1 ms) + + PASS src/utils/validation/tests/githubRepoValidation.test.ts + validateGithubRepo + ✓ should validate a correct GitHub repository URL (4 ms) + ✓ should not validate an incorrect GitHub repository URL (3 ms) + ✓ should not validate a URL without a repository + ✓ should not validate an empty URL + ✓ should not validate a missing URL (1 ms) + ✓ should return specific error messages + + PASS src/utils/validation/tests/articleValidation.test.ts + validateArticle + ✓ should validate a correct article object (7 ms) + ✓ should throw an error when title is missing (10 ms) + + PASS src/utils/validation/tests/coingeckoTokenValidation.test.ts + ✓ validates a valid CoinGecko URL (8 ms) + ✓ does not validate an invalid CoinGecko URL (7 ms) + ✓ requires a CoinGecko URL (1 ms) + + PASS src/hooks/tests/useCheckProject.test.ts + useCheckProject + ✓ should set isLoading to false and not update project when there is no project (7 ms) + ✓ should not call readProjectAttribute when project is already in the store (2 ms) + ✓ should handle errors and set isLoading to false (1 ms) + + PASS src/hooks/tests/useCheckUser.test.ts + useCheckUser + ✓ should set isLoading to false and not update user when there is no user (7 ms) + + console.log + useCheckProject error + + at log (src/hooks/useCheckArticle.ts:17:15) + + console.log + useCheckProject error + + at log (src/hooks/useCheckArticle.ts:17:15) + + PASS src/hooks/tests/useCheckArticle.test.ts + useCheckArticle + ✓ should set isLoading to false and not update article when the article is not found (10 ms) + ✓ should handle errors and set isLoading to false (14 ms) + +Test Suites: 11 passed, 11 total +Tests: 42 passed, 42 total +Snapshots: 0 total +Time: 3.469 s +``` + From db7601100886667785016ddd6315f79c940cb05e Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 15 May 2023 19:59:50 -0400 Subject: [PATCH 043/253] Update tuxedo_3_keeganquigley.md --- evaluations/tuxedo_3_keeganquigley.md | 55 ++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/evaluations/tuxedo_3_keeganquigley.md b/evaluations/tuxedo_3_keeganquigley.md index f876a3f77..f1e8afe18 100644 --- a/evaluations/tuxedo_3_keeganquigley.md +++ b/evaluations/tuxedo_3_keeganquigley.md @@ -1,22 +1,58 @@ # Evaluation -- **Status:** In progress -- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Web3Box.md +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/tuxedo.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by keeganquigley | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- | ------------- | ------------- | -| 0a. | License |
  • [x]
| [LICENSE file](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3/LICENSE) | Apache 2.0, as recommended | -| 0b. | Documentation |
  • [x]
| [Hosted Rustdocs](https://off-narrative-labs.github.io/Tuxedo) | We have detailed rustdocs throughout the project; they are also hosted. These docs serve as a technical and architectural reference. | -| 0c. | Testing |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#testing-and-code-quality) | Tests are run in CI and instructions for running them locally are in the readme. | -| 0d. | Docker |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#docker), [Published Images](https://github.com/orgs/Off-Narrative-Labs/packages) | We provide docker images for both the template node and the PoC wallet as well as instructions for how to test the node with them. | -| 0e. | Full Tutorial |
  • [x]
| [Starter Code](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/), [Complete Solutions](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/tree/dex-solutions), [Walkthrough Video](https://www.youtube.com/watch?v=bWA2ksTmNBU) | Instead of the simple tutorial about passing around tokens from the original spec, we expanded this into a complete tutorial about adding an additional token to your runtime and designing a decentralized exchange between the two tokens. This tutorial contains written instructions, starter code, complete unit tests so you know when you have solved each part, and a complete solution example. We also worked through most of this tutorial live on Substrate Seminar. -| 1. | Template Piece |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial#use-as-a-template), [Dex Template](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/blob/dex-tutorial/dex/src/lib.rs) | We've decided to use the same starting point for our tutorial and for a general-purpose template. As explained in the readme, this makes it easier for learners to complete the tutorial and continue naturally on to their project. It also makes it easier for downstream projects to get updates to tuxedo core. - +| 0a. | License |
  • [x]
| [LICENSE file](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3/LICENSE) | Apache 2.0 | +| 0b. | Documentation |
  • [x]
| [Hosted Rustdocs](https://off-narrative-labs.github.io/Tuxedo) | Great docs and guide. | +| 0c. | Testing |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#testing-and-code-quality) | All tests pass. | +| 0d. | Docker |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo/blob/milestone-3#docker), [Published Images](https://github.com/orgs/Off-Narrative-Labs/packages) | Node and CLI both run successfully. | +| 0e. | Full Tutorial |
  • [x]
| [Starter Code](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/), [Complete Solutions](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/tree/dex-solutions), [Walkthrough Video](https://www.youtube.com/watch?v=bWA2ksTmNBU) | Ok. +| 1. | Template Piece |
  • [x]
| [Readme Section](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial#use-as-a-template), [Dex Template](https://github.com/Off-Narrative-Labs/Tuxedo-Order-Book-Dex-Tutorial/blob/dex-tutorial/dex/src/lib.rs) | Ok. # General Notes +Excellent work! Amazing docs and guides, and the tutorial is very helpful to see UTXO in action. Very cool to see it working in Substrate. + +I was able to run the node and CLI locally as well as with Docker. I was able to play with the CLI to create UXTO transactions: +```rust +docker run --network host ghcr.io/off-narrative-labs/tuxedo-wallet show-balance +WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested +[2023-05-15T22:40:04Z INFO tuxedo_template_wallet::sync] Initializing fresh sync from genesis 0xf9799acb9cd2371e4f2d986fd923999d985533909e459ea2bcda200a0577fd68 +[2023-05-15T22:40:04Z INFO tuxedo_template_wallet] Number of blocks in the db: 0 +[2023-05-15T22:40:04Z INFO tuxedo_template_wallet] Wallet database synchronized with node to height 35 +Balance Summary +0xd2bf…df67: 100 +-------------------- +total : 100 +``` +```rust +docker run --network host ghcr.io/off-narrative-labs/tuxedo-wallet show-all-outputs +WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested +[2023-05-15T23:23:47Z INFO tuxedo_template_wallet::sync] Initializing fresh sync from genesis 0xf9799acb9cd2371e4f2d986fd923999d985533909e459ea2bcda200a0577fd68 +[2023-05-15T23:23:47Z INFO tuxedo_template_wallet] Number of blocks in the db: 0 +[2023-05-15T23:23:48Z INFO tuxedo_template_wallet] Wallet database synchronized with node to height 910 +###### Unspent outputs ########### +000000000000000000000000000000000000000000000000000000000000000000000000: owner 0xd2bf4b844dfefd6772a8843e669f943408966a977e3ae2af1dd78e0f55f4df67, amount 100 +``` +```rust +docker run --network host ghcr.io/off-narrative-labs/tuxedo-wallet spend-coins -o 50 -o 40 -o 5 +WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested +[2023-05-15T23:25:16Z INFO tuxedo_template_wallet::sync] Initializing fresh sync from genesis 0xf9799acb9cd2371e4f2d986fd923999d985533909e459ea2bcda200a0577fd68 +[2023-05-15T23:25:16Z INFO tuxedo_template_wallet] Number of blocks in the db: 0 +[2023-05-15T23:25:17Z INFO tuxedo_template_wallet] Wallet database synchronized with node to height 939 +[2023-05-15T23:25:17Z INFO tuxedo_template_wallet::money] Node's response to spend transaction: Ok("0xd1de5722d3190c86990aea4e61d821c74932035f57d3a190d74b3cf91c73a169") +Created "dc867b7132dbb7951c30569f7d1f3bfd92bdf497a22720728cfe886d9777aef300000000" worth 50. owned by 0xd2bf…df67 +Created "dc867b7132dbb7951c30569f7d1f3bfd92bdf497a22720728cfe886d9777aef301000000" worth 40. owned by 0xd2bf…df67 +Created "dc867b7132dbb7951c30569f7d1f3bfd92bdf497a22720728cfe886d9777aef302000000" worth 5. owned by 0xd2bf…df67 +``` + ## Tests + +Unit tests all pass for the Crypto Kitties game, the CLI, Tuxedo Core, Money, and the runtime template: ```rust test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s @@ -247,3 +283,4 @@ running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` +Cargo Clippy comes back clean. From 939b0d6f7d8c9aab5bd7b38b30fe49a5c25d1143 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasia=20=C5=81ukasiewicz?= Date: Tue, 16 May 2023 08:41:05 +0200 Subject: [PATCH 044/253] High-availability validator setup - Milestone 2 Delivery of Milestone 2 --- ...ilability validator setup - Milestone 2.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 deliveries/High-availability validator setup - Milestone 2.md diff --git a/deliveries/High-availability validator setup - Milestone 2.md b/deliveries/High-availability validator setup - Milestone 2.md new file mode 100644 index 000000000..be339039f --- /dev/null +++ b/deliveries/High-availability validator setup - Milestone 2.md @@ -0,0 +1,38 @@ +# 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/bright/Open-Grants-Program/blob/94262f10e33bb646e767612dbbbb4553d7fa83f7/applications/High_availability_validator_setup.md +* **Milestone Number:** 2 + +**Context** + +The second milestone introduces a microservice which will test dynamic switching of the permission granting, during the validator's work. We will be able to test permission granting triggered whenever the block is produced, the vote is made on the finalized block (GRANDPA) and a message (`I'm online`) is sent for communicating liveness. Only the leader validator will be granted to run those actions. At worst, the author may miss a slot. + +The service should contain only basic logic (e.g. return `true` for node that asked first and `false` for following ones). + + + +**Deliverables** + +Milestone 2 is deliveried under the `milestone-2` branch on the [substrate-raft](https://github.com/bright/substrate-raft/blob/milestone-2) and the [substrate-raft-setup](https://github.com/bright/substrate-raft-setup/blob/milestone-2) repositories. + + +| Number | Deliverable | Notes | Testing | +| ------------- | ------------- | ------------- | ------------- | +| **0a.** | License | Apache 2.0 / GPLv3 / MIT / Unlicense | License can be found under: [substrate-raft](https://github.com/bright/substrate-raft/blob/milestone-2/LICENSE-GPL3), [substrate-raft-setup](https://github.com/bright/substrate-raft-setup/blob/milestone-2/LICENSE) +| **0b.** | Documentation | We will provide inline documentation.| +| **0c.** | Testing and Testing Guide | We will provide unit tests and the guidelines for running and testing it the scope. | Run `cargo test` in `substrate-raft`, `substrate-raft-setup` root directory and for testing authority-service in `substrate-raft-setup/bin/authority-service`. +| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | In the root directory of the `substrate-raft-setup` please run `bash docker/build.sh` +| 1. | Basic service | Create a microservice that accepts connections from the node.|[Authority-service](https://github.com/bright/substrate-raft-setup/blob/milestone-2/bin/authority-service) code +| 2. | Getting permission from microservice | Set up a custom node repository and write the `PermissionResolver` trait implementation for getting permission from the microservice. | [Repository](https://github.com/bright/substrate-raft-setup/blob/milestone-2) for the custom node, and the [implementation](https://github.com/bright/substrate-raft-setup/blob/milestone-2/permission_resolver/src/lib.rs) for the PermissionResolver. +| 3. | Allow as optional | The choice of using an outside decision making agent for block submission should be configurable in the cli. | Code for the [cli](https://github.com/bright/substrate-raft-setup/blob/milestone-2/node/src/cli.rs) +| 4. | Clean up substrate code | Remove deprecated cli options. | Changes in [code](https://github.com/bright/substrate-raft/commit/f4bab8f2a461271ab52ec6343934f6b84623b6c8) +| 5. | Integration test | A dockerized setup that allows to run custom node networks and a microservice in order to show that the created solution works. | Build docker as pointed in **0d** and than run `docker-compose up` in the root of the `substrate-raft-setup`. We are running here a `permission-service`, which is our `authority-service`, and the validator node. + + + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. \ No newline at end of file From ce9c2610739facd34506906f607595846063eea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasia=20=C5=81ukasiewicz?= Date: Tue, 16 May 2023 08:50:20 +0200 Subject: [PATCH 045/253] Update High-availability validator setup - Milestone 2.md --- deliveries/High-availability validator setup - Milestone 2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deliveries/High-availability validator setup - Milestone 2.md b/deliveries/High-availability validator setup - Milestone 2.md index be339039f..166f6278c 100644 --- a/deliveries/High-availability validator setup - Milestone 2.md +++ b/deliveries/High-availability validator setup - Milestone 2.md @@ -4,7 +4,7 @@ **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/bright/Open-Grants-Program/blob/94262f10e33bb646e767612dbbbb4553d7fa83f7/applications/High_availability_validator_setup.md +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/High_availability_validator_setup.md * **Milestone Number:** 2 **Context** @@ -35,4 +35,4 @@ Milestone 2 is deliveried under the `milestone-2` branch on the [substrate-raft] **Additional Information** -> Any further comments on the milestone that you would like to share with us. \ No newline at end of file +> Any further comments on the milestone that you would like to share with us. From 3b94d63b86d84d76fd050f08f860b5ccf31d425b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 16 May 2023 12:23:34 +0200 Subject: [PATCH 046/253] Substrate Tutorials M2 in progress --- evaluations/substrate-tutorials_2_semuelle.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 evaluations/substrate-tutorials_2_semuelle.md diff --git a/evaluations/substrate-tutorials_2_semuelle.md b/evaluations/substrate-tutorials_2_semuelle.md new file mode 100755 index 000000000..db1c96cbf --- /dev/null +++ b/evaluations/substrate-tutorials_2_semuelle.md @@ -0,0 +1,26 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/substrate-tutorials.md +- **Milestone:** 2 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 0a. | License |
  • [x]
| [LICENSE](https://github.com/rusty-crewmates/substrate-tutorials/blob/ab1a16c78dea616c9081d246288088fb6a9583ae/LICENSE) | Apache 2.0 | +| 0b. | Documentation |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises) | For each exercise we will provide a **README** that explains what to do, along with **inline instructions** for the user to follow in the code files | +| 0c. | Testing Guide |
  • [ ]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises), [solutions branch](https://github.com/rusty-crewmates/substrate-tutorials/tree/b8da46c6e4ddb57750c6b77759e6e52655950500/exercises) | — | +| 0d. | Docker |
  • [ ]
| — | Skipped, unnecessary | +| 0e. | Article |
  • [ ]
| link | Missing | +| 1. | Exercise `genesis_config` |
  • [ ]
| [exercises/ex08-genesis-config](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex08-genesis-config) | — | +| 2. | Exercise `mocks` |
  • [ ]
| [exercises/ex09-mock](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex09-mock) | — | +| 3. | Exercise `weight` |
  • [ ]
| [exercises/ex06-weights](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex06-weights) | — | +| 4. | Exercise `hooks` |
  • [ ]
| [exercises/ex05-hooks](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex05-hooks) | — | +| 5. | Exercise `imbalances` |
  • [ ]
| [exercises/ex07-imbalances](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex07-imbalances) | — | +| 6. | Exercise `external_workers` |
  • [ ]
| [exercises/ex10-offchain-worker](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex10-offchain-worker) | — | + + +## General Notes + +- — From 0573220401461778297a70ddaf252e826991b009 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 16 May 2023 17:51:12 -0300 Subject: [PATCH 047/253] Update diffy_chat_1_dsm-w3f.md --- evaluations/diffy_chat_1_dsm-w3f.md | 73 ++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 7 deletions(-) diff --git a/evaluations/diffy_chat_1_dsm-w3f.md b/evaluations/diffy_chat_1_dsm-w3f.md index fa261bc91..201753bdb 100644 --- a/evaluations/diffy_chat_1_dsm-w3f.md +++ b/evaluations/diffy_chat_1_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Diffy_chat.md - **Milestone:** 1 - **Kusama Identity:** Address @@ -8,15 +8,74 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | -| 0a.| License |
  • [ ]
| [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | DOTRTC Library license is missing | -| 0b.| Documentation |
  • [ ]
| [Readme.md](https://github.com/Belsoft-rs/diffychat-pallet#readme) | Not fully evaluated yet. | -| 0c.| Testing Guide |
  • [ ]
| [DOTRTC usage](https://github.com/Belsoft-rs/diffychat-dotrtc#usage); [Substrate pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | Need instructions how to run unit tests of DOTRTC. | +| 0a.| License |
  • [x]
| [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | | +| 0b.| Documentation |
  • [x]
| [Readme.md](https://github.com/Belsoft-rs/diffychat-pallet#readme) | | +| 0c.| Testing Guide |
  • [x]
| [DOTRTC usage](https://github.com/Belsoft-rs/diffychat-dotrtc#usage); [Substrate pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | | | 1.| Diffy chat pallet |
  • [x]
| [See here](https://github.com/Belsoft-rs/diffychat-pallet) | | -| 2.| DOTRTC library |
  • [ ]
| [See here](https://github.com/Belsoft-rs/diffychat-dotrtc) | Not fully evaluated yet. | -| 3.| HTML test page |
  • [ ]
| [See here](https://belsoft-rs.github.io/diffychat/index.html) | Only works in Chrome | +| 2.| DOTRTC library |
  • [x]
| [See here](https://github.com/Belsoft-rs/diffychat-dotrtc) | | +| 3.| HTML test page |
  • [x]
| [See here](https://belsoft-rs.github.io/diffychat/index.html) | | -## Evaluation V2 +## Evaluation V3 + +### License and Documentation + +DOTRTC Library now has a License. The documentation has instructions to run the unit test in the DOTRTC Library but doesn't mention `cargo test` in the Diffy Chat Pallet. Please update the documentation. + +### Manual Testing + +I tested again and the application now runs fine in Firefox. + +### Unit Test + +I ran `npm test` and got an error. I tested the application and it's working fine. Please fix this error. + +``` +user@localhost:~/Documents/diffychat/diffychat-dotrtc$ npm test + +> test +> jest + + FAIL __tests__/tests.js + ● Test suite failed to run + Jest encountered an unexpected token + + Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax. + + Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration. + + By default "node_modules" folder is ignored by transformers. + + Here's what you can do: + • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it. + • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript + • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config. + • If you need a custom transformation specify a "transform" option in your config. + • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option. + + You'll find more details and examples of these config options in the docs: + https://jestjs.io/docs/configuration + For information about custom transformations, see: + https://jestjs.io/docs/code-transformation + + Details: + + /home/user/Documents/diffychat/diffychat-dotrtc/__tests__/tests.js:1 + ({"Object.":function(module,exports,require,__dirname,__filename,jest){import BinData from "../src/BinData.js"; + ^^^^^^ + + SyntaxError: Cannot use import statement outside a module + + at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1495:14) + +Test Suites: 1 failed, 1 total +Tests: 0 total +Snapshots: 0 total +Time: 0.204 s +Ran all test suites. +``` + +## Evaluation V2 ### License and Documentation From 184a48b39931fcd66d40acc04c8e03ddfc290a43 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 16 May 2023 17:24:30 -0400 Subject: [PATCH 048/253] Update awesome-polka_1_keeganquigley.md --- evaluations/awesome-polka_1_keeganquigley.md | 23 +++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/evaluations/awesome-polka_1_keeganquigley.md b/evaluations/awesome-polka_1_keeganquigley.md index 39ff865c4..ccebf7b74 100644 --- a/evaluations/awesome-polka_1_keeganquigley.md +++ b/evaluations/awesome-polka_1_keeganquigley.md @@ -9,16 +9,29 @@ | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- | ------------- | ------------- | | **0a.** | License |
  • [x]
| [MIT](https://github.com/tolgayayci/awesome-polka/blob/dev/LICENSE) | | -| **0b.** | Documentation |
  • [x]
| [Awesome Polka Docs](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | | -| **0c.** | Testing and Testing Guide |
  • [x]
| [Guide](https://docs.awesomepolka.org/docs/technical-details/testing) | | -| **0e.** | Article |
  • [x]
| [Documentation Includes](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | | -| **1.** | UI & UX Development |
  • [x]
| **Home Page:** [Link](https://awesomepolka.org)

**Projects Page:** [Link](https://awesomepolka.org/projects)

**Project Detail Page:** [Link](https://awesomepolka.org/projects/awesome-polka)

**Articles Page:** [Link](https://awesomepolka.org/articles)

**Article Detail Page:** [Link](https://awesomepolka.org/articles/09885b15-3a16-478f-aa2f-d6929d2f05c8)

**Ranking Page:** [Link](https://awesomepolka.org/ranking)

**Learn Page:** [Link](https://awesomepolka.org/learn)

**UX Improvements & Testing:** [Link](https://docs.awesomepolka.org/docs/technical-details/testing)| -| *2.* | Project Owner Dashboard |
  • [x]
| [Dashboard Link](https://awesomepolka.org/dashboard/project) | | +| **0b.** | Documentation |
  • [x]
| [Awesome Polka Docs](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | Ok. | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Guide](https://docs.awesomepolka.org/docs/technical-details/testing) | Ok. | +| **0e.** | Article |
  • [x]
| [Documentation Includes](https://docs.awesomepolka.org/docs/awesome-polka/getting-started) | Ok. | +| **1.** | UI & UX Development |
  • [x]
| **Home Page:** [Link](https://awesomepolka.org)

**Projects Page:** [Link](https://awesomepolka.org/projects)

**Project Detail Page:** [Link](https://awesomepolka.org/projects/awesome-polka)

**Articles Page:** [Link](https://awesomepolka.org/articles)

**Article Detail Page:** [Link](https://awesomepolka.org/articles/09885b15-3a16-478f-aa2f-d6929d2f05c8)

**Ranking Page:** [Link](https://awesomepolka.org/ranking)

**Learn Page:** [Link](https://awesomepolka.org/learn)

**UX Improvements & Testing:** [Link](https://docs.awesomepolka.org/docs/technical-details/testing)| See below. +| *2.* | Project Owner Dashboard |
  • [x]
| [Dashboard Link](https://awesomepolka.org/dashboard/project) | See below. | # General Notes Site is built with Vercel and pretty straight forward to navigate. It is a good proof of concept but right now links to just our blogs and wiki pages. Not much information in any of the categories. I hope to see a lot more information added in the future. Hopefully this will change as people sign up to contribute posts. +Please address issues below: + +1. As far as I can tell, Awesome Polka is not available on the iOS app store or the Google Play store. The icons just point back to the domain. Is there a reason these are included when the mobile versions haven't been created yet? + +2. I'm able to log into the dashboard to modify the contents, however these categories don't exist on the site even though they say "published". Therefore I can't see my changes reflected. Shouldn't I be able to see these categories on the site? (i.e. FAQ, Team, Jobs, etc.) + +dash + +3. When trying to create an article, selecting "Cancel changes" and "Update" does nothing. I am also unable to upload a cover photo. Are these buttons supposed to work? + +![article](https://github.com/w3f/Grant-Milestone-Delivery/assets/35080151/33aebf00-7be6-4517-8df2-8acb098e47bc) + + ## Tests 8 unit tests pass (validation using Yup) From dce949cb9e1ad1e25976df2bedeb50a9d74d33ca Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Wed, 17 May 2023 13:40:33 +0500 Subject: [PATCH 049/253] Galaxy Evaluation Milestone 1 (#851) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [ADD] * galaxy-eval * [UPDATE] * evaluation * Update evaluations/galaxy_1_ali-usama.md * Update evaluations/galaxy_1_ali-usama.md * Update evaluations/galaxy_1_ali-usama.md * Update evaluations/galaxy_1_ali-usama.md * Update evaluations/galaxy_1_ali-usama.md --------- Co-authored-by: Sebastian Müller --- evaluations/galaxy_1_ali-usama.md | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 evaluations/galaxy_1_ali-usama.md diff --git a/evaluations/galaxy_1_ali-usama.md b/evaluations/galaxy_1_ali-usama.md new file mode 100644 index 000000000..c9a3e5641 --- /dev/null +++ b/evaluations/galaxy_1_ali-usama.md @@ -0,0 +1,41 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** [Galaxy](https://github.com/w3f/Grants-Program/blob/master/applications/galaxy.md) +- **Milestone:** 1 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** [NFT Infra](https://github.com/w3f/Grant-Milestone-Delivery/pull/840) + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|--------------------------|------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------| +| 0a. | Licence |
  • [x]
| [MIT](https://github.com/7flash/galaxy-polkadot/blob/d29439b081e9d71d9915b68d2ea1edfb6dd6ab7d/LICENSE) | Correct Licence | +| 0b. | Documentation |
  • [x]
| [Video Tutorial](https://youtu.be/WOQvxZCiU0Q) [ReadMe](https://github.com/7flash/galaxy-polkadot/blob/d29439b081e9d71d9915b68d2ea1edfb6dd6ab7d/README.md) | Documentation is satisfactory plus the video tutorial is also helpful | +| 0c. | Testing & Testing Guide |
  • [x]
| [Tests](https://github.com/7flash/galaxy-polkadot/tree/master#running-the-tests) | Test cases passed. Output attached below | +| 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/7flash/galaxy-polkadot/blob/d29439b081e9d71d9915b68d2ea1edfb6dd6ab7d/Dockerfile) | Fixed in the recent commit. | +| 1. | Frontend: Galaxy Web App |
  • [x]
| [Src](https://github.com/7flash/galaxy-polkadot/tree/d29439b081e9d71d9915b68d2ea1edfb6dd6ab7d/src) | Features listed in the application are working fine | + + +## General Notes + +## Update 17th May 2023 +Added unit tests. + +## Update 4th May 2023 +Licence file is added in the recent commits and the previous mentioned issues are fixed too, so the delivery status is changed to `Accepted`. + +## 3rd May 2023 +The repo is well-structured and well-documented, and the features listed in the application are working fine. However, there is no Licence file in the repo and it'll also be better if there is some helpful documentation regarding docker. +## `yarn test` output + +```console +$ yarn test + PASS tests/integration.test.js + GalaxyUI + ✓ renders the UI correctly (1969 ms) + +Test Suites: 1 passed, 1 total +Tests: 1 passed, 1 total +Snapshots: 0 total +Time: 2.542 s, estimated 6 s +Ran all test suites. +``` \ No newline at end of file From 357c59e0865963bd693102c6599af20f81e986a5 Mon Sep 17 00:00:00 2001 From: Igor Berlenko Date: Wed, 17 May 2023 16:45:46 +0800 Subject: [PATCH 050/253] Create galaxy-1.md (#845) * Create galaxy-1.md * Update galaxy-1.md --- deliveries/galaxy-1.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 deliveries/galaxy-1.md diff --git a/deliveries/galaxy-1.md b/deliveries/galaxy-1.md new file mode 100644 index 000000000..fff62b807 --- /dev/null +++ b/deliveries/galaxy-1.md @@ -0,0 +1,17 @@ +# 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/galaxy.md +* **Milestone Number:** 1 + +**Context** (optional) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|-----|-----------|-------------|-----| +| 1. | Frontend: Galaxy Web App | https://github.com/7flash/galaxy-polkadot/tree/master | includes docs and tests | + +**Additional Information** +Demo Video: https://youtu.be/WOQvxZCiU0Q From af3459a35f6f5b61c852a7194e19dc33089cf9d9 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 17 May 2023 17:47:48 -0400 Subject: [PATCH 051/253] Update awesome-polka_1_keeganquigley.md --- evaluations/awesome-polka_1_keeganquigley.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/evaluations/awesome-polka_1_keeganquigley.md b/evaluations/awesome-polka_1_keeganquigley.md index ccebf7b74..0894045d7 100644 --- a/evaluations/awesome-polka_1_keeganquigley.md +++ b/evaluations/awesome-polka_1_keeganquigley.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Awesome-Polka.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by keeganquigley @@ -19,6 +19,8 @@ Site is built with Vercel and pretty straight forward to navigate. It is a good proof of concept but right now links to just our blogs and wiki pages. Not much information in any of the categories. I hope to see a lot more information added in the future. Hopefully this will change as people sign up to contribute posts. +**UPDATE:**: Below issues have been resolved. I can now create article posts and the app store icons have been removed. + Please address issues below: 1. As far as I can tell, Awesome Polka is not available on the iOS app store or the Google Play store. The icons just point back to the domain. Is there a reason these are included when the mobile versions haven't been created yet? From dcb5389756cd1e23570b9105c809074c77767b98 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 17 May 2023 17:48:56 -0400 Subject: [PATCH 052/253] Update awesome-polka_1_keeganquigley.md --- evaluations/awesome-polka_1_keeganquigley.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/evaluations/awesome-polka_1_keeganquigley.md b/evaluations/awesome-polka_1_keeganquigley.md index 0894045d7..16b1bccc3 100644 --- a/evaluations/awesome-polka_1_keeganquigley.md +++ b/evaluations/awesome-polka_1_keeganquigley.md @@ -19,8 +19,6 @@ Site is built with Vercel and pretty straight forward to navigate. It is a good proof of concept but right now links to just our blogs and wiki pages. Not much information in any of the categories. I hope to see a lot more information added in the future. Hopefully this will change as people sign up to contribute posts. -**UPDATE:**: Below issues have been resolved. I can now create article posts and the app store icons have been removed. - Please address issues below: 1. As far as I can tell, Awesome Polka is not available on the iOS app store or the Google Play store. The icons just point back to the domain. Is there a reason these are included when the mobile versions haven't been created yet? @@ -58,7 +56,10 @@ Ran all test suites. ✨ Done in 2.92s. ``` ## General Notes V2 -UPDATE: Unit tests were added for hooks: + +**UPDATE:** Above issues have been resolved. I can now create article posts and the app store icons have been removed. + +**UPDATE:** Unit tests were added for hooks: ```js yarn test yarn run v1.22.15 From 6309790ea5062633a2026b7e613f6122e90b51ea Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Wed, 17 May 2023 20:27:36 -0300 Subject: [PATCH 053/253] Update polkaflow_1_dsm-w3f.md --- evaluations/polkaflow_1_dsm-w3f.md | 70 +++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/evaluations/polkaflow_1_dsm-w3f.md b/evaluations/polkaflow_1_dsm-w3f.md index ca75d75e9..5a2ec58a1 100644 --- a/evaluations/polkaflow_1_dsm-w3f.md +++ b/evaluations/polkaflow_1_dsm-w3f.md @@ -9,30 +9,58 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
|[Frontend License](https://github.com/justmert/eco-flow-frontend/blob/master/LICENSE)
[Backend License](https://github.com/justmert/eco-flow-backend/blob/master/LICENSE)| | -| 0b. | Documentation |
  • [ ]
|[Frontend Documentation](https://github.com/justmert/eco-flow-frontend/blob/master/README.md)
[Backend Documentation](https://github.com/justmert/eco-flow-backend/blob/master/README.md)| Not fully evaluated yet | -| 0c. | Testing and Testing Guide |
  • [ ]
| [Backend Repo - Testing](https://github.com/justmert/eco-flow-backend#test-the-app) | Not fully evaluated yet | -| 0d. | Docker |
  • [ ]
| | Not fully evaluated yet | -| 1. | Database |
  • [ ]
|[PolkaFlow Firebase Database Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/App.js)| Not fully evaluated yet | -| 2. | Python Backend |
  • [ ]
|[Backend Repo](https://github.com/justmert/eco-flow-backend)| Need .env example | -| 3. | Frontend: Dashboard Page
Backend: Data Process - (Star Count) |
  • [ ]
|[PolkaFlow Website Dashboard Page](https://polkaflow.xyz/dashboard/substrate) | Not fully evaluated yet | -| 4. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Commit History) |
  • [ ]
|[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 5. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Code Frequency) |
  • [ ]
|[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 6. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Top Contributors) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 7. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Activity) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | Not fully evaluated yet | -| 8. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Count) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 9. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Issues) |
  • [ ]
| [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 10. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Commits) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | Not fully evaluated yet | -| 11. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Pull Request Count) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 12. | Frontend: Project Page
Backend: Data Process - (Pull Request Activity) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 13. | Frontend: Project Page
Backend: Data Process - (Project Info Card) |
  • [ ]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| Not fully evaluated yet | -| 14. | Frontend: Project Page
Backend: Data Process - (Recent Stargazing) |
  • [ ]
| [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | Not fully evaluated yet | -| 15. | Frontend: Project List Page |
  • [ ]
| [PolkaFlow Website Projects Page](https://polkaflow.xyz/projects)| Not fully evaluated yet | +| 0b. | Documentation |
  • [x]
|[Frontend Documentation](https://github.com/justmert/eco-flow-frontend/blob/master/README.md)
[Backend Documentation](https://github.com/justmert/eco-flow-backend/blob/master/README.md)| | +| 0c. | Testing and Testing Guide |
  • [x]
| [Backend Repo - Testing](https://github.com/justmert/eco-flow-backend#test-the-app) | | +| 0d. | Docker |
  • [x]
| | | +| 1. | Database |
  • [x]
|[PolkaFlow Firebase Database Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/App.js)| | +| 2. | Python Backend |
  • [x]
|[Backend Repo](https://github.com/justmert/eco-flow-backend)| | +| 3. | Frontend: Dashboard Page
Backend: Data Process - (Star Count) |
  • [x]
|[PolkaFlow Website Dashboard Page](https://polkaflow.xyz/dashboard/substrate) | | +| 4. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Commit History) |
  • [x]
|[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 5. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Code Frequency) |
  • [x]
|[PolkaFlow Website Example Project](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 6. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Top Contributors) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 7. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Activity) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | | +| 8. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Issue Count) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 9. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Issues) |
  • [x]
| [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 10. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Recent Commits) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | | +| 11. | Frontend: Dashboard/Project Pages
Backend: Data Process - (Pull Request Count) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 12. | Frontend: Project Page
Backend: Data Process - (Pull Request Activity) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 13. | Frontend: Project Page
Backend: Data Process - (Project Info Card) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | +| 14. | Frontend: Project Page
Backend: Data Process - (Recent Stargazing) |
  • [x]
| [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | | +| 15. | Frontend: Project List Page |
  • [x]
| [PolkaFlow Website Projects Page](https://polkaflow.xyz/projects)| | | 16. | Integrate: Algolia |
  • [ ]
| [Frontend Repo - Algolia Search Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/components/Layouts/Search/search.js) | Not fully evaluated yet | | 17. | Frontend: Categorization |
  • [ ]
|[Frontend Repo - Typeform Integration Line ](https://github.com/justmert/eco-flow-frontend/blob/170707defb2e00fbb475a7e338593fd80c343636/src/components/Layouts/Navbar/navbar.js#L96) | Not fully evaluated yet | | 18. | Integrate: Typeform |
  • [ ]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | Not fully evaluated yet | -| 19. | Integrate: Google Analytics |
  • [ ]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | Not fully evaluated yet | -| 20. | Backend: Schedule |
  • [ ]
| [Backend Repo - Schedule](https://github.com/justmert/eco-flow-backend/blob/master/main.py) | Not fully evaluated yet | -| 21. | Frontend: UX & UI |
  • [ ]
| [PolkaFlow Website](https://polkaflow.xyz/)| Not fully evaluated yet | +| 19. | Integrate: Google Analytics |
  • [x]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | | +| 20. | Backend: Schedule |
  • [x]
| [Backend Repo - Schedule](https://github.com/justmert/eco-flow-backend/blob/master/main.py) | | +| 21. | Frontend: UX & UI |
  • [x]
| [PolkaFlow Website](https://polkaflow.xyz/)| | + +## Evaluation V2 + +### Backend + +To successfully run the command `python3 seed.py --ecosystem `, I needed to put "polka-" in the name of the collections in Firebase, for example, "polka-repositories-data". + +After that, I was able to successfully run the backend and the Firebase has been updated with the information on paritytech/substrate, paritytech/polkadot, and paritytech/ink. + +Please explain in the documentation what `` means and how to setup a value for it . + + +### Frontend + +I was able to view the dashboard and the project page but when I tried to view the projects list I got a blank page. That occurred because the `polka-repositories-info` in the Firebase had a document to permit the collection creation. After excluding this document on Firebase, the page worked fine. I could check all the information on these pages. + +I tried to search "substrate" or other repository names but the search didn't returned anything. Algolia has information about the substrate and polkadot but not about ink. I also received no error in the developer tools that helped me to solve this problem. + +![image (19)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/310b909e-53e0-4ed6-be8e-c9cd45d3df0f) + + +I checked the submit using the typeform and got this page: + + +![image (20)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/87298546-3be1-4111-93b9-a171b5f0a961) + + +I would like to know if Typeform and Algolia integration need more configuration and if it is possible to test the Typeform locally. ## Evaluation V1 From 5b86af17e52693f6b1c7ba8bd86c0e778ad0253a Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 18 May 2023 14:57:57 -0300 Subject: [PATCH 054/253] Update FIAT-on-off-ramp_3_dsm-w3f.md --- evaluations/FIAT-on-off-ramp_3_dsm-w3f.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/evaluations/FIAT-on-off-ramp_3_dsm-w3f.md b/evaluations/FIAT-on-off-ramp_3_dsm-w3f.md index 51088b941..eb5bd4b50 100644 --- a/evaluations/FIAT-on-off-ramp_3_dsm-w3f.md +++ b/evaluations/FIAT-on-off-ramp_3_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Open-Grants-Program/blob/master/applications/FIAT-on-off-ramp.md - **Milestone:** 3 - **Kusama Identity:** Address @@ -10,9 +10,19 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
| Unlicense | | 0b. | Tutorial |
  • [x]
| Tutorial is provided in the [`/ebics-demo/DEMO.md`](https://github.com/element36-io/ocw-ebics/blob/main/ebics-demo/DEMO.md) file. | -| 1. | Buy me a coffee dApp |
  • [ ]
| A decentralized [application](https://github.com/element36-io/ocw-ebics/tree/main/ebics-demo) is provided, which allows users to buy someone a coffee or simply donate to support their cause. Users can donate by either sending stablecoins or fiat to the recipient's on-chain account or bank account (IBAN). The recipient can then withdraw the funds to their bank account or send them to someone else. | Some problems during the tests +| 1. | Buy me a coffee dApp |
  • [x]
| A decentralized [application](https://github.com/element36-io/ocw-ebics/tree/main/ebics-demo) is provided, which allows users to buy someone a coffee or simply donate to support their cause. Users can donate by either sending stablecoins or fiat to the recipient's on-chain account or bank account (IBAN). The recipient can then withdraw the funds to their bank account or send them to someone else. | | 2. | Docker-Compose: node & Dapp |
  • [x]
| Instead of `docker-compose` a [Makefile](https://github.com/element36-io/ocw-ebics/blob/main/Makefile) is provided with the commands that launch the chain and the demo app | +## Evaluation V2 + +### Manual Testing + +I tested again, and the donations from Alice and Bob have increased the total donations. In this way, the application is working fine. + +I found a small problem in the application that could be fixed. It's still possible to set a negative value to total donations. This negative value occurs because the substrate node has an initial balance for Jack, and the application doesn't check this balance at the start considering it as zero. In this way, it is possible to withdraw more than the balance that is shown in the frontend. It would be nice to fix this problem. + +The application uses an external EBICS service which was validated in Milestone 1. So no problem to use this external service for the test. + ## Evaluation V1 ### Automated Testing From b49eefe2f2358cc6e4ed6bb9706b8cc9d7e028a2 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 18 May 2023 16:43:25 -0400 Subject: [PATCH 055/253] Create kuma-cross-chain-wallet_2_keeganquigley.md --- ...kuma-cross-chain-wallet_2_keeganquigley.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 evaluations/kuma-cross-chain-wallet_2_keeganquigley.md diff --git a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md new file mode 100644 index 000000000..d75d8f769 --- /dev/null +++ b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md @@ -0,0 +1,29 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md +- **Milestone:** 1 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- |------------- | ------------- | +| 0a. | License |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | +| 0b. | Documentation |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | | +| 0c. | Testing Guide |
  • [x]
| https://github.com/blockcoders/kuma-wallet#running-locally | | +| 1. | Custom tokens |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/manageAssets/ManageAssets.tsx | | +| 2. | Mesasges EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/signMessage/SignMessage.tsx | | +| 3. | Transfer EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/send/Send.tsx | | +| 4. | Transaction history |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/entries/background/index.ts | | +| 5. | Explorer link |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/constants/chains.ts | | + +# General + +## Tests + +All 411 unit tests pass: +```js + Test Files 56 passed (56) + Tests 411 passed (411) + Start at 16:35:02 + Duration 10.59s (transform 1.12s, setup 5.28s, collect 11.92s, tests 3.88s, environment 10.89s, prepare 2.42s) +``` From b2ce086ef201609e64e55cc4562e45a7dd7eb06c Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 18 May 2023 17:09:53 -0400 Subject: [PATCH 056/253] Update kuma-cross-chain-wallet_2_keeganquigley.md update --- ...kuma-cross-chain-wallet_2_keeganquigley.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md index d75d8f769..b094ae6ab 100644 --- a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md @@ -18,8 +18,13 @@ # General +Very well built wallet! It is sleek and I like it's simplicity, has a similar feel to using MetaMask. I was able to create and import test wallets and the UI is great, I didn't encounter any issues. I would love to see the addition of QR code functionality. I am also excited to try the XCM functionality in the next milestone. + + ## Tests +Well documented code and tests. All GH action CI is successful. + All 411 unit tests pass: ```js Test Files 56 passed (56) @@ -27,3 +32,149 @@ All 411 unit tests pass: Start at 16:35:02 Duration 10.59s (transform 1.12s, setup 5.28s, collect 11.92s, tests 3.88s, environment 10.89s, prepare 2.42s) ``` + +Good coverage: +```js + % Coverage report from c8 +-------------------------------|---------|----------|---------|---------|-------------------------------------------------- +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +-------------------------------|---------|----------|---------|---------|-------------------------------------------------- +All files | 92.81 | 78.31 | 85.07 | 92.81 | + src | 100 | 95.69 | 100 | 100 | + Extension.ts | 100 | 95.69 | 100 | 100 | 63,83,245,289 + src/accounts | 98.11 | 66 | 93.33 | 98.11 | + AccountManager.ts | 98 | 65.3 | 93.33 | 98 | 104,129,143-144 + types.ts | 100 | 100 | 100 | 100 | + src/hooks | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/hooks/common | 98.91 | 90.9 | 100 | 98.91 | + useCopyToClipboard.tsx | 98.03 | 80 | 100 | 98.03 | 20 + useLoading.tsx | 100 | 100 | 100 | 100 | + useToast.tsx | 100 | 100 | 100 | 100 | + src/i18n | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/pages/accountForm | 81.38 | 51.16 | 15.38 | 81.38 | + AccountForm.tsx | 81.38 | 51.16 | 15.38 | 81.38 | ...3-250,281-282,309,340-341,347,376-377,390-402 + src/pages/addAccount | 100 | 100 | 100 | 100 | + AddAccount.tsx | 100 | 100 | 100 | 100 | + OptionButton.tsx | 100 | 100 | 100 | 100 | + src/pages/balance/components | 93.13 | 53.48 | 65.62 | 93.13 | + AccountList.tsx | 91.05 | 62.5 | 33.33 | 91.05 | 27-28,47,93,96-98,101-104 + AccountSelected.tsx | 100 | 50 | 100 | 100 | 13 + Activity.tsx | 94.03 | 56.66 | 100 | 94.03 | 62-63,76-77,88,91,101,115,117,119,157-159 + Assets.tsx | 96.15 | 42.85 | 25 | 96.15 | 43-45,52-53 + ChainSelector.tsx | 94.76 | 73.68 | 87.5 | 94.76 | 68-70,73,93-94,164-166,185 + ConfirmChainChangeModal.tsx | 84.05 | 11.11 | 50 | 84.05 | 72,80,89-91,112-128 + TotalBalance.tsx | 100 | 50 | 33.33 | 100 | 28-35 + src/pages/manageAssets | 96.75 | 46.15 | 50 | 96.75 | + ManageAssets.tsx | 96.75 | 46.15 | 50 | 96.75 | 52,54-55,87-88 + src/pages/receive | 100 | 33.33 | 50 | 100 | + Receive.tsx | 100 | 33.33 | 50 | 100 | 20-41 + src/pages/send/components | 91.2 | 72.89 | 70.58 | 91.2 | + ConfirmTx.tsx | 100 | 33.33 | 50 | 100 | 36-82 + Destination.tsx | 83.9 | 77.41 | 57.14 | 83.9 | 33-39,46-52,58-63,138-146,160-163 + EvmForm.tsx | 81.73 | 59.09 | 100 | 81.73 | 81,125-155,157,181,193-200 + Fees.tsx | 100 | 100 | 100 | 100 | + SelectableAsset.tsx | 100 | 87.5 | 100 | 100 | 27 + SelectableChain.tsx | 100 | 100 | 100 | 100 | + WasmForm.tsx | 93.18 | 69.69 | 66.66 | 93.18 | 97-99,160-165,170-171,217-218,234-238 + src/pages/settings | 90.97 | 71.79 | 40.54 | 90.97 | + Contacts.tsx | 92.39 | 70.37 | 44.44 | 92.39 | 42-48,83-84,99,107-113,124,221-222 + General.tsx | 93.04 | 81.48 | 66.66 | 93.04 | 48-49,68-76,93-94 + Security.tsx | 88.91 | 62.5 | 26.31 | 88.91 | ...,95-96,99-102,110-111,118-124,166-167,190-192 + src/pages/signIn | 90.21 | 66.66 | 57.14 | 90.21 | + SignIn.tsx | 90.21 | 66.66 | 57.14 | 90.21 | 26-27,37-39,42-43,70-71 + src/pages/signMessage | 98.31 | 57.14 | 100 | 98.31 | + SignMessage.tsx | 98.31 | 57.14 | 100 | 98.31 | 76-77 + src/pages/welcome | 100 | 100 | 100 | 100 | + Welcome.tsx | 100 | 100 | 100 | 100 | + src/providers | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/providers/accountProvider | 76.69 | 72.72 | 83.33 | 76.69 | + AccountProvider.tsx | 76.58 | 72.72 | 83.33 | 76.58 | 50-62,64,97-99,112-116,136-137,141-162,184-185 + index.ts | 100 | 100 | 100 | 100 | + src/providers/assetProvider | 87 | 65.62 | 100 | 87 | + AssetProvider.tsx | 86.98 | 65.62 | 100 | 86.98 | ...6,288-289,312-313,337-362,386-387,441-442,511 + index.ts | 100 | 100 | 100 | 100 | + src/providers/authProvider | 100 | 95.23 | 100 | 100 | + AuthProvider.tsx | 100 | 95.23 | 100 | 100 | 79 + index.ts | 100 | 100 | 100 | 100 | + src/providers/networkProvider | 93.19 | 81.39 | 87.5 | 93.19 | + NetworkProvider.tsx | 93.16 | 81.39 | 87.5 | 93.16 | 132-133,177-178,188-189,193-202 + index.ts | 100 | 100 | 100 | 100 | + src/providers/txProvider | 92.85 | 75 | 87.5 | 92.85 | + TxProvider.tsx | 92.79 | 75 | 87.5 | 92.79 | 52,102,113-114,138-139,177-186 + index.ts | 100 | 100 | 100 | 100 | + src/storage | 100 | 97.5 | 100 | 100 | + Auth.ts | 100 | 100 | 100 | 100 | + Storage.ts | 100 | 92.3 | 100 | 100 | 22 + src/storage/entities | 96.15 | 92.85 | 96.39 | 96.15 | + Account.ts | 100 | 100 | 100 | 100 | + Accounts.ts | 90.9 | 95.65 | 87.5 | 90.9 | 43-46,49-52 + Assets.ts | 90.74 | 91.66 | 85.71 | 90.74 | 28-32 + BackUp.ts | 100 | 100 | 100 | 100 | + BaseEntity.ts | 100 | 100 | 100 | 100 | + CacheAuth.ts | 87.91 | 84.21 | 90.9 | 87.91 | 27-28,45-46,59-62,71-73 + Chains.ts | 98.26 | 93.54 | 100 | 98.26 | 111-112 + Keyring.ts | 100 | 88.88 | 100 | 100 | 21-22 + Network.ts | 100 | 90.9 | 100 | 100 | 33 + SelectedAccount.ts | 100 | 66.66 | 100 | 100 | 26-28 + TrustedSites.ts | 100 | 100 | 100 | 100 | + Vault.ts | 98.11 | 96.77 | 100 | 98.11 | 35-36 + src/storage/entities/activity | 97.5 | 79.31 | 87.5 | 97.5 | + Activity.ts | 95.71 | 77.77 | 87.5 | 95.71 | 17-18,36 + types.ts | 100 | 100 | 100 | 100 | + src/storage/entities/registry | 96.15 | 77.14 | 100 | 96.15 | + Contact.ts | 100 | 100 | 100 | 100 | + Register.ts | 100 | 100 | 100 | 100 | + Registry.ts | 95.57 | 74.19 | 100 | 95.57 | 91-93,96-97 + src/storage/entities/settings | 100 | 96.42 | 100 | 100 | + LanguageSetting.ts | 100 | 100 | 100 | 100 | + Setting.ts | 100 | 100 | 100 | 100 | + Settings.ts | 100 | 93.75 | 100 | 100 | 66 + types.ts | 100 | 100 | 100 | 100 | + src/utils | 98.13 | 89.58 | 100 | 98.13 | + account-utils.ts | 100 | 100 | 100 | 100 | + assets.ts | 97.61 | 86.95 | 100 | 97.61 | 72-73 + constants.ts | 100 | 100 | 100 | 100 | + env.ts | 100 | 50 | 100 | 100 | 5 + i18n.ts | 100 | 100 | 100 | 100 | + utils.ts | 95.55 | 88.88 | 100 | 95.55 | 39-40 +-------------------------------|---------|----------|---------|---------|-------------------------------------------------- + +=============================== Coverage summary =============================== +Statements : 92.81% ( 6670/7186 ) +Branches : 78.31% ( 816/1042 ) +Functions : 85.07% ( 359/422 ) +Lines : 92.81% ( 6670/7186 ) +================================================================================ +``` +## Linting + +Consider fixing this warning about rules for next milestone: +``` +/Users/keeganquigley/kuma-wallet/src/Extension.ts + 227:73 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 311:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/entries/background/index.ts + 204:20 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/entries/scripts/contentScript.ts + 6:12 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/storage/entities/BaseEntity.ts + 12:45 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 15:18 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/storage/entities/CacheAuth.ts + 33:18 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/utils/assets.ts + 16:23 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/Users/keeganquigley/kuma-wallet/src/utils/utils.ts + 19:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +✖ 9 problems (0 errors, 9 warnings) +``` From 80de9e2a5b0382b2e4c58e4ff7e27f704ab39c5e Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 18 May 2023 17:11:33 -0400 Subject: [PATCH 057/253] Update kuma-cross-chain-wallet_2_keeganquigley.md --- .../kuma-cross-chain-wallet_2_keeganquigley.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md index b094ae6ab..8296ab489 100644 --- a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md @@ -8,13 +8,13 @@ | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- |------------- | ------------- | | 0a. | License |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | -| 0b. | Documentation |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | | -| 0c. | Testing Guide |
  • [x]
| https://github.com/blockcoders/kuma-wallet#running-locally | | -| 1. | Custom tokens |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/manageAssets/ManageAssets.tsx | | -| 2. | Mesasges EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/signMessage/SignMessage.tsx | | -| 3. | Transfer EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/send/Send.tsx | | -| 4. | Transaction history |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/entries/background/index.ts | | -| 5. | Explorer link |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/constants/chains.ts | | +| 0b. | Documentation |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | Looks good. | +| 0c. | Testing Guide |
  • [x]
| https://github.com/blockcoders/kuma-wallet#running-locally | Looks good. | +| 1. | Custom tokens |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/manageAssets/ManageAssets.tsx | Looks good. | +| 2. | Mesasges EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/signMessage/SignMessage.tsx | Looks good. | +| 3. | Transfer EVM - WASM |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/pages/send/Send.tsx | Looks good. | +| 4. | Transaction history |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/entries/background/index.ts | Looks good. | +| 5. | Explorer link |
  • [x]
| https://github.com/blockcoders/kuma-wallet/blob/main/src/constants/chains.ts | Looks good. | # General @@ -152,7 +152,7 @@ Lines : 92.81% ( 6670/7186 ) ## Linting Consider fixing this warning about rules for next milestone: -``` +```js /Users/keeganquigley/kuma-wallet/src/Extension.ts 227:73 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any 311:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any From 2aebb625a69285779d7a553757f013d243997c83 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 18 May 2023 17:17:16 -0400 Subject: [PATCH 058/253] Update kuma-cross-chain-wallet_2_keeganquigley.md --- evaluations/kuma-cross-chain-wallet_2_keeganquigley.md | 1 + 1 file changed, 1 insertion(+) diff --git a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md index 8296ab489..b8348b66e 100644 --- a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md @@ -178,3 +178,4 @@ Consider fixing this warning about rules for next milestone: ✖ 9 problems (0 errors, 9 warnings) ``` +Please note: No security audits were performed as a part of this evaluation. From 6dd6533861800bfdb2a36dae9a9d0b4657b2a0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20Jedli=C4=8Dka?= Date: Fri, 19 May 2023 11:32:47 +0200 Subject: [PATCH 059/253] calamar milestone 2 delivery --- deliveries/calamar-milestone_2.md | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 deliveries/calamar-milestone_2.md diff --git a/deliveries/calamar-milestone_2.md b/deliveries/calamar-milestone_2.md new file mode 100644 index 000000000..be9284156 --- /dev/null +++ b/deliveries/calamar-milestone_2.md @@ -0,0 +1,38 @@ +# 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/Calamar.md +* **Milestone Number:** 2 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [LICENSE](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/LICENSE.txt) | | +| 0b. | Documentation | [README](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md), [Calamar docs](https://docs.calamar.app/) | | +| 0c. | Testing Guide | [README#Test](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#test), [E2E tests](https://github.com/topmonks/calamar/tree/fc791d5ddc433cea71b3587dc0718c50a017c9ee/test/e2e), [GitHub workflow](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/.github/workflows/test-and-deploy.yml#L27), [Test reports](https://github.com/topmonks/calamar/deployments?environment=test-report#activity-log), [Screenshots](https://app.argos-ci.com/topmonks/calamar) | | +| 0d. | Docker | [Dockerfile](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/Dockerfile), [README#Docker](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#docker) | | +| 0e. | Article | [Article](https://medium.com/topmonks/calamar-block-explorer-milestone-2-finished-ca581f95301a) | | +| 1. | Account / Balance overview | [PR#142](https://github.com/topmonks/calamar/pull/142), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 2. | Account / Balance charts | [PR#143](https://github.com/topmonks/calamar/pull/143), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 3. | Account / Transfers list | [PR#134](https://github.com/topmonks/calamar/pull/134), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 4. | Account / Calls list | [PR#125](https://github.com/topmonks/calamar/pull/125), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 5. | Account / Identity info | [PR#150](https://github.com/topmonks/calamar/pull/150), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/EMRpBNnfAqRb62b14cxmnCdihtUjEeyh6tfyhGwnGwxjY8F) | | +| 6. | Chain dashboard / Stats | [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 7. | Chain dashboard / Asset value chart | [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 8. | Chain dashboard / Latest blocks | [PR#136](https://github.com/topmonks/calamar/pull/136), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 9. | Chain dashboard / Latest transfers | [PR#135](https://github.com/topmonks/calamar/pull/135), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 10. | Chain dashboard / Top holders | [PR#137](https://github.com/topmonks/calamar/pull/137), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | + +**Additional Information** + +> One more notable PR which is not among deliverables - Redesigned homepage: [PR#146](https://github.com/topmonks/calamar/pull/146), [Example](https://c5a84f4a.calamar.pages.dev) + +> Not all features are available to all the networks at this time. It is depended on the squids provided by Subsquid. It is prepared though, when the squids are ready it will work either immediately or with a little change in the code. + +The code in the time of delivery: https://github.com/topmonks/calamar/tree/fc791d5ddc433cea71b3587dc0718c50a017c9ee + +The deployed build in the time of delivery: https://c5a84f4a.calamar.pages.dev + +Production app: https://calamar.app From 2cd9724d8e7f2b1babf35f3c6685fdd2b324c3fa Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 19 May 2023 16:19:06 -0300 Subject: [PATCH 060/253] Create rv-kmir_1_dsm-w3f.md --- evaluations/rv-kmir_1_dsm-w3f.md | 184 +++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 evaluations/rv-kmir_1_dsm-w3f.md diff --git a/evaluations/rv-kmir_1_dsm-w3f.md b/evaluations/rv-kmir_1_dsm-w3f.md new file mode 100644 index 000000000..ca891045f --- /dev/null +++ b/evaluations/rv-kmir_1_dsm-w3f.md @@ -0,0 +1,184 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/rv-kmir.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| **0a.** | License |
  • [x]
| [BSD-3](https://github.com/runtimeverification/mir-semantics/blob/master/LICENSE) | | +| **0b.** | Documentation |
  • [ ]
|[kmir CLI instructions](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md) | Not fully evaluated yet | +| **0c.** | Testing and Testing Guide |
  • [ ]
| [Testing Instructions with Docker](https://github.com/runtimeverification/mir-semantics/tree/milestone2-deliverable#running-integration-tests-with-docker) | Need explanation about skipped tests | +| **0d.** | Docker |
  • [ ]
| [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/Dockerfile) | Not fully evaluated yet +| 1. | KMIR syntax |
  • [ ]
| [mir-syntax.k](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/k-src/mir-syntax.k) | Tests passing but small problems to fix. | +| 2. | **kmir** executable extension |
  • [ ]
| [**kmir parse** implementation](https://github.com/runtimeverification/mir-semantics/blob/bd09e9d1716904afbbab2c0e27735202689d788e/kmir/src/kmir/__main__.py#L23), [**kmir parse** examples](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md#examples) | Command failing | + +## Evaluation V1 + +### Testing + +When I ran the docker run command, I got this error: + +``` +user@localhost:~/Documents/kmir/mir-semantics$ docker run --name mir-semantics --rm -it -u user --workdir /home/user mir-semantics:$(cat ./deps/k_release) make -C kmir test-integration +make: Entering directory '/home/user/kmir' +poetry install +Creating virtualenv kmir-3fIw2bCi-py3.10 in /home/user/.cache/pypoetry/virtualenvs +Installing dependencies from lock file + +Unable to read the lock file (Invalid statement (at line 477, column 1)). +make: *** [Makefile:21: poetry-install] Error 1 +make: Leaving directory '/home/user/kmir' +``` + +This problem is because poetry.lock has some conflicts. I fixed this by keeping the more recent versions of the packages. Please fix this problem in the repository in the branch used for this delivery. + +The result of the test_parse.py was 3113 passed and 84 skipped. Could you explain better why these tests were skipped? Here is the list of the skipped tests: + +``` +compiletest-rs/ui/ufcs-polymorphic-paths.mir +compiletest-rs/ui/utf8_idents.mir +compiletest-rs/ui/weird-exprs.mir +compiletest-rs/ui/async-await/issue-105501.mir +compiletest-rs/ui/autoref-autoderef/autoderef-method-twice-but-not-thrice.mir +compiletest-rs/ui/cast/cast-rfc0401.mir +compiletest-rs/ui/const-generics/issue-70408.mir +compiletest-rs/ui/const-generics/generic_const_exprs/issue-100360.mir +compiletest-rs/ui/const-generics/issues/issue-87076.mir +compiletest-rs/ui/const-generics/min_const_generics/macro.mir +compiletest-rs/ui/consts/const-block-item-macro-codegen.mir +compiletest-rs/ui/consts/const-block-item.mir +compiletest-rs/ui/consts/const-block.mir +compiletest-rs/ui/consts/const-cast.mir +compiletest-rs/ui/consts/const-extern-function.mir +compiletest-rs/ui/consts/const-float-classify.mir +compiletest-rs/ui/consts/const-fn-val.mir +compiletest-rs/ui/consts/const-typeid-of-rpass.mir +compiletest-rs/ui/consts/const-vec-of-fns.mir +compiletest-rs/ui/consts/const_cmp_type_id.mir +compiletest-rs/ui/consts/ice-zst-static-access.mir +compiletest-rs/ui/consts/issue-104396.mir +compiletest-rs/ui/consts/issue-27890.mir +compiletest-rs/ui/consts/issue-58435-ice-with-assoc-const.mir +compiletest-rs/ui/consts/issue-73976-monomorphic.mir +compiletest-rs/ui/consts/unwind-abort.mir +compiletest-rs/ui/consts/const_constructor/const-construct-call.mir +compiletest-rs/ui/consts/const_in_pattern/issue-44333.mir +compiletest-rs/ui/deriving/issue-58319.mir +compiletest-rs/ui/destructuring-assignment/drop-order.mir +compiletest-rs/ui/drop/dynamic-drop.mir +compiletest-rs/ui/dyn-keyword/dyn-2015-no-warnings-without-lints.mir +compiletest-rs/ui/dyn-star/box.mir +compiletest-rs/ui/dyn-star/check-size-at-cast-polymorphic.mir +compiletest-rs/ui/dyn-star/const.mir +compiletest-rs/ui/dyn-star/dont-unsize-coerce-dyn-star.mir +compiletest-rs/ui/dyn-star/drop.mir +compiletest-rs/ui/dyn-star/dyn-star-to-dyn.mir +compiletest-rs/ui/dyn-star/issue-102430.mir +compiletest-rs/ui/dyn-star/make-dyn-star.mir +compiletest-rs/ui/dyn-star/method.mir +compiletest-rs/ui/dyn-star/return.mir +compiletest-rs/ui/dyn-star/syntax.mir +compiletest-rs/ui/errors/issue-89280-emitter-overflow-splice-lines.mir +compiletest-rs/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.mir +compiletest-rs/ui/extern/issue-64655-extern-rust-must-allow-unwind.mir +compiletest-rs/ui/fmt/format-args-capture.mir +compiletest-rs/ui/function-pointer/sized-ret-with-binder.mir +compiletest-rs/ui/functions-closures/closure-to-fn-coercion.mir +compiletest-rs/ui/generator/issue-53548-1.mir +compiletest-rs/ui/generic-associated-types/generic-associated-type-bounds.mir +compiletest-rs/ui/generic-associated-types/issue-80433-reduced.mir +compiletest-rs/ui/higher-rank-trait-bounds/issue-90177.mir +compiletest-rs/ui/hygiene/thread-local-not-in-prelude.mir +compiletest-rs/ui/impl-trait/closure-in-impl-trait-arg.mir +compiletest-rs/ui/impl-trait/closure-in-impl-trait.mir +compiletest-rs/ui/impl-trait/lifetimes.mir +compiletest-rs/ui/impl-trait/nesting.mir +compiletest-rs/ui/inference/type-infer-generalize-ty-var.mir +compiletest-rs/ui/iterators/issue-58952-filter-type-length.mir +compiletest-rs/ui/iterators/iter-map-fold-type-length.mir +compiletest-rs/ui/lifetimes/bare-trait-object-borrowck.mir +compiletest-rs/ui/lifetimes/bare-trait-object.mir +compiletest-rs/ui/macros/issue-95533.mir +compiletest-rs/ui/methods/method-trait-object-with-hrtb.mir +compiletest-rs/ui/mir/issue-29227.mir +compiletest-rs/ui/mir/issue-66930.mir +compiletest-rs/ui/mir/mir_coercions.mir +compiletest-rs/ui/mir/mir_raw_fat_ptr.mir +compiletest-rs/ui/mir/validate/needs-reveal-all.mir +compiletest-rs/ui/numbers-arithmetic/float-nan.mir +compiletest-rs/ui/numbers-arithmetic/u128-as-f32.mir +compiletest-rs/ui/pattern/usefulness/issue-88747.mir +compiletest-rs/ui/recursion/issue-86784.mir +compiletest-rs/ui/rfcs/rfc1623.mir +compiletest-rs/ui/rfcs/rfc-2151-raw-identifiers/basic.mir +compiletest-rs/ui/rfcs/rfc-2151-raw-identifiers/items.mir +compiletest-rs/ui/statics/static-function-pointer.mir +compiletest-rs/ui/traits/normalize-supertrait.mir +compiletest-rs/ui/traits/parameterized-with-bounds.mir +compiletest-rs/ui/traits/privacy.mir +compiletest-rs/ui/traits/alias/object.mir +compiletest-rs/ui/traits/associated_type_bound/check-trait-object-bounds-2-ok.mir +compiletest-rs/ui/union/union-transmute.mir +``` + +I tried to test the Derivable 2 using Docker, but I got this error: + +``` +(kmir-py3.10) user@d382aa3469fa:~/kmir$ kmir parse --definition-dir $(kbuild which llvm) src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir +Directory does not exist: /home/user/.kbuild/mir-semantics/7afaf5d/target/v5.5.147/llvm +usage: kmir parse [-h] [--definition-dir DEFINITION_DIR] [--input {program,binary,json,kast,kore}] [--output {pretty,program,json,kore,kast,none}] input_file +kmir parse: error: argument --definition-dir: invalid dir_path value: 'src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir' +``` + +I tried with a local installation using python 3.10.8 without Docker and got the same problem. + +``` +(kmir-py3.10) user@localhost:~/Documents/kmir/mir-semantics/kmir$ kmir parse --definition-dir $(kbuild which llvm) src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir +Directory does not exist: /home/user/.kbuild/mir-semantics/672f79c/target/v5.6.100/llvm +usage: kmir parse [-h] [--definition-dir DEFINITION_DIR] [--input {program,binary,json,kast,kore}] [--output {pretty,program,json,kore,kast,none}] input_file +kmir parse: error: argument --definition-dir: invalid dir_path value: 'src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir' +``` + +Could you explain to me how do I get this Directory? I also tried using python 3.8.10 and 3.9 but got some errors for kmir commands. Is the python version in prerequisites correct? Because Docker also uses python 3.10.8 + +python 3.9 +``` +(kmir-py3.9) user@localhost:~/Documents/kmir/mir-semantics/kmir$ kmir --help +Traceback (most recent call last): + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.9/bin/kmir", line 3, in + from kmir.__main__ import main + File "/home/user/Documents/kmir/mir-semantics/kmir/src/kmir/__init__.py", line 1, in + from .kmir import KMIR + File "/home/user/Documents/kmir/mir-semantics/kmir/src/kmir/kmir.py", line 13, in + from pyk.ktool.kprint import KAstInput, KAstOutput, _kast, gen_glr_parser + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.9/lib/python3.9/site-packages/pyk/ktool/kprint.py", line 37, in + from ..konvert import kast_to_kore, kore_to_kast + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.9/lib/python3.9/site-packages/pyk/konvert.py", line 10, in + from .kore.prelude import BYTES as KORE_BYTES + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.9/lib/python3.9/site-packages/pyk/kore/prelude.py", line 215 + match data: + ^ +SyntaxError: invalid syntax +``` + +python 3.8 +``` +(kmir-py3.8) user@localhost:~/Documents/kmir/mir-semantics/kmir$ kmir --help +Traceback (most recent call last): + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.8/bin/kmir", line 3, in + from kmir.__main__ import main + File "/home/user/Documents/kmir/mir-semantics/kmir/src/kmir/__init__.py", line 1, in + from .kmir import KMIR + File "/home/user/Documents/kmir/mir-semantics/kmir/src/kmir/kmir.py", line 12, in + from pyk.kast.inner import KInner + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.8/lib/python3.8/site-packages/pyk/kast/__init__.py", line 1, in + from .inner import KInner + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.8/lib/python3.8/site-packages/pyk/kast/inner.py", line 11, in + from ..utils import EMPTY_FROZEN_DICT, FrozenDict, some + File "/home/user/.cache/pypoetry/virtualenvs/kmir-h-L5_2TT-py3.8/lib/python3.8/site-packages/pyk/utils.py", line 33, in + class FrozenDict(Mapping[K, V]): +TypeError: 'ABCMeta' object is not subscriptable +``` From c5e35d6006954743628eaa7de90eea9a258f2dd1 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 19 May 2023 16:21:38 -0300 Subject: [PATCH 061/253] Rename rv-kmir_1_dsm-w3f.md to rv-kmir_2_dsm-w3f.md --- evaluations/{rv-kmir_1_dsm-w3f.md => rv-kmir_2_dsm-w3f.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename evaluations/{rv-kmir_1_dsm-w3f.md => rv-kmir_2_dsm-w3f.md} (100%) diff --git a/evaluations/rv-kmir_1_dsm-w3f.md b/evaluations/rv-kmir_2_dsm-w3f.md similarity index 100% rename from evaluations/rv-kmir_1_dsm-w3f.md rename to evaluations/rv-kmir_2_dsm-w3f.md From 53605e429a22bee5822468dbce2f633eb1604456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 22 May 2023 10:03:42 +0200 Subject: [PATCH 062/253] Substrate Tutorials M2 update --- evaluations/substrate-tutorials_2_semuelle.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/evaluations/substrate-tutorials_2_semuelle.md b/evaluations/substrate-tutorials_2_semuelle.md index db1c96cbf..c44894051 100755 --- a/evaluations/substrate-tutorials_2_semuelle.md +++ b/evaluations/substrate-tutorials_2_semuelle.md @@ -10,15 +10,15 @@ | ------ | ----------- | :------: | ---- |----------------- | | 0a. | License |
  • [x]
| [LICENSE](https://github.com/rusty-crewmates/substrate-tutorials/blob/ab1a16c78dea616c9081d246288088fb6a9583ae/LICENSE) | Apache 2.0 | | 0b. | Documentation |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises) | For each exercise we will provide a **README** that explains what to do, along with **inline instructions** for the user to follow in the code files | -| 0c. | Testing Guide |
  • [ ]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises), [solutions branch](https://github.com/rusty-crewmates/substrate-tutorials/tree/b8da46c6e4ddb57750c6b77759e6e52655950500/exercises) | — | -| 0d. | Docker |
  • [ ]
| — | Skipped, unnecessary | +| 0c. | Testing Guide |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises), [solutions branch](https://github.com/rusty-crewmates/substrate-tutorials/tree/b8da46c6e4ddb57750c6b77759e6e52655950500/exercises) | — | +| 0d. | Docker |
  • [x]
| — | Skipped, unnecessary | | 0e. | Article |
  • [ ]
| link | Missing | -| 1. | Exercise `genesis_config` |
  • [ ]
| [exercises/ex08-genesis-config](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex08-genesis-config) | — | -| 2. | Exercise `mocks` |
  • [ ]
| [exercises/ex09-mock](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex09-mock) | — | -| 3. | Exercise `weight` |
  • [ ]
| [exercises/ex06-weights](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex06-weights) | — | -| 4. | Exercise `hooks` |
  • [ ]
| [exercises/ex05-hooks](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex05-hooks) | — | -| 5. | Exercise `imbalances` |
  • [ ]
| [exercises/ex07-imbalances](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex07-imbalances) | — | -| 6. | Exercise `external_workers` |
  • [ ]
| [exercises/ex10-offchain-worker](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex10-offchain-worker) | — | +| 1. | Exercise `genesis_config` |
  • [x]
| [exercises/ex08-genesis-config](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex08-genesis-config) | — | +| 2. | Exercise `mocks` |
  • [x]
| [exercises/ex09-mock](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex09-mock) | — | +| 3. | Exercise `weight` |
  • [x]
| [exercises/ex06-weights](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex06-weights) | — | +| 4. | Exercise `hooks` |
  • [x]
| [exercises/ex05-hooks](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex05-hooks) | — | +| 5. | Exercise `imbalances` |
  • [x]
| [exercises/ex07-imbalances](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex07-imbalances) | — | +| 6. | Exercise `external_workers` |
  • [x]
| [exercises/ex10-offchain-worker](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex10-offchain-worker) | — | ## General Notes From 5f5dd99ec3a3663779513d799c0df0b481124028 Mon Sep 17 00:00:00 2001 From: S E R A Y A Date: Tue, 23 May 2023 12:41:14 +0200 Subject: [PATCH 063/253] accept plus social recovery wallet m1 --- evaluations/plus-social-recovery-wallet_1_takahser.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/plus-social-recovery-wallet_1_takahser.md b/evaluations/plus-social-recovery-wallet_1_takahser.md index 075113f91..8e0ad6977 100644 --- a/evaluations/plus-social-recovery-wallet_1_takahser.md +++ b/evaluations/plus-social-recovery-wallet_1_takahser.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Plus-social-recovery-wallet.md - **Milestone:** 1 - **Kusama Identity:** Address From 0fd04a83c63ca10874fb148f066d5d85c3b2476d Mon Sep 17 00:00:00 2001 From: Deep Ink Ventures <120174523+deep-ink-ventures@users.noreply.github.com> Date: Tue, 23 May 2023 18:57:11 +0200 Subject: [PATCH 064/253] Create GenesisDAO-Milestone-3.md --- deliveries/GenesisDAO-Milestone-3.md | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/GenesisDAO-Milestone-3.md diff --git a/deliveries/GenesisDAO-Milestone-3.md b/deliveries/GenesisDAO-Milestone-3.md new file mode 100644 index 000000000..cd62927b8 --- /dev/null +++ b/deliveries/GenesisDAO-Milestone-3.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/GenesisDAO.md +* **Milestone Number:** 3 + +**Context** (optional) +This milestone is finalising the MVP. We now have a fully working core product to create and manage DAOs, council creation, proposal lifecycle and voting. + +The product has it's own testnet: + +- [the frontend](https://www.genesis-dao.org/) +- [the backend service](https://service.genesis-dao.org/redoc/) +- [the node](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fnode.genesis-dao.org#/) + +> Note: This is a testnet. It does not have real tokens, the alice/bob testaccounts are available for free use and we are resetting this testnet regularly. Do not use for production use cases and do not except data to remain. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | Licence | n/a | All repositories have a LICENSE.md file at their repo root. | +| 0b. | Documentation | n/a | All repositories have a README.md file at their repo root, that is the entry point to the documentation. | +| 0c. | Testing and Testing Guide | https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md | We have [unit](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md#unit-tests), [integration testing](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md#integration-tests). | +| 0d. | Docker | [node Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/Dockerfile), [frontend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-frontend/blob/main/Dockerfile), [backend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-service/blob/main/Dockerfile) | All repositories are dockerized. | +| 0e. | Article | [Link](https://docs.google.com/document/d/1c3B9iyoHE7cP5a5qYwa-A_0Vy5zo1uAo-S1vcZ5h_B4/edit#heading=h.obore8uev3ox) | The article will be published right after the acceptance of this milestone. We'll reach out on how to increase visibillity | +| 1. | Substrate module: pallet_dao_vote | [Link](https://github.com/deep-ink-ventures/genesis-dao-node/tree/main/pallets/dao-votes) | The pallet has been finalized with flow adjustments as we have finalized the frontend. | +| 2. | Frontend Implementation | [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | The proposal lifecycle and votes flow is now implemented | +| 3. | Product Touches | n/a | We have done an extensive QA session and incorporated feedback into small details of the app, an [FAQ](https://genesis-dao.org/faq) page has been added as well. | From aedaf9dad150bbc53116b0d145c70b0981c60d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 23 May 2023 20:51:33 +0200 Subject: [PATCH 065/253] License check --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b748710cf..b97223490 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,6 +3,7 @@ - [x] The [milestone-delivery-template.md](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/milestone-delivery-template.md) has been copied and updated. - [ ] The [invoice form :pencil:](https://forms.gle/LSRr7PCjBpEbKGh89) has been filled out for this milestone. - [ ] This pull request is being made by the same account as the accepted application. +- [ ] I have disclosed any and all sources of reused code in the submitted repositories and have done my due diligence to meet its license requirements. - [ ] In case of acceptance, the payment will be transferred to the BTC/ETH/fiat account provided in the application. - [ ] The delivery is according to the [Guidelines for Milestone Deliverables](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md). From aace816b1a6924e02bdb193fc4bbb44a4dd363a7 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 23 May 2023 16:57:49 -0300 Subject: [PATCH 066/253] Update aurras_phase_2_2_dsm-w3f.md --- evaluations/aurras_phase_2_2_dsm-w3f.md | 203 ++++++++++++++++++++++++ 1 file changed, 203 insertions(+) diff --git a/evaluations/aurras_phase_2_2_dsm-w3f.md b/evaluations/aurras_phase_2_2_dsm-w3f.md index 389af88fa..f2268d32a 100644 --- a/evaluations/aurras_phase_2_2_dsm-w3f.md +++ b/evaluations/aurras_phase_2_2_dsm-w3f.md @@ -17,6 +17,209 @@ ## Evaluation V2 +### Documentation + +It is missing the testing instructions to test the flow macro. + +### Docker + +The command to generate the .wasm file got an error but the command for testing the .yaml file worked fine. I remember testing the .wasm generator before and it was working. +``` +user@localhost:~/Documents/aurras/aurras/workflow/composer$ cat ../examples/PolkadotPayout.yaml | docker run -i --rm hugobyte/workflow-composer generate > output.wasm +go: downloading github.com/spf13/cobra v1.6.1 +go: downloading github.com/spf13/pflag v1.0.5 +info: component 'rust-std' for target 'wasm32-wasi' is up to date +warning: calls to `std::mem::forget` with a value that implements `Copy` does nothing + --> src/lib.rs:63:5 + | +63 | std::mem::forget(ptr); + | ^^^^^^^^^^^^^^^^^---^ + | | + | argument has type `*const u8` + | + = note: use `let _ = ...` to ignore the expression or result + = note: `#[warn(forget_copy)]` on by default + +user@localhost:~/Documents/aurras/aurras/workflow/composer$ cat ../examples/CarMarketPlace.yaml | docker run -i --rm hugobyte/workflow-composer test +go: downloading github.com/spf13/cobra v1.6.1 +go: downloading github.com/spf13/pflag v1.0.5 +Running Test ... +........ +---------------------------------------------------------------------- +Ran 8 tests in 2.815s + +OK +Test Completed +``` + +### Flow Macro + +The instructions to test the flow macro are missing. I assumed the way to test is using `cargo test`. So I ran `cargo test` and got some warnings. All tests passed except one what is skipped. + + +``` +user@localhost:~/Documents/aurras/aurras$ cargo test +warning: variable does not need to be mutable + --> actions/balance-notification-registration/src/lib.rs:119:9 + | +119 | let mut action = Action::new(input); + | ----^^^^^^ + | | + | help: remove this `mut` + | + = note: `#[warn(unused_mut)]` on by default + +warning: method `init` is never used + --> actions/event-registration/src/lib.rs:36:12 + | +36 | pub fn init(&mut self, config: &Config) { + | ^^^^ + | + = note: `#[warn(dead_code)]` on by default + +warning: method `connect_db` is never used + --> actions/event-registration/src/lib.rs:47:8 + | +47 | fn connect_db(&self, db_url: &str, db_name: &str) -> Database { + | ^^^^^^^^^^ + +warning: unused imports: `Address`, `Deposit`, `Topic` + --> actions/balance-filter/src/lib.rs:15:13 + | +15 | use types::{Address, Deposit, Topic}; + | ^^^^^^^ ^^^^^^^ ^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: method `init` is never used + --> actions/balance-filter/src/lib.rs:38:12 + | +38 | pub fn init(&mut self, config: &Config) { + | ^^^^ + | + = note: `#[warn(dead_code)]` on by default + +warning: method `connect_db` is never used + --> actions/balance-filter/src/lib.rs:49:8 + | +49 | fn connect_db(&self, db_url: &str, db_name: &str) -> Database { + | ^^^^^^^^^^ + +warning: unused import: `std::env` + --> actions/push-notification/src/lib.rs:10:5 + | +10 | use std::env; + | ^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: `action-balance-notification-registration` (lib test) generated 1 warning (run `cargo fix --lib -p action-balance-notification-registration --tests` to apply 1 suggestion) +warning: `action-event-registration` (lib test) generated 2 warnings +warning: `action-balance-filter` (lib test) generated 3 warnings (run `cargo fix --lib -p action-balance-filter --tests` to apply 1 suggestion) +warning: `action-push-notification` (lib test) generated 1 warning (run `cargo fix --lib -p action-push-notification --tests` to apply 1 suggestion) + Finished test [unoptimized + debuginfo] target(s) in 0.27s +warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2 +note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` + + +Running unittests src/lib.rs (target/debug/deps/action_balance_notification_registration-cb24471f806560f9) + +running 1 test +test tests::get_event_sources_pass ... ignored + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + +Running unittests src/lib.rs (target/debug/deps/action_event_receiver-67704f28cb380417) + +running 1 test +test tests::parse_event_pass ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + +Running unittests src/lib.rs (target/debug/deps/action_substrate_event_processor-033dc21c082cd002) + +running 2 tests +test tests::parse_staking_event_data_pass ... ok +test tests::parse_event_data_pass ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + +Running unittests src/main.rs (target/debug/deps/test_util-fdeb7217560eb665) + +running 6 tests +test flow_macro_tests::test_flow_macro_add_node ... ok +test flow_macro_tests::test_macro ... ok +test wasi_http::test_allowed_domains ... ok +test test_car_market_place ... ok +test test_map_operator ... ok +test test_employee_salary_with_concat_operator ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.87s + + Running unittests src/main.rs (target/debug/deps/workflow_apis-69cfa2c8692de21f) + +running 14 tests +test tests::handler_test::test_index_get ... ok +test tests::handler_test::test_index_post ... ok +test tests::openwhisk_test::delete_rule_test_fail ... ok +test tests::openwhisk_test::unatharsed_delete_action_test ... ok +test tests::openwhisk_test::create_rule_test ... ok +test tests::openwhisk_test::unauthorised_delete_rule_test ... ok +test tests::openwhisk_test::get_rule_list_test_fail ... ok +test tests::openwhisk_test::delete_trigger_test ... ok +test tests::openwhisk_test::trigger_test ... ok +test tests::openwhisk_test::delete_action_test ... ok +test tests::openwhisk_test::get_rule_list_test ... ok +test tests::openwhisk_test::get_trigger_list_test ... ok +test tests::openwhisk_test::delete_rule_test ... ok +test tests::openwhisk_test::get_action_list_test ... ok + +test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s +``` + +I tried to check the test coverage with `cargo tarpaulin` and got this error. + +``` +Compiling action-substrate-event-processor v0.1.0 (/home/user/Documents/aurras/aurras/actions/substrate-event-processor) +error: could not compile `workflow_apis` due to 2 previous errors +warning: build failed, waiting for other jobs to finish... +May 22 08:27:02.456 ERROR cargo_tarpaulin: Failed to compile tests! +error: linking with `cc` failed: exit status: 1 + | +. +. +. += note: /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::req': + /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:180: undefined reference to `req' + /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::header_get': + /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:237: undefined reference to `header_get' + /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::headers_get_all': + /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:267: undefined reference to `headers_get_all' + /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::body_read': + /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:295: undefined reference to `body_read' + collect2: error: ld returned 1 exit status + + = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified + = note: use the `-l` flag to specify native libraries to link + = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname) + +Error: "Failed to compile tests!\nerror: linking with `cc` failed: exit status: 1\n |\n = note: LC_ALL=\"C\" +. +. +. +/home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::req':\n /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:180: undefined reference to `req'\n /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::header_get':\n /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:237: undefined reference to `header_get'\n /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::headers_get_all':\n /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:267: undefined reference to `headers_get_all'\n /usr/bin/ld: /home/user/Documents/aurras/aurras/target/debug/deps/libwasi_experimental_http-38895d6571b1fc77.rlib(wasi_experimental_http-38895d6571b1fc77.wasi_experimental_http.2f4a9342-cgu.9.rcgu.o): in function `wasi_experimental_http::raw::body_read':\n /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/wasi-experimental-http-0.9.0/src/raw.rs:295: undefined reference to `body_read'\n collect2: error: ld returned 1 exit status\n \n = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified\n = note: use the `-l` flag to specify native libraries to link\n = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)\n\n" +``` + + + +### Substrate-API-Client + +Could you explain bette this derivable and how to test it? + +## Evaluation V1 + ### Documentation, Testing Guide and Docker File Need better instructions how to run and how to test. From 89c95690eb7e44cc2d402bcd7f0622fd928885f4 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 23 May 2023 17:15:34 -0300 Subject: [PATCH 067/253] Update polkaflow_1_dsm-w3f.md --- evaluations/polkaflow_1_dsm-w3f.md | 32 +++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/evaluations/polkaflow_1_dsm-w3f.md b/evaluations/polkaflow_1_dsm-w3f.md index 5a2ec58a1..9ed4fbb9a 100644 --- a/evaluations/polkaflow_1_dsm-w3f.md +++ b/evaluations/polkaflow_1_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/polkaflow.md - **Milestone:** 1 - **Kusama Identity:** Address @@ -27,13 +27,35 @@ | 13. | Frontend: Project Page
Backend: Data Process - (Project Info Card) |
  • [x]
|[PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate)| | | 14. | Frontend: Project Page
Backend: Data Process - (Recent Stargazing) |
  • [x]
| [PolkaFlow Website Example Project Page](https://polkaflow.xyz/projects/paritytech/substrate) | | | 15. | Frontend: Project List Page |
  • [x]
| [PolkaFlow Website Projects Page](https://polkaflow.xyz/projects)| | -| 16. | Integrate: Algolia |
  • [ ]
| [Frontend Repo - Algolia Search Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/components/Layouts/Search/search.js) | Not fully evaluated yet | -| 17. | Frontend: Categorization |
  • [ ]
|[Frontend Repo - Typeform Integration Line ](https://github.com/justmert/eco-flow-frontend/blob/170707defb2e00fbb475a7e338593fd80c343636/src/components/Layouts/Navbar/navbar.js#L96) | Not fully evaluated yet | -| 18. | Integrate: Typeform |
  • [ ]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | Not fully evaluated yet | +| 16. | Integrate: Algolia |
  • [x]
| [Frontend Repo - Algolia Search Integration ](https://github.com/justmert/eco-flow-frontend/blob/master/src/components/Layouts/Search/search.js) | | +| 17. | Frontend: Categorization |
  • [x]
|[Frontend Repo - Typeform Integration Line ](https://github.com/justmert/eco-flow-frontend/blob/170707defb2e00fbb475a7e338593fd80c343636/src/components/Layouts/Navbar/navbar.js#L96) | | +| 18. | Integrate: Typeform |
  • [x]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | | | 19. | Integrate: Google Analytics |
  • [x]
| [Frontend Repo - Analytics Integration](https://github.com/justmert/eco-flow-frontend/blob/master/public/index.html) | | | 20. | Backend: Schedule |
  • [x]
| [Backend Repo - Schedule](https://github.com/justmert/eco-flow-backend/blob/master/main.py) | | | 21. | Frontend: UX & UI |
  • [x]
| [PolkaFlow Website](https://polkaflow.xyz/)| | +## Evaluation V3 + +### Backend + +I tried to run the backend and got this error: + +``` +user@localhost:~/Documents/polkaflow/eco-flow-backend$ python3 seed.py --ecosystem polka +Traceback (most recent call last): + File "/home/user/Documents/polkaflow/eco-flow-backend/seed.py", line 6, in + from projects import projects +ModuleNotFoundError: No module named 'projects' +``` + +The last commit excluded the file `projects.py`. I fixed this problem by adding this file again to the folder. Whould be nice to provide some explanations about this to the user be able to configure and run the application with their projects. + +### Frontend + +I was able to check the integration of Typeform in the frontend and view the data being stored. + +After configuring the Search attributes in Algolia, I was able to search without problems. Would be nice if the documentation gives an explanation about this. + ## Evaluation V2 ### Backend @@ -42,7 +64,7 @@ To successfully run the command `python3 seed.py --ecosystem `, After that, I was able to successfully run the backend and the Firebase has been updated with the information on paritytech/substrate, paritytech/polkadot, and paritytech/ink. -Please explain in the documentation what `` means and how to setup a value for it . +Please explain in the documentation what `` means and how to setup a value for it. ### Frontend From 70d0a941a4254afbf59d040705f264e695ea8285 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 23 May 2023 18:42:23 -0400 Subject: [PATCH 068/253] Create bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 evaluations/bridgestate_1_keeganquigley.md diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md new file mode 100644 index 000000000..8b10dc7da --- /dev/null +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -0,0 +1,67 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ScoutCoinFabrik.md +- **Milestone:** 1 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes +| -----: | ----------- | ------------- | ------------- | ------------- | +| **0a.** | License |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/LICENSE) | Apache 2.0 license | +| **0b.** | Documentation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#readme) | | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/tests.rs) | | +| **0d.** | Docker |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#using-docker) | | +| 0e. | Article |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/Article.md) | | +| 1. | Attestation oracle core: Off-chain worker |
  • [x]
| | +| 2. | Attestation oracle core: Pallet |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#add-the-collateral-reader-pallet-to-your-runtime) | | +| 3. | Attestation oracle core: RPCs |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/impls.rs) | | +| 4. | Attestation oracle core: Collateral ratio calculation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#about-the-collateral-reader-pallet) | | + +# General Notes + +Unit tests all pass, however there are some warnings about unused variables: + +```rust +warning: unused variable: `expected_token` + --> frame/collateral-reader/src/tests.rs:41:7 + | +41 | let expected_token = token.clone(); + | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_token` + | + = note: `#[warn(unused_variables)]` on by default + +warning: unused `Result` that must be used + --> frame/collateral-reader/src/tests.rs:38:3 + | +38 | TemplateModule::save_asset_stats(origin.into(), token_clone); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this `Result` may be an `Err` variant, which should be handled + = note: `#[warn(unused_must_use)]` on by default + +warning: unused `Result` that must be used + --> frame/collateral-reader/src/tests.rs:60:4 + | +60 | TemplateModule::save_asset_stats(origin.into(), token.clone()); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this `Result` may be an `Err` variant, which should be handled + +warning: `pallet-collateral-reader` (lib test) generated 3 warnings (run `cargo fix --lib -p pallet-collateral-reader --tests` to apply 1 suggestion) + Finished test [unoptimized + debuginfo] target(s) in 7m 33s + Running unittests src/lib.rs (/home/ubuntu/substrate-node/target/debug/deps/pallet_collateral_reader-dcda7472ee4c65a4) + +running 4 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::save_asset_stats_works ... ok +test tests::test_save_asset_event ... ok +test tests::signed_transaction_on_chain ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s + + Doc-tests pallet-collateral-reader + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` From 87c6df8dce560b1a2d881822bf24e98df80a3290 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 23 May 2023 19:00:27 -0400 Subject: [PATCH 069/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index 8b10dc7da..05b66a8c4 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -19,6 +19,44 @@ # General Notes +## Tests + +Docker fails with the following: +```rust +sh ./docker/build.sh +~/substrate-node ~/substrate-node +Building parity/substrate:latest docker image, hang on! +[+] Building 245.4s (10/15) + => [internal] load .dockerignore 0.0s + => => transferring context: 99B 0.0s + => [internal] load build definition from substrate_builder.Dockerfile 0.0s + => => transferring dockerfile: 1.82kB 0.0s + => [internal] load metadata for docker.io/paritytech/ci-linux:production 1.5s + => [internal] load metadata for docker.io/library/ubuntu:20.04 1.5s + => [builder 1/4] FROM docker.io/paritytech/ci-linux:production@sha256:555bea4b712590ee08bf5ad2d9c4aa76fd5663291c7 174.6s + => => resolve docker.io/paritytech/ci-linux:production@sha256:555bea4b712590ee08bf5ad2d9c4aa76fd5663291c71d5180722b 0.0s + => => sha256:555bea4b712590ee08bf5ad2d9c4aa76fd5663291c71d5180722b98b1d6a7e0b 761B / 761B 0.0s + => => sha256:7e12b5224551127862490c6ef3d1b8bb7684fff8ddd2994737200f8053e0c4cb 9.91kB / 9.91kB 0.0s + => => sha256:9e3ea8720c6de96cc9ad544dddc695a3ab73f5581c5d954e0504cc4f80fb5e5c 31.40MB / 31.40MB 8.9s + => => sha256:3b4d18f7247ab0517742ad602f79deae16533e766e110ee5ebd8978620033443 570.02MB / 570.02MB 160.5s + => => sha256:5d2ff4126beaf07b2eca0c5df928087cac191766af27ba554fd928c7c67e5cad 361.19MB / 361.19MB 120.2s + => => extracting sha256:9e3ea8720c6de96cc9ad544dddc695a3ab73f5581c5d954e0504cc4f80fb5e5c 0.5s + => => extracting sha256:3b4d18f7247ab0517742ad602f79deae16533e766e110ee5ebd8978620033443 7.7s + => => extracting sha256:5d2ff4126beaf07b2eca0c5df928087cac191766af27ba554fd928c7c67e5cad 4.8s + => [internal] load build context 0.5s + => => transferring context: 41.15MB 0.4s + => CACHED [stage-1 1/6] FROM docker.io/library/ubuntu:20.04@sha256:db8bf6f4fb351aa7a26e27ba2686cf35a6a409f65603e59d 0.0s + => [builder 2/4] WORKDIR /substrate 1.0s + => [builder 3/4] COPY . /substrate 0.3s + => ERROR [builder 4/4] RUN cargo build --locked --release 68.0s +------ + > [builder 4/4] RUN cargo build --locked --release: +#10 2.177 Updating crates.io index +#10 67.94 Killed +------ +process "/bin/sh -c cargo build --locked --release" did not complete successfully: exit code: 137 +``` + Unit tests all pass, however there are some warnings about unused variables: ```rust @@ -65,3 +103,6 @@ running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` +## Cargo Clippy + +Comes back clean. From 482ea09fba8ab4a023521d261787a50c09c2baf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 24 May 2023 12:22:01 +0200 Subject: [PATCH 070/253] Update pull_request_template.md Change link to guidelines to website --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b97223490..08da5f02c 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -5,6 +5,6 @@ - [ ] This pull request is being made by the same account as the accepted application. - [ ] I have disclosed any and all sources of reused code in the submitted repositories and have done my due diligence to meet its license requirements. - [ ] In case of acceptance, the payment will be transferred to the BTC/ETH/fiat account provided in the application. -- [ ] The delivery is according to the [Guidelines for Milestone Deliverables](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md). +- [ ] The delivery is according to the [Guidelines for Milestone Deliverables](https://grants.web3.foundation/docs/Support%20Docs/milestone-deliverables-guidelines). Link to the application pull request: https://github.com/w3f/Grants-Program/pull/XXX < please fill this in with the PR number of your application. From d30783b0a921239b19fc6d0efc7b346ec517bc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 24 May 2023 12:44:23 +0200 Subject: [PATCH 071/253] Update README.md Change links to website URL --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 42b574039..6cadce297 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,9 @@ ## :mailbox: Milestone Delivery Process -The milestone delivery process is part of the [W3F Grants Program](https://github.com/w3f/Grants-Program). You can find the application process [here](https://github.com/w3f/Grants-Program/blob/master/README.md#pencil-process). +The milestone delivery process is part of the [W3F Grants Program](https://github.com/w3f/Grants-Program). You can find the application process [here](https://grants.web3.foundation/docs/Process/how-to-apply). -:warning: Before you submit a milestone, make sure it complies with our [Guidelines for Milestone Deliverables](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md). +:warning: Before you submit a milestone, make sure it complies with our [Guidelines for Milestone Deliverables](https://grants.web3.foundation/docs/Support%20Docs/milestone-deliverables-guidelines). 1. **Milestone Delivery:** 1. [Fork](https://github.com/w3f/Grant-Milestone-Delivery/fork) this repository with the **same GitHub account** that you used to submit the application (ignore if you applied privately). @@ -26,13 +26,13 @@ The milestone delivery process is part of the [W3F Grants Program](https://githu 5. Fill out the [invoice form](https://forms.gle/LSRr7PCjBpEbKGh89). 6. Create a pull request and fill out the comment template. 2. **Milestone Review:** - 1. [Evaluators](https://github.com/w3f/Grants-Program#team) can (and usually do) issue comments and request changes on the pull request. Their feedback needs to be resolved before your milestone is accepted. + 1. [Evaluators](https://grants.web3.foundation/docs/Introduction/team#w3f-grants-committee) can (and usually do) issue comments and request changes on the pull request. Their feedback needs to be resolved before your milestone is accepted. 2. Grants Evaluators will merge your pull request to accept the delivery. 3. **Milestone Payment:** - 1. The [operations team](https://github.com/w3f/Grants-Program#team) receives a notification once the delivery is accepted. Payments are usually processed within 14 days. + 1. The [operations team](https://grants.web3.foundation/docs/Introduction/team#w3f-operations-team) receives a notification once the delivery is accepted. Payments are usually processed within 14 days. 2. Payment is made to the bank account or Bitcoin, Polkadot, Kusama or Ethereum address specified in the initial application. The exchange rate for BTC depends on the time of payment. -Grant applications can be [amended](https://github.com/w3f/Grants-Program#changes-to-a-grant-after-approval) at any time. However, this _necessitates a reevaluation by the committee_. If your application has been accepted and, during development, you find that your project significantly deviates from the original specification, please open a new pull request that modifies the existing application. +Grant applications can be [amended](https://grants.web3.foundation/docs/Process/changes) at any time. However, this _necessitates a reevaluation by the committee_. If your application has been accepted and, during development, you find that your project significantly deviates from the original specification, please open a new pull request that modifies the existing application. ## :ballot_box_with_check: External Evaluations @@ -51,9 +51,9 @@ As part of the grant program, we allow everyone to participate in the evaluation 2. In the newly created fork, create a **copy** of the evaluation template ([`evaluations/evaluation-template.md`](evaluations/evaluation-template.md)). 3. Name the file `project-name_milestone-number_your-github-username.md`. 4. Fill out the template with the specifics of your evaluation. The higher the quality of your assessment and the level of detail, the higher the KSM recompense. -5. Once you have completed the evaluation, create a pull request in the [W3F Grants Delivery](https://github.com/w3f/Grant-Milestone-Delivery) repo. +5. Once you have completed the evaluation, create a pull request in this repository. 6. Add a comment or review to the pull request that contains the evaluated milestone delivery. This comment should contain a quick summary of your finding as well as link to the milestone submission. -7. Milestone evaluations are double-checked by [W3F Grants Evaluators](https://github.com/w3f/Grants-Program#team). Successful milestone evaluations are merged and the evaluator is rewarded with KSM. +7. Milestone evaluations are double-checked by [W3F Grants Evaluators](https://grants.web3.foundation/docs/Introduction/team#w3f-grants-committee). Successful milestone evaluations are merged and the evaluator is rewarded with KSM. ## :bulb: Help From 4c13e72e753939701b54dd259261ef02f34bc873 Mon Sep 17 00:00:00 2001 From: songtianyi Date: Wed, 24 May 2023 19:10:17 +0800 Subject: [PATCH 072/253] add saas3 milestone 2 --- deliveries/SaaS3-milestone_2.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 deliveries/SaaS3-milestone_2.md diff --git a/deliveries/SaaS3-milestone_2.md b/deliveries/SaaS3-milestone_2.md new file mode 100644 index 000000000..eabfd770f --- /dev/null +++ b/deliveries/SaaS3-milestone_2.md @@ -0,0 +1,33 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/SaaS3.md +* **Milestone Number:** 1 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | Apache 2.0 +| 0b. | Documentation |https://docs.saas3.io/dapi/get-started| | +| 0c. | Testing Guide |https://github.com/SaaS3-Foundation/dRuntime-fat#test| | +| 0d. | Docker | We are not able to provide a Dockerfile, because dRuntime is written in Phat Contract, and it is finally compiled to WASM.| | +| oe. | Article/Tutorial | https://docs.saas3.io/demo-case | | +| 1. | dRuntime-fat| https://github.com/SaaS3-Foundation/dRuntime-fat | dRuntime implementation in Phat Contract which is a superset of ink!. | +| | Functions | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L418
https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L100 | `pub fn handle_rollup()` Entry point for Phat Rollup Anchor
`pub fn config(rpc, anchor)` Configure the rollup target. | +| | Structs | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L45 | | +| | Storage | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L34 | | + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 85f6bff45b54490d3ccff9527a197453a3c8269c Mon Sep 17 00:00:00 2001 From: songtianyi Date: Wed, 24 May 2023 19:11:47 +0800 Subject: [PATCH 073/253] update saas3 milestone 2 --- deliveries/SaaS3-milestone_2.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/deliveries/SaaS3-milestone_2.md b/deliveries/SaaS3-milestone_2.md index eabfd770f..c0bd97ef9 100644 --- a/deliveries/SaaS3-milestone_2.md +++ b/deliveries/SaaS3-milestone_2.md @@ -20,14 +20,20 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | | 0a. | License | Apache 2.0 -| 0b. | Documentation |https://docs.saas3.io/dapi/get-started| | -| 0c. | Testing Guide |https://github.com/SaaS3-Foundation/dRuntime-fat#test| | -| 0d. | Docker | We are not able to provide a Dockerfile, because dRuntime is written in Phat Contract, and it is finally compiled to WASM.| | -| oe. | Article/Tutorial | https://docs.saas3.io/demo-case | | -| 1. | dRuntime-fat| https://github.com/SaaS3-Foundation/dRuntime-fat | dRuntime implementation in Phat Contract which is a superset of ink!. | -| | Functions | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L418
https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L100 | `pub fn handle_rollup()` Entry point for Phat Rollup Anchor
`pub fn config(rpc, anchor)` Configure the rollup target. | -| | Structs | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L45 | | -| | Storage | https://github.com/SaaS3-Foundation/dRuntime-fat/blob/fb213ec6974739f9495a4fb3c37b8f1e7026c6cb/src/lib.rs#L34 | | +| 0b. | Documentation |https://github.com/SaaS3-Foundation/saas3-dao| | +| 0c. | Testing Guide |https://github.com/SaaS3-Foundation/saas3-dao| | +| 0d. | Docker | We are not able to provide a Dockerfile | | +| oe. | Article/Tutorial | https://github.com/SaaS3-Foundation/saas3-dao | | +| 1. | pallet-court | https://github.com/SaaS3-Foundation/saas3-dao/tree/main/pallets/court |A pallet of court DAO, dAPI user raise sue to determine the punishment of malfunction miners / services and return sue claimed tokens to dAPI user. | +| | Functions | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L233
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L262
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L286|`pub fn submit_sue(origin, value, defendent, statement)` dAPI User submit sue claims for malfunction.
`pub fn vote_sue(origin, lawsuit_id, approve)` Jury evaluates and votes the sue submission to determine punishment.
`pub fn process_sue(origin, lawsuit_id)` Process the accepted sue claims of dAPI user to slash malfunction miner / dAPI. The tokens will be paid to dAPI user and treasury with a ratio. | +| | Structs | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL68C1-L79C2 | | +| | Storage | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL115C2-L121C4 | | +| | Events |https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L160 | +| 2. | pallet-treasury | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/pallets/treasury/src/lib.rs|A pallet of SaaS3 DAO treasury. It sends or receives token based on different situations. It is built on top of [FRAME Treasury Pallet](https://github.com/paritytech/substrate/tree/master/frame/treasury), with some additional functionalities. | +| | Functions | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L221
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L254|`pub fn receive(origin, amount, category_type)` Receive tokens with categorized reason, such as commission fees and miner node malfunctions.
`pub fn claim_rewards(origin, amount)` Court Jury members claim their rewards for their contribution in Court DAO. | +| | Storage | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L117 | +| | Events | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | +| 3. | UI & Frontend | https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets|This part is implemented by [substrate front-end template](https://github.com/substrate-developer-hub/substrate-front-end-template). The frontend web interface contains DAO procedures related functions which including user sue judgement. A special document website is developed to guide entities to participate in DAO events. | **Additional Information** > Any further comments on the milestone that you would like to share with us. From 82855a18c70f7e318405a702196ed948b5665d28 Mon Sep 17 00:00:00 2001 From: songtianyi Date: Wed, 24 May 2023 20:51:55 +0800 Subject: [PATCH 074/253] update saas3 milestone 2 --- deliveries/SaaS3-milestone_2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/SaaS3-milestone_2.md b/deliveries/SaaS3-milestone_2.md index c0bd97ef9..3bf178dc3 100644 --- a/deliveries/SaaS3-milestone_2.md +++ b/deliveries/SaaS3-milestone_2.md @@ -23,7 +23,7 @@ | 0b. | Documentation |https://github.com/SaaS3-Foundation/saas3-dao| | | 0c. | Testing Guide |https://github.com/SaaS3-Foundation/saas3-dao| | | 0d. | Docker | We are not able to provide a Dockerfile | | -| oe. | Article/Tutorial | https://github.com/SaaS3-Foundation/saas3-dao | | +| oe. | Article/Tutorial | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/Tutorial.md | | | 1. | pallet-court | https://github.com/SaaS3-Foundation/saas3-dao/tree/main/pallets/court |A pallet of court DAO, dAPI user raise sue to determine the punishment of malfunction miners / services and return sue claimed tokens to dAPI user. | | | Functions | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L233
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L262
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L286|`pub fn submit_sue(origin, value, defendent, statement)` dAPI User submit sue claims for malfunction.
`pub fn vote_sue(origin, lawsuit_id, approve)` Jury evaluates and votes the sue submission to determine punishment.
`pub fn process_sue(origin, lawsuit_id)` Process the accepted sue claims of dAPI user to slash malfunction miner / dAPI. The tokens will be paid to dAPI user and treasury with a ratio. | | | Structs | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL68C1-L79C2 | | From 707e75e33feaa06284a6b6ddf7bcf2a9ebd742e9 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 24 May 2023 11:41:46 -0400 Subject: [PATCH 075/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index 05b66a8c4..da3810e89 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -1,7 +1,7 @@ # Evaluation -- **Status:** Accepted -- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ScoutCoinFabrik.md +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DIA_Bridge_Attestation_Oracle.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by keeganquigley From eab043e2df36f3a1d64a7966d9b5697739172816 Mon Sep 17 00:00:00 2001 From: SaaS3 Helper Date: Thu, 25 May 2023 18:57:29 +0800 Subject: [PATCH 076/253] Update SaaS3-milestone_2.md --- deliveries/SaaS3-milestone_2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/SaaS3-milestone_2.md b/deliveries/SaaS3-milestone_2.md index 3bf178dc3..1199ad56f 100644 --- a/deliveries/SaaS3-milestone_2.md +++ b/deliveries/SaaS3-milestone_2.md @@ -7,7 +7,7 @@ **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/SaaS3.md -* **Milestone Number:** 1 +* **Milestone Number:** 2 **Context** (optional) > Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. From b28b1bf99f2a333fcdabacf73e4ce87a9bf14990 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 25 May 2023 09:03:25 -0300 Subject: [PATCH 077/253] Create calamar_1_dsm-w3f.md --- deliveries/calamar_1_dsm-w3f.md | 249 ++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 deliveries/calamar_1_dsm-w3f.md diff --git a/deliveries/calamar_1_dsm-w3f.md b/deliveries/calamar_1_dsm-w3f.md new file mode 100644 index 000000000..7c5b1e3f9 --- /dev/null +++ b/deliveries/calamar_1_dsm-w3f.md @@ -0,0 +1,249 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Calamar.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
| [LICENSE](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/LICENSE.txt) | | +| 0b. | Documentation |
  • [x]
| [README](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md), [Calamar docs](https://docs.calamar.app/) | | +| 0c. | Testing Guide |
  • [ ]
| [README#Test](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#test), [E2E tests](https://github.com/topmonks/calamar/tree/fc791d5ddc433cea71b3587dc0718c50a017c9ee/test/e2e), [GitHub workflow](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/.github/workflows/test-and-deploy.yml#L27), [Test reports](https://github.com/topmonks/calamar/deployments?environment=test-report#activity-log), [Screenshots](https://app.argos-ci.com/topmonks/calamar) | Timeout in some tests | +| 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/Dockerfile), [README#Docker](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#docker) | | +| 0e. | Article |
  • [x]
| [Article](https://medium.com/topmonks/calamar-block-explorer-milestone-2-finished-ca581f95301a) | | +| 1. | Account / Balance overview |
  • [ ]
| [PR#142](https://github.com/topmonks/calamar/pull/142), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | +| 2. | Account / Balance charts |
  • [ ]
| [PR#143](https://github.com/topmonks/calamar/pull/143), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | +| 3. | Account / Transfers list |
  • [ ]
| [PR#134](https://github.com/topmonks/calamar/pull/134), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | +| 4. | Account / Calls list |
  • [ ]
| [PR#125](https://github.com/topmonks/calamar/pull/125), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | +| 5. | Account / Identity info |
  • [ ]
| [PR#150](https://github.com/topmonks/calamar/pull/150), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/EMRpBNnfAqRb62b14cxmnCdihtUjEeyh6tfyhGwnGwxjY8F) | Not fully evaluated yet | +| 6. | Chain dashboard / Stats |
  • [ ]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | +| 7. | Chain dashboard / Asset value chart |
  • [ ]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | +| 8. | Chain dashboard / Latest blocks |
  • [ ]
| [PR#136](https://github.com/topmonks/calamar/pull/136), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | +| 9. | Chain dashboard / Latest transfers |
  • [ ]
| [PR#135](https://github.com/topmonks/calamar/pull/135), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | +| 10. | Chain dashboard / Top holders |
  • [ ]
| [PR#137](https://github.com/topmonks/calamar/pull/137), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | + +## Evaluation V1 + +### Automatic Test + +I ran the E2E tests, and some tests failed with timeout, for example, the failed tests 1, 13, and 14: + +``` +user@localhost:~/Documents/calamar/calamar$ npm run test + +> calamar@0.1.0 test +> playwright test + + +Running 128 tests using 8 workers + 1) [desktop] › e2e/chainDashboard.spec.ts:14:6 › Chain dashboard page › shows latest extrinsics tab + + Test timeout of 60000ms exceeded. + + page.evaluate: Target closed + + at utils/events.ts:26 + + 24 | }; + 25 | + > 26 | return page.evaluate(([eventName, serializedCondition, timeout]) => { + | ^ + 27 | const condition = new Function(`return ${serializedCondition}`)(); + 28 | + 29 | return new Promise((resolve, reject) => { + + at waitForPageEvent (/home/user/Documents/calamar/calamar/test/utils/events.ts:26:14) + at navigate (/home/user/Documents/calamar/calamar/test/utils/navigate.ts:26:25) + at /home/user/Documents/calamar/calamar/test/e2e/chainDashboard.spec.ts:15:3 + + Pending operations: + - page.evaluate at test/utils/events.ts:26:14 + - page.evaluate at test/utils/screenshot.ts:32:7 + + + attachment #2: video (video/webm) -------------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-shows-latest-extrinsics-tab-desktop/video.webm + ------------------------------------------------------------------------------------------------ + + attachment #3: trace (application/zip) --------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-shows-latest-extrinsics-tab-desktop/trace.zip + Usage: + + npx playwright show-trace test/results/e2e-chainDashboard-Chain-dashboard-page-shows-latest-extrinsics-tab-desktop/trace.zip + + ------------------------------------------------------------------------------------------------ + + 13) [mobile] › e2e/chainDashboard.spec.ts:100:6 › Chain dashboard page › show error message when transfers items fetch fails + + Test timeout of 60000ms exceeded. + + page.evaluate: Target closed + + at utils/events.ts:26 + + 24 | }; + 25 | + > 26 | return page.evaluate(([eventName, serializedCondition, timeout]) => { + | ^ + 27 | const condition = new Function(`return ${serializedCondition}`)(); + 28 | + 29 | return new Promise((resolve, reject) => { + + at waitForPageEvent (/home/user/Documents/calamar/calamar/test/utils/events.ts:26:14) + at navigate (/home/user/Documents/calamar/calamar/test/utils/navigate.ts:26:25) + at /home/user/Documents/calamar/calamar/test/e2e/chainDashboard.spec.ts:114:3 + + Pending operations: + - page.evaluate at test/utils/events.ts:26:14 + - page.evaluate at test/utils/screenshot.ts:32:7 + + + attachment #2: video (video/webm) -------------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-transfers-items-fetch-fails-mobile/video.webm + ------------------------------------------------------------------------------------------------ + + attachment #3: trace (application/zip) --------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-transfers-items-fetch-fails-mobile/trace.zip + Usage: + + npx playwright show-trace test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-transfers-items-fetch-fails-mobile/trace.zip + + ------------------------------------------------------------------------------------------------ + + 14) [mobile] › e2e/chainDashboard.spec.ts:50:6 › Chain dashboard page › show error message when extrinsics items fetch fails + + Test timeout of 60000ms exceeded. + + page.evaluate: Target closed + + at utils/events.ts:26 + + 24 | }; + 25 | + > 26 | return page.evaluate(([eventName, serializedCondition, timeout]) => { + | ^ + 27 | const condition = new Function(`return ${serializedCondition}`)(); + 28 | + 29 | return new Promise((resolve, reject) => { + + at waitForPageEvent (/home/user/Documents/calamar/calamar/test/utils/events.ts:26:14) + at navigate (/home/user/Documents/calamar/calamar/test/utils/navigate.ts:26:25) + at /home/user/Documents/calamar/calamar/test/e2e/chainDashboard.spec.ts:64:3 + + Pending operations: + - page.evaluate at test/utils/events.ts:26:14 + - page.evaluate at test/utils/screenshot.ts:32:7 + + + attachment #2: video (video/webm) -------------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-extrinsics-items-fetch-fails-mobile/video.webm + ------------------------------------------------------------------------------------------------ + + attachment #3: trace (application/zip) --------------------------------------------------------- + test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-extrinsics-items-fetch-fails-mobile/trace.zip + Usage: + + npx playwright show-trace test/results/e2e-chainDashboard-Chain-dashboard-page-show-error-message-when-extrinsics-items-fetch-fails-mobile/trace.zip + + ------------------------------------------------------------------------------------------------ + + + 14 failed + [desktop] › e2e/chainDashboard.spec.ts:14:6 › Chain dashboard page › shows latest extrinsics tab + [desktop] › e2e/chainDashboard.spec.ts:23:6 › Chain dashboard page › shows latest blocks tab === + [desktop] › e2e/chainDashboard.spec.ts:32:6 › Chain dashboard page › shows latest transfers tab + [desktop] › e2e/chainDashboard.spec.ts:41:6 › Chain dashboard page › shows top holders tab ===== + [desktop] › e2e/chainDashboard.spec.ts:50:6 › Chain dashboard page › show error message when extrinsics items fetch fails + [desktop] › e2e/chainDashboard.spec.ts:74:6 › Chain dashboard page › show error message when blocks items fetch fails + [desktop] › e2e/chainDashboard.spec.ts:100:6 › Chain dashboard page › show error message when transfers items fetch fails + [mobile] › e2e/chainDashboard.spec.ts:14:6 › Chain dashboard page › shows latest extrinsics tab + [mobile] › e2e/chainDashboard.spec.ts:23:6 › Chain dashboard page › shows latest blocks tab ==== + [mobile] › e2e/chainDashboard.spec.ts:32:6 › Chain dashboard page › shows latest transfers tab = + [mobile] › e2e/chainDashboard.spec.ts:41:6 › Chain dashboard page › shows top holders tab ====== + [mobile] › e2e/chainDashboard.spec.ts:50:6 › Chain dashboard page › show error message when extrinsics items fetch fails + [mobile] › e2e/chainDashboard.spec.ts:74:6 › Chain dashboard page › show error message when blocks items fetch fails + [mobile] › e2e/chainDashboard.spec.ts:100:6 › Chain dashboard page › show error message when transfers items fetch fails + 114 passed (4.7m) + +``` + +Do these tests need some configuration to avoid this? + +### Manual Test + +I ran the front end and was able to check the change in the homepage and the improvements for the account and chain dashboard pages. The application seems to be working fine but I need some explanation about the tests failing. + +### Code quality + +I ran `npm run lint` and received some warnings, for example: + +``` +user@localhost:~/Documents/calamar/calamar$ npm run lint + +> calamar@0.1.0 lint +> eslint ./src +. +. +. +/home/user/Documents/calamar/calamar/src/services/fetchService.ts + 4:40 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 14:40 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 24:40 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 34:36 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 44:46 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 54:37 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/services/runtimeService.ts + 48:15 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + +/home/user/Documents/calamar/calamar/src/services/statsService.ts + 6:27 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 51:18 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + +/home/user/Documents/calamar/calamar/src/services/transfersService.ts + 134:26 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/services/usdRatesService.ts + 27:14 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/addRuntimeSpec.ts + 16:16 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + 28:16 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + +/home/user/Documents/calamar/calamar/src/utils/assert.ts + 3:31 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 3:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/compare.ts + 23:12 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 23:25 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 25:19 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 25:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 32:70 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/extractConnectionItems.ts + 5:44 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:53 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:68 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:76 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/fetchGraphql.ts + 3:40 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/filterToWhere.ts + 1:39 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/number.ts + 25:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 56:33 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/tryJsonParse.ts + 1:37 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/uniq.ts + 5:62 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +✖ 121 problems (0 errors, 121 warnings) +``` From 625fab8c966f8c798a454c600ccee781b4354dee Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 25 May 2023 09:07:31 -0300 Subject: [PATCH 078/253] Move calamar_1_dsm-w3f.md to evaluations folder --- {deliveries => evaluations }/calamar_1_dsm-w3f.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {deliveries => evaluations }/calamar_1_dsm-w3f.md (100%) diff --git a/deliveries/calamar_1_dsm-w3f.md b/evaluations /calamar_1_dsm-w3f.md similarity index 100% rename from deliveries/calamar_1_dsm-w3f.md rename to evaluations /calamar_1_dsm-w3f.md From ae31e464e349d3fa645cdaba4723f92a4c68f038 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 25 May 2023 09:12:01 -0300 Subject: [PATCH 079/253] Move calamar_1_dsm-w3f.md to the right evaluations folder --- {evaluations => evaluations}/calamar_1_dsm-w3f.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {evaluations => evaluations}/calamar_1_dsm-w3f.md (100%) diff --git a/evaluations /calamar_1_dsm-w3f.md b/evaluations/calamar_1_dsm-w3f.md similarity index 100% rename from evaluations /calamar_1_dsm-w3f.md rename to evaluations/calamar_1_dsm-w3f.md From 872bd59ab397574cf94fcd88b13725164b8f9b89 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 25 May 2023 09:12:36 -0300 Subject: [PATCH 080/253] Rename calamar_1_dsm-w3f.md to calamar_2_dsm-w3f.md --- evaluations/{calamar_1_dsm-w3f.md => calamar_2_dsm-w3f.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename evaluations/{calamar_1_dsm-w3f.md => calamar_2_dsm-w3f.md} (100%) diff --git a/evaluations/calamar_1_dsm-w3f.md b/evaluations/calamar_2_dsm-w3f.md similarity index 100% rename from evaluations/calamar_1_dsm-w3f.md rename to evaluations/calamar_2_dsm-w3f.md From 4e2530befac29e473383f4e69548362f4e7780b9 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 25 May 2023 16:16:07 -0300 Subject: [PATCH 081/253] Update rv-kmir_2_dsm-w3f.md --- evaluations/rv-kmir_2_dsm-w3f.md | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/evaluations/rv-kmir_2_dsm-w3f.md b/evaluations/rv-kmir_2_dsm-w3f.md index ca891045f..c34d0bc07 100644 --- a/evaluations/rv-kmir_2_dsm-w3f.md +++ b/evaluations/rv-kmir_2_dsm-w3f.md @@ -15,6 +15,64 @@ | 1. | KMIR syntax |
  • [ ]
| [mir-syntax.k](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/k-src/mir-syntax.k) | Tests passing but small problems to fix. | | 2. | **kmir** executable extension |
  • [ ]
| [**kmir parse** implementation](https://github.com/runtimeverification/mir-semantics/blob/bd09e9d1716904afbbab2c0e27735202689d788e/kmir/src/kmir/__main__.py#L23), [**kmir parse** examples](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md#examples) | Command failing | +## Evaluation V2 + +### Testing + +I ran the tests and noticed most of the tests was removed, keeping only the `test_handwritten`. This was to only run tests related to the KMIR syntax and Kmir parse? + +``` +[gw0] [ 98%] PASSED src/tests/integration/test_parse.py::test_handwritten_syntax[statement-storage-live.mir] +src/tests/integration/test_parse.py::test_handwritten_syntax[builtins-deref_copy.mir] +[gw0] [ 99%] PASSED src/tests/integration/test_parse.py::test_handwritten_syntax[builtins-deref_copy.mir] +src/tests/integration/test_parse.py::test_handwritten_syntax[type-array-identifier-len.mir] +[gw0] [100%] PASSED src/tests/integration/test_parse.py::test_handwritten_syntax[type-array-identifier-len.mir] + +================================================================================================ slowest durations ================================================================================================ +63.03s setup src/tests/integration/test_parse.py::test_handwritten_syntax[terminator-call-generic-args.mir] +62.30s setup src/tests/integration/test_parse.py::test_handwritten_syntax[type-async.mir] +62.12s setup src/tests/integration/test_parse.py::test_handwritten_syntax[rvalue-variable.mir] +61.39s setup src/tests/integration/test_parse.py::test_handwritten_syntax[statement-const-eval-counter.mir] +0.03s teardown src/tests/integration/test_parse.py::test_compiletest[test_id0-input_path0] +0.02s call src/tests/integration/test_parse.py::test_handwritten_syntax[type-impl-reference-sum.mir] +0.01s call src/tests/integration/test_parse.py::test_handwritten_syntax[rust-expression-precedence.mir] + +(430 durations < 0.005s hidden. Use -vv to show these durations.) +==================================================================================== 145 passed, 1 skipped in 63.57s (0:01:03) ==================================================================================== +``` + +### Kmir parse + +I had the same problems again. + +Here is the list of versions: + +``` +user@localhost:~/Documents/kmir/k/mir-semantics$ kup list +┌───────────┬──────────────────────────────────────────┬──────────────┐ +│ Package │ Installed version │ Status │ +├───────────┼──────────────────────────────────────────┼──────────────┤ +│ kup │ f6363845418afc73d13c6b940d8e987c3fce5c67 │ 🟢 installed │ +│ k │ f2f25ce7986f0c783f6ceeda428d561a42b87f13 │ 🟢 installed │ +│ pyk │ ce5421ac331f0e191d32b54697294f54a7b38baf │ 🟢 installed │ +│ kavm │ │ 🔵 available │ +│ kevm │ │ 🔵 available │ +│ kplutus │ │ 🔵 available │ +│ kore-exec │ │ 🔵 available │ +│ kore-rpc │ │ 🔵 available │ +└───────────┴──────────────────────────────────────────┴──────────────┘ +user@localhost:~/Documents/kmir/mir-semantics/kmir$ poetry --version +Poetry (version 1.5.0) +user@localhost:~/Documents/kmir/mir-semantics/kmir$ pip --version +pip 22.2.2 from /home/user/.pyenv/versions/3.10.8/lib/python3.10/site-packages/pip (python 3.10) +user@localhost:~/Documents/kmir/mir-semantics/kmir$ python -V +Python 3.10.8 +``` + +Is the Python version in the prerequisites correct? Could you provide the versions that you are using? Usually, when we have problems reproducing the steps to install the software under evaluation we ask for a demo video to help in this task. Can you provide a demo video showing how to install and use the application? Otherwise, we will wait for the docker ticket to be solved to try again with docker, which is a more controlled environment. + + + ## Evaluation V1 ### Testing From 3e1dd965f66da23f3595908cec812812f67b43fb Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 25 May 2023 17:37:03 -0400 Subject: [PATCH 082/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index da3810e89..829532180 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -19,6 +19,15 @@ # General Notes +When trying to compile and run the node I get the following: + +```rust +error: linking with `cc` failed: exit status: 1 + | + = note: LC_ALL="C" PATH="/home/ubuntu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/ubuntu/.nvm/versions/node/v18.13.0/bin:/home/ubuntu/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcmlVVmV/symbols.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.106ynm17pgxcmi50.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.12784fs9hcon45ow.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.1kqejazt585xn42r.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.1yv6nwvxww7h97zp.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.218h7vafws7v7h7d.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.26mqtk4b6jgeh3un.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.28j15a6tkxwymlqc.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.2fg5zrsz70ae0k90.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.2pawq2utohb9bxdm.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.35pcqi7b5vh2z074.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.3atpb6avwn5vx1e1.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.3wq5rkjngfnks6kc.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.44d62mtspvfy4xxa.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.49x7shyjqqnt56ff.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.4rpps648edmcubdt.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.5am2rn332to1iw9c.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.5c57v5c6gvcji9is.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.5f5m179vbnefo777.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_script_build-6276b39b01213466.dqhd3q29xgel6sp.rcgu.o" "/home/ubuntu/substrate-node/target/debug/build/node-cli-6276b39b01213466/build_sc +``` +This is supposedly a Mac problem but it happens on Linux too. + ## Tests Docker fails with the following: From 4669c0dcca25077366251248ee69f382c124ff59 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 26 May 2023 10:50:24 -0300 Subject: [PATCH 083/253] Create MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md --- ...-Knowledge-Oriented-Framework_2_dsm-w3f.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md diff --git a/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md b/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md new file mode 100644 index 000000000..f6c417460 --- /dev/null +++ b/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md @@ -0,0 +1,52 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Knowledge-Oriented-Framework.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
|[License](https://creativecommons.org/licenses/by-sa/4.0/)| | +| 0b. | Documentation/Tutorial |
  • [x]
|[TR1](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Use%20case.pdf)| | +| 0c. | Methodology |
  • [ ]
|[Article Section 3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/Article.pdf)| Need review of terms used and citations/references | +| 0d. | Infrastructure |
  • [x]
|[TR2](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Infrastructure%20requirements.pdf)|| +| 0e. | Article |
  • [x]
|[Article](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/Article.pdf)| | +| 1. | Case Study |
  • [ ]
|[TR3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Case%20study.pdf)| Need review of the questions| + + +## Evaluation V1 + +### Methodology + +The definition of the case study concept needs citations (Section 2, paragraph 1). + +The proposed methodology looks more to be a [Survey](https://en.wikipedia.org/wiki/Survey_(human_research)) than a [Case Study](https://en.wikipedia.org/wiki/Case_study). You can find informal references for what those primary research methods mean in the links provided. Please review the concepts involved in the text or provide the references that embase that your study is a case study and not a survey. + +### Case Study (or Survey) + +The questionnaire asks some questions about trading tokens and other ecosystems. Why these questions would be relevant regarding the perspective to research Polkadot/Kusama ecosystem? + +"Which of these tokens have you traded before? Check all that apply." + +"Which Web3 networks have you accessed information and ledger data from before? Check all that apply." + + +In the question "Which of the following queries do you think would be useful to make in a query service?" I think it limits a lot the possibilities of queries that the user would make. The questions are all generic and don't have a specific connection with Polkadot/Kusama ecosystem. I think would be better to ask about the entities involved in queries than give examples of queries that the user may find relevant. For example, Polkadot/Kusama ecosystem has many specific concepts that would be possible to ask if the user wanted to query about that entity and had problems finding the relevant information about it, or how easy is to find information about those entities. Examples: Parachains, XCM, collators, validators, nominators, etc. The model for this idea is: Demand for the info + Info is difficult to find -> Willing to use a better tool to find it. I saw the open question made but I think the examples of queries provided are limited regarding the scope of queries that the user can have and don't help the user to think about the possible queries they would like to have regarding Polkadot/Kusama ecosystem. + +"Any other queries you would use to gather information from Web3 networks?" Is this questionnaire about Polkadot/Kusama ecosystem or is a generic one? + +I feel the perspective of the questionnaire with a focus on trader users. Would be better to have more of an investment perspective and to know what questions are relevant for investors to know about the health or growth of an ecosystem. You may want to take a look at [Mesari reports](https://messari.io/research) to find relevant information about these possible questions that investors may have or want to know to invest in a web3 project. + +Another relevant perspective for the questionaries is the users of the ecosystem. People that use the projects, stake, validators, developers, etc. Traders are not the only users of this service. You may want to take a look at [Polkadot Forum](https://forum.polkadot.network/) to see what people want to know there. It is also a good venue to talk with Polkadot/Kusama ecosystem users. + +### Off-topic + +Considering this aim definition: "The main goal of the proposed case study methodology is to assess the potential of a query engine service for accessing and analyzing data from distributed ledgers. Specifically, the relevance of having an ontology and a controlled natural language supporting this service.". + +Are you aware of [this RFP](https://github.com/w3f/Grants-Program/blob/master/docs/RFPs/Open/data_analysis_tools.md)? We have a demand to answer complex questions from the perspective of user support. Can you take a look and see if your approach would be able to fit this RFP? Furthermore, consider taking a look at [this grant application](https://github.com/w3f/Grants-Program/pull/1764) and if possible provide some comparison with your approach. This is more to direct you to a path where we already have a demand since you are looking for it in your research. Another question is if the proposed tool would be able to index and query TBs of data. What would be the cost of maintaining this index and tool available for users? Would you be able to afford this cost for yourself or from a sustainable business model? + + + + From 72a4c80bc698e57da476322d04315bd7b15d2757 Mon Sep 17 00:00:00 2001 From: davidsemakula Date: Mon, 29 May 2023 16:10:10 +0300 Subject: [PATCH 084/253] ink! analyzer milestone 2 (#1615) --- deliveries/ink-analyzer-milestone-2.md | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/ink-analyzer-milestone-2.md diff --git a/deliveries/ink-analyzer-milestone-2.md b/deliveries/ink-analyzer-milestone-2.md new file mode 100644 index 000000000..6994ce034 --- /dev/null +++ b/deliveries/ink-analyzer-milestone-2.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:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) +* **Milestone Number:** 2 + +**Context** (optional) + +This delivery is for [completions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs) and [hover content](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs). + +[Diagnostics](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/diagnostics.rs) were [delivered](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/ink-analyzer-milestone-1.md) and [evaluated](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_1_dsm-w3f.md) in milestone 1. + +Please see the [README](https://github.com/ink-analyzer/ink-analyzer#readme) for additional architectural details. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|---------|-------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Dual-licensed under either of MIT or Apache 2.0 licenses at the downstream user's option. | +| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | The semantic analyzer crate's README is published on both [GitHub](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) and [crates.io](https://crates.io/crates/ink-analyzer). It contains instructions for installation and usage, and links to crate specific documentation on docs.rs. | +| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Each feature is implemented as a module (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs)), with unit tests for each feature implemented in its corresponding module. Integration tests for each feature can be found in the [tests directory of the semantic analyzer crate](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/tests) (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/hover.rs)). | +| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | | +| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | | +| 2. | Semantic Analyzer: Rust crate update: Code/intent actions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | | +| 3. | Semantic Analyzer: Rust crate update: Hover content | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs). | References to the source of the hover content can be found in the doc comments for each item in the [macros](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/macros.rs) and [args](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/args.rs) submodules. | + +**Additional Information** + +Please use the [master branch](https://github.com/ink-analyzer/ink-analyzer/tree/master) for testing, another branch will be used for continued work until the completion of the review. From dda593e3f276e7c961ebe3cb589a941fa75d02d5 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 29 May 2023 14:39:56 -0300 Subject: [PATCH 085/253] Create genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 192 ++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 evaluations/genesisdao_3_dsm-w3f.md diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md new file mode 100644 index 000000000..f664a5178 --- /dev/null +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -0,0 +1,192 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/GenesisDAO.md +- **Milestone:** 3 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | Licence |
  • [x]
| n/a | | +| 0b. | Documentation |
  • [ ]
| n/a | Not fully evaluated yet. | +| 0c. | Testing and Testing Guide |
  • [ ]
| https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md | Integration tests are failing. Need testing guide for system test. | +| 0d. | Docker |
  • [ ]
| [node Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/Dockerfile), [frontend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-frontend/blob/main/Dockerfile), [backend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-service/blob/main/Dockerfile) | Not fully evaluated yet. | +| 0e. | Article |
  • [x]
| [Link](https://docs.google.com/document/d/1c3B9iyoHE7cP5a5qYwa-A_0Vy5zo1uAo-S1vcZ5h_B4/edit#heading=h.obore8uev3ox) | | +| 1. | Substrate module: pallet_dao_vote |
  • [ ]
| [Link](https://github.com/deep-ink-ventures/genesis-dao-node/tree/main/pallets/dao-votes) | Not fully evaluated yet. | +| 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | +| 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | + +## Evaluation V1 + +### Unit Test + +All unit tests passed. + +``` +running 7 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::can_change_owner ... ok +test tests::it_sets_metadata ... ok +test tests::issues_a_token ... ok +test tests::it_creates_a_dao ... ok +test tests::it_destroys_a_dao ... ok +test tests::dao_id_valid_chars ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s + + Doc-tests pallet-dao-core + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Finished test [unoptimized + debuginfo] target(s) in 0.32s + Running unittests src/lib.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/pallet_dao_assets-4e10fb2310ffc300) + +running 29 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::burning_asset_balance_with_positive_balance_should_work ... ok +test tests::finish_destroy_asset_destroys_asset ... ok +test tests::imbalances_should_work ... ok +test tests::origin_guards_should_work ... ok +test tests::basic_minting_should_work ... ok +test tests::burning_asset_balance_with_zero_balance_does_nothing ... ok +test tests::approval_lifecycle_works ... ok +test tests::cannot_transfer_more_than_exists ... ok +test tests::cannot_transfer_more_than_approved ... ok +test tests::destroy_should_refund_approvals ... ok +test tests::lifecycle_should_work ... ok +test tests::assets_from_genesis_should_exist ... ok +test tests::approval_deposits_work ... ok +test tests::cancel_approval_works ... ok +test tests::reserving_and_unreserving_should_work ... ok +test tests::transfer_large_asset ... ok +test tests::transferring_amount_below_available_balance_should_work ... ok +test tests::set_metadata_should_work ... ok +test tests::querying_allowance_should_work ... ok +test tests::min_balance_should_work ... ok +test tests::querying_total_supply_should_work ... ok +test tests::transferring_less_than_one_unit_is_fine ... ok +test tests::transferring_more_units_than_total_supply_should_not_work ... ok +test tests::transferring_enough_to_kill_source_when_keep_alive_should_fail ... ok +test tests::partial_destroy_should_work ... ok +test tests::transfer_approved_all_funds ... ok +test tests::query_historic_blocks_should_work ... ok +test tests::transferring_amount_more_than_available_balance_should_not_work ... ok + +test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Doc-tests pallet-dao-assets + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Finished test [unoptimized + debuginfo] target(s) in 0.31s + Running unittests src/lib.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/pallet_dao_votes-897497c511b34cd4) + +running 8 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::voting_outcome_unsuccessful_proposal ... ok +test tests::can_cast_and_remove_a_vote ... ok +test tests::can_create_a_proposal ... ok +test tests::can_set_metadata ... ok +test tests::can_finalize_a_proposal ... ok +test tests::voting_outcome_successful_proposal_and_mark_implemented ... ok +test tests::can_fault_a_proposal ... ok + +test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Doc-tests pallet-dao-votes +``` + +### Integration Test + +The integration test failed. + +``` + Running unittests src/lib.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/integration_wrapper-b4742002a4438968) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_dao_lifecycle.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/test_dao_lifecycle-d59a45746e8b198b) + +running 1 test +test dao_lifecycle has been running for over 60 seconds +test dao_lifecycle ... FAILED + +failures: + +---- dao_lifecycle stdout ---- +thread 'dao_lifecycle' panicked at 'Error creating proposal: Metadata: Pallet Votes Call Votes has incompatible metadata', integration-wrapper/tests/test_dao_lifecycle.rs:94:23 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + dao_lifecycle + +test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 69.60s + +error: test failed, to rerun pass `--test test_dao_lifecycle` +``` + +### Manual Testing + +Could you provide a manual testing guide that shows the usage of the new features? + +I tested the software even without this manual. I could create a DAO, a proposal and vote for this proposal. Do I need to wait until the end of the timer to close the proposal? How do I report the proposal using the frontend? Can I change the proposal duration and cust using the frontend? When I tried to use some commands, for example, `faultProposal` from votes in substrate using the account that created the DAO, I received the "vote.SenderIsNotDaoOwner" error. + +### Code Quality + +I ran `yarn lint` and didn't receive warnings. + +``` +user@localhost:~/Documents/genesisdao/genesis-dao-frontend$ yarn lint +yarn run v1.22.19 +$ next lint +info - Loaded env from /home/user/Documents/genesisdao/genesis-dao-frontend/.env +✔ No ESLint warnings or errors +Done in 2.42s. +``` + +I ran `cargo tarpaulin` to check the coverage of the pallet dao-votes, the coverage could be improved, but it isn't mandatory. + +``` +running 8 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::can_create_a_proposal ... ok +test tests::can_set_metadata ... ok +test tests::can_fault_a_proposal ... ok +test tests::can_finalize_a_proposal ... ok +test tests::can_cast_and_remove_a_vote ... ok +test tests::voting_outcome_unsuccessful_proposal ... ok +test tests::voting_outcome_successful_proposal_and_mark_implemented ... ok + +test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s + +May 26 10:47:29.638 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| node/src/chain_spec.rs: 0/2 +|| node/src/rpc.rs: 0/5 +|| pallets/dao-assets/src/benchmarking.rs: 0/32 +|| pallets/dao-assets/src/functions.rs: 158/355 +|| pallets/dao-assets/src/impl_fungibles.rs: 4/61 +|| pallets/dao-assets/src/lib.rs: 11/102 +|| pallets/dao-assets/src/types.rs: 2/2 +|| pallets/dao-assets/src/weights.rs: 0/226 +|| pallets/dao-core/src/benchmarking.rs: 0/14 +|| pallets/dao-core/src/functions.rs: 3/6 +|| pallets/dao-core/src/lib.rs: 44/96 +|| pallets/dao-core/src/weights.rs: 0/32 +|| pallets/dao-votes/src/benchmarking.rs: 0/20 +|| pallets/dao-votes/src/lib.rs: 126/164 +|| pallets/dao-votes/src/test_utils.rs: 36/44 +|| pallets/dao-votes/src/weights.rs: 0/40 +|| +31.97% coverage, 384/1201 lines covered +``` + +This coverage is only for the tests in the pallets/dao-votes. From 5bd0ef7061aca450cadeaa9f9ebd5d56b1a43930 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 29 May 2023 17:15:54 -0300 Subject: [PATCH 086/253] Update calamar_2_dsm-w3f.md --- evaluations/calamar_2_dsm-w3f.md | 92 +++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 12 deletions(-) diff --git a/evaluations/calamar_2_dsm-w3f.md b/evaluations/calamar_2_dsm-w3f.md index 7c5b1e3f9..6f9238972 100644 --- a/evaluations/calamar_2_dsm-w3f.md +++ b/evaluations/calamar_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Calamar.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -10,19 +10,87 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
| [LICENSE](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/LICENSE.txt) | | | 0b. | Documentation |
  • [x]
| [README](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md), [Calamar docs](https://docs.calamar.app/) | | -| 0c. | Testing Guide |
  • [ ]
| [README#Test](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#test), [E2E tests](https://github.com/topmonks/calamar/tree/fc791d5ddc433cea71b3587dc0718c50a017c9ee/test/e2e), [GitHub workflow](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/.github/workflows/test-and-deploy.yml#L27), [Test reports](https://github.com/topmonks/calamar/deployments?environment=test-report#activity-log), [Screenshots](https://app.argos-ci.com/topmonks/calamar) | Timeout in some tests | +| 0c. | Testing Guide |
  • [x]
| [README#Test](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#test), [E2E tests](https://github.com/topmonks/calamar/tree/fc791d5ddc433cea71b3587dc0718c50a017c9ee/test/e2e), [GitHub workflow](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/.github/workflows/test-and-deploy.yml#L27), [Test reports](https://github.com/topmonks/calamar/deployments?environment=test-report#activity-log), [Screenshots](https://app.argos-ci.com/topmonks/calamar) | | | 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/Dockerfile), [README#Docker](https://github.com/topmonks/calamar/blob/fc791d5ddc433cea71b3587dc0718c50a017c9ee/README.md#docker) | | | 0e. | Article |
  • [x]
| [Article](https://medium.com/topmonks/calamar-block-explorer-milestone-2-finished-ca581f95301a) | | -| 1. | Account / Balance overview |
  • [ ]
| [PR#142](https://github.com/topmonks/calamar/pull/142), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | -| 2. | Account / Balance charts |
  • [ ]
| [PR#143](https://github.com/topmonks/calamar/pull/143), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | -| 3. | Account / Transfers list |
  • [ ]
| [PR#134](https://github.com/topmonks/calamar/pull/134), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | -| 4. | Account / Calls list |
  • [ ]
| [PR#125](https://github.com/topmonks/calamar/pull/125), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | Not fully evaluated yet | -| 5. | Account / Identity info |
  • [ ]
| [PR#150](https://github.com/topmonks/calamar/pull/150), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/EMRpBNnfAqRb62b14cxmnCdihtUjEeyh6tfyhGwnGwxjY8F) | Not fully evaluated yet | -| 6. | Chain dashboard / Stats |
  • [ ]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | -| 7. | Chain dashboard / Asset value chart |
  • [ ]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | -| 8. | Chain dashboard / Latest blocks |
  • [ ]
| [PR#136](https://github.com/topmonks/calamar/pull/136), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | -| 9. | Chain dashboard / Latest transfers |
  • [ ]
| [PR#135](https://github.com/topmonks/calamar/pull/135), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | -| 10. | Chain dashboard / Top holders |
  • [ ]
| [PR#137](https://github.com/topmonks/calamar/pull/137), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | Not fully evaluated yet | +| 1. | Account / Balance overview |
  • [x]
| [PR#142](https://github.com/topmonks/calamar/pull/142), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 2. | Account / Balance charts |
  • [x]
| [PR#143](https://github.com/topmonks/calamar/pull/143), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 3. | Account / Transfers list |
  • [x]
| [PR#134](https://github.com/topmonks/calamar/pull/134), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 4. | Account / Calls list |
  • [x]
| [PR#125](https://github.com/topmonks/calamar/pull/125), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/GLjawuGpmgzma4JkR4A56esGofJVKXWdDAuGeF6o5D66wGE) | | +| 5. | Account / Identity info |
  • [x]
| [PR#150](https://github.com/topmonks/calamar/pull/150), [Example](https://c5a84f4a.calamar.pages.dev/kusama/account/EMRpBNnfAqRb62b14cxmnCdihtUjEeyh6tfyhGwnGwxjY8F) | | +| 6. | Chain dashboard / Stats |
  • [x]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 7. | Chain dashboard / Asset value chart |
  • [x]
| [PR#149](https://github.com/topmonks/calamar/pull/149), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 8. | Chain dashboard / Latest blocks |
  • [x]
| [PR#136](https://github.com/topmonks/calamar/pull/136), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 9. | Chain dashboard / Latest transfers |
  • [x]
| [PR#135](https://github.com/topmonks/calamar/pull/135), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | +| 10. | Chain dashboard / Top holders |
  • [x]
| [PR#137](https://github.com/topmonks/calamar/pull/137), [Example](https://c5a84f4a.calamar.pages.dev/polkadot) | | + +## Evaluation V2 + +### Automatic Test + +All tests passed this time. + +``` +user@localhost:~/Documents/calamar/calamar$ npm run test + +> calamar@0.1.0 test +> playwright test + + +Running 128 tests using 1 worker + + 128 passed (18.8m) + +To open last HTML report run: + + npx playwright show-report test/report +``` + +### Code quality + +Some lint warnings were fixed but other warnings remain, for example: + +``` +/home/user/Documents/calamar/calamar/src/utils/addRuntimeSpec.ts + 16:16 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + 28:16 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion + +/home/user/Documents/calamar/calamar/src/utils/assert.ts + 3:31 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 3:47 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/compare.ts + 23:12 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 23:25 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 25:19 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 25:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 32:70 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/extractConnectionItems.ts + 5:44 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:53 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:68 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 5:76 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/fetchGraphql.ts + 3:40 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/filterToWhere.ts + 1:39 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/number.ts + 25:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + 56:33 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/tryJsonParse.ts + 1:37 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +/home/user/Documents/calamar/calamar/src/utils/uniq.ts + 5:62 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any + +✖ 104 problems (0 errors, 104 warnings) + +``` ## Evaluation V1 From 79b15b884e755e66095b5a41b5bb6b9032a4be16 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Tue, 30 May 2023 17:32:35 +0200 Subject: [PATCH 087/253] Update silent_data-milestone_1.md --- silent_data-milestone_1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/silent_data-milestone_1.md b/silent_data-milestone_1.md index 94ee95d03..f5a06f5b8 100644 --- a/silent_data-milestone_1.md +++ b/silent_data-milestone_1.md @@ -22,7 +22,7 @@ In order to improve the developer experience a Node.js library for interacting w | 0e. | Article |[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| ...| | 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| | 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| -| 3. | Extension |[Secure enclave](https://github.com/appliedblockchain/silentdata-defi-core/compare/v0.4.0...v0.5.0-rc1)
[Web application](https://github.com/appliedblockchain/silentdata-defi-app/compare/v0.4.0...v0.5.0-rc1) | Both private repositories | +| 3. | Extension| ...| ...| **Additional Information** From aabcd5c7b4bf151dfb53228365794cce7bec10c5 Mon Sep 17 00:00:00 2001 From: annazambon <97156872+annazambon@users.noreply.github.com> Date: Tue, 30 May 2023 17:33:31 +0200 Subject: [PATCH 088/253] Update silent_data-milestone_1.md --- silent_data-milestone_1.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/silent_data-milestone_1.md b/silent_data-milestone_1.md index f5a06f5b8..a4286e00c 100644 --- a/silent_data-milestone_1.md +++ b/silent_data-milestone_1.md @@ -23,7 +23,3 @@ In order to improve the developer experience a Node.js library for interacting w | 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| | 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| | 3. | Extension| ...| ...| - -**Additional Information** - -The reviewer will need to provide their github usernames to be given read access to the `silentdata-defi-core` and `silentdata-defi-app` repositories. From fb1128d940b0ccaf16f115795e6e288b670cd69a Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 30 May 2023 16:33:05 -0300 Subject: [PATCH 089/253] Create ink_analyzer_2_dsm-w3f.md --- evaluations/ink_analyzer_2_dsm-w3f.md | 218 ++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 evaluations/ink_analyzer_2_dsm-w3f.md diff --git a/evaluations/ink_analyzer_2_dsm-w3f.md b/evaluations/ink_analyzer_2_dsm-w3f.md new file mode 100644 index 000000000..bedf8a637 --- /dev/null +++ b/evaluations/ink_analyzer_2_dsm-w3f.md @@ -0,0 +1,218 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| **0a.** | License |
  • [x]
| [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE).| | +| **0b.** | Documentation |
  • [ ]
| [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | Not fully evaluated yet | +| **0c.** | Testing and Testing Guide |
  • [ ]
| [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing).| Need integration/system tests. | +| **0d.** | Docker |
  • [x]
| [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile).| +| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | Not fully evaluated yet | +| 2. | Semantic Analyzer: Rust crate update: Code/intent actions |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | Not fully evaluated yet | +| 3. | Semantic Analyzer: Rust crate update: Hover content |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs).| Not fully evaluated yet + +## Evaluation V1 + +### Unit Test + +All tests passed. + +``` +user@localhost:~/Documents/ink/ink-analyzer$ cargo test + Finished test [unoptimized + debuginfo] target(s) in 0.03s + Running unittests src/lib.rs (target/debug/deps/ink_analyzer-08b9db526fc0fcba) + +running 132 tests +test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok +test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok +... +test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok +test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok + +test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.39s + + Running tests/actions.rs (target/debug/deps/actions-87ccbb830e983b66) + +running 1 test +test actions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s + + Running tests/completions.rs (target/debug/deps/completions-4364246353800349) + +running 1 test +test completions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.11s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-3f082fd47f67edbc) + +running 1 test +test diagnostics_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.31s + + Running tests/hover.rs (target/debug/deps/hover-5dfddcd762c09d02) + +running 1 test +test hover_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.28s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-4b77cbb2b4bfe1e6) + +running 36 tests +test attrs::meta::separator::tests::cast_works ... ok +test attrs::meta::name::tests::cast_works ... ok +test ink_test::tests::cast_works ... ok +... +test ink_impl::tests::cast_works ... ok +test utils::tests::ink_impl_closest_descendants_works ... ok +test utils::tests::ink_callable_closest_descendants_works ... ok +test tree::item_at_offset::tests::parent_variants_works ... ok +test contract::tests::cast_works ... ok + +test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-5c2121d194ffa54f) + +running 13 tests +test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok +test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok +test utils::tests::find_attribute_by_path_works ... ok +test utils::tests::parse_struct_fields_works ... ok +test utils::tests::contains_field_works ... ok +test from_ast::tests::struct_without_ast_field_fails ... ok +test utils::tests::find_field_works ... ok +test from_syntax::tests::struct_with_ink_attr_field_works ... ok +test from_syntax::tests::struct_with_ast_field_works ... ok +test from_syntax::tests::struct_with_syntax_field_works ... ok +test from_ast::tests::struct_with_ast_field_works ... ok +test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok +test from_ink_attribute::tests::optional_fields_works ... ok + +test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/test_utils-78a2957b71c23099) + +running 1 test +test tests::offset_at_variants_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests ink-analyzer + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s + + Doc-tests ink-analyzer-ir + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s + + Doc-tests ink-analyzer-macro + +running 4 tests +test src/lib.rs - from_syntax_derive (line 100) ... ok +test src/lib.rs - from_ast_derive (line 35) ... ok +test src/lib.rs - (line 6) ... ok +test src/lib.rs - from_ink_attribute_derive (line 70) ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s + + Doc-tests test_utils + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` + +I checked the coverage of these tests using `cargo tarpaulin`. It has good coverage. + +``` +May 30 07:48:26.316 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| crates/analyzer/src/analysis/actions.rs: 125/132 +|| crates/analyzer/src/analysis/completions.rs: 121/121 +|| crates/analyzer/src/analysis/diagnostics/chain_extension.rs: 66/69 +|| crates/analyzer/src/analysis/diagnostics/constructor.rs: 15/18 +|| crates/analyzer/src/analysis/diagnostics/contract.rs: 106/111 +|| crates/analyzer/src/analysis/diagnostics/event.rs: 30/33 +|| crates/analyzer/src/analysis/diagnostics/extension.rs: 8/9 +|| crates/analyzer/src/analysis/diagnostics/file.rs: 19/19 +|| crates/analyzer/src/analysis/diagnostics/ink_impl.rs: 83/90 +|| crates/analyzer/src/analysis/diagnostics/ink_test.rs: 4/5 +|| crates/analyzer/src/analysis/diagnostics/message.rs: 29/31 +|| crates/analyzer/src/analysis/diagnostics/storage.rs: 5/7 +|| crates/analyzer/src/analysis/diagnostics/storage_item.rs: 9/10 +|| crates/analyzer/src/analysis/diagnostics/topic.rs: 10/11 +|| crates/analyzer/src/analysis/diagnostics/trait_definition.rs: 38/39 +|| crates/analyzer/src/analysis/diagnostics/utils.rs: 330/375 +|| crates/analyzer/src/analysis/diagnostics.rs: 3/3 +|| crates/analyzer/src/analysis/hover/content.rs: 23/27 +|| crates/analyzer/src/analysis/hover.rs: 32/32 +|| crates/analyzer/src/analysis/utils.rs: 94/108 +|| crates/analyzer/src/analysis.rs: 10/11 +|| crates/analyzer/tests/test_data/contracts/erc20.rs: 0/4 +|| crates/analyzer/tests/test_data/trait_definitions/erc20_trait.rs: 0/4 +|| crates/analyzer/tests/utils/mod.rs: 2/2 +|| crates/ir/src/attrs/arg.rs: 57/58 +|| crates/ir/src/attrs/meta/name.rs: 7/7 +|| crates/ir/src/attrs/meta/option.rs: 12/34 +|| crates/ir/src/attrs/meta/separator.rs: 5/5 +|| crates/ir/src/attrs/meta/value.rs: 53/59 +|| crates/ir/src/attrs/meta.rs: 30/37 +|| crates/ir/src/attrs/utils.rs: 64/66 +|| crates/ir/src/attrs.rs: 59/63 +|| crates/ir/src/chain_extension.rs: 12/13 +|| crates/ir/src/constructor.rs: 2/2 +|| crates/ir/src/contract.rs: 18/18 +|| crates/ir/src/event.rs: 6/6 +|| crates/ir/src/extension.rs: 8/8 +|| crates/ir/src/file.rs: 18/18 +|| crates/ir/src/ink_impl.rs: 24/24 +|| crates/ir/src/ink_test.rs: 2/2 +|| crates/ir/src/iter.rs: 10/10 +|| crates/ir/src/message.rs: 2/2 +|| crates/ir/src/selector.rs: 54/65 +|| crates/ir/src/storage.rs: 2/2 +|| crates/ir/src/storage_item.rs: 4/4 +|| crates/ir/src/topic.rs: 2/2 +|| crates/ir/src/trait_definition.rs: 8/8 +|| crates/ir/src/traits/ast.rs: 4/4 +|| crates/ir/src/traits/ast_ext.rs: 6/6 +|| crates/ir/src/traits/callable.rs: 8/8 +|| crates/ir/src/traits/entity.rs: 4/4 +|| crates/ir/src/traits/from.rs: 2/2 +|| crates/ir/src/tree/ink_tree.rs: 11/19 +|| crates/ir/src/tree/item_at_offset.rs: 96/101 +|| crates/ir/src/utils.rs: 106/117 +|| crates/macro/src/from_ast.rs: 11/12 +|| crates/macro/src/from_ink_attribute.rs: 53/58 +|| crates/macro/src/from_syntax.rs: 20/20 +|| crates/macro/src/lib.rs: 0/5 +|| crates/macro/src/utils.rs: 15/21 +|| crates/test_utils/src/lib.rs: 24/24 +|| +90.66% coverage, 1981/2185 lines covered +``` + +Could you explain the public interface mentioned in the deliverables in this milestone? Could you provide system/integration tests for those interfaces? Could be a guide or automated tests with a contract example, expected inputs, and outputs to test these interfaces. + +### Code Quality + +I ran `cargo clippy` and received no warnings. +``` +user@localhost:~/Documents/ink/ink-analyzer$ cargo clippy + Finished dev [unoptimized + debuginfo] target(s) in 0.02s +``` From d13da89b5b5a418782a29803f9688b22114536c8 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 15:56:26 -0400 Subject: [PATCH 090/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 50 ++++++++++++++++++---- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index 829532180..4c6739423 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DIA_Bridge_Attestation_Oracle.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by keeganquigley @@ -8,14 +8,14 @@ | Number | Deliverable | Accepted | Link | Notes | -----: | ----------- | ------------- | ------------- | ------------- | | **0a.** | License |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/LICENSE) | Apache 2.0 license | -| **0b.** | Documentation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#readme) | | -| **0c.** | Testing and Testing Guide |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/tests.rs) | | +| **0b.** | Documentation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#readme) | Ok. | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/tests.rs) | Ok. | | **0d.** | Docker |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#using-docker) | | -| 0e. | Article |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/Article.md) | | -| 1. | Attestation oracle core: Off-chain worker |
  • [x]
| | -| 2. | Attestation oracle core: Pallet |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#add-the-collateral-reader-pallet-to-your-runtime) | | -| 3. | Attestation oracle core: RPCs |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/impls.rs) | | -| 4. | Attestation oracle core: Collateral ratio calculation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#about-the-collateral-reader-pallet) | | +| 0e. | Article |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/Article.md) | Ok. | +| 1. | Attestation oracle core: Off-chain worker |
  • [x]
| Ok. | +| 2. | Attestation oracle core: Pallet |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#add-the-collateral-reader-pallet-to-your-runtime) | Ok. | +| 3. | Attestation oracle core: RPCs |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/impls.rs) | Ok. | +| 4. | Attestation oracle core: Collateral ratio calculation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#about-the-collateral-reader-pallet) | Ok. | # General Notes @@ -28,6 +28,40 @@ error: linking with `cc` failed: exit status: 1 ``` This is supposedly a Mac problem but it happens on Linux too. +Switched toolchains but still getting this: +```rust +error: failed to run custom build command for `node-template-runtime v4.0.0-dev (/Users/keeganquigley/substrate-node/bin/node-template/runtime)` + +Caused by: + process didn't exit successfully: `/Users/keeganquigley/substrate-node/target/release/build/node-template-runtime-4236d63b597cd1e1/build-script-build` (exit status: 1) + --- stderr + Rust WASM toolchain not installed, please install it! + + Further error information: + ------------------------------------------------------------ + Compiling wasm-test v1.0.0 (/var/folders/6_/b7tdvp0d6h779ktj0h92w5km0000gn/T/.tmpjZAv2N) + error[E0463]: can't find crate for `std` + | + = note: the `wasm32-unknown-unknown` target may not be installed + = help: consider downloading the target with `rustup target add wasm32-unknown-unknown` + = help: consider building the standard library from source with `cargo build -Zbuild-std` + + error: cannot find macro `println` in this scope + --> src/main.rs:3:5 + | + 3 | println!("{}", env!("RUSTC_VERSION")); + | ^^^^^^^ + + error: requires `sized` lang_item + + For more information about this error, try `rustc --explain E0463`. + error: could not compile `wasm-test` (bin "wasm-test") due to 3 previous errors + ------------------------------------------------------------ + ``` +**UPDATE:** This error is happening on regular `substrate-node-template` and is not the fault of the team. + +Some pallet functions don't have comments. Consider improving them for next milestone. + ## Tests Docker fails with the following: From fa72b528369321c144897408586b492df7c6c511 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 15:56:51 -0400 Subject: [PATCH 091/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index 4c6739423..1ec88d7be 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -12,7 +12,7 @@ | **0c.** | Testing and Testing Guide |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/tests.rs) | Ok. | | **0d.** | Docker |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw#using-docker) | | | 0e. | Article |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/Article.md) | Ok. | -| 1. | Attestation oracle core: Off-chain worker |
  • [x]
| Ok. | +| 1. | Attestation oracle core: Off-chain worker |
  • [x]
| | Ok. | | 2. | Attestation oracle core: Pallet |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#add-the-collateral-reader-pallet-to-your-runtime) | Ok. | | 3. | Attestation oracle core: RPCs |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/blob/main/src/impls.rs) | Ok. | | 4. | Attestation oracle core: Collateral ratio calculation |
  • [x]
| [Link](https://github.com/diadata-org/bridgestate-ocw/tree/main#about-the-collateral-reader-pallet) | Ok. | From 71b28d77dfd16bb18f5999220cf997fe4043f604 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 15:57:42 -0400 Subject: [PATCH 092/253] Update bridgestate_1_keeganquigley.md --- evaluations/bridgestate_1_keeganquigley.md | 1 + 1 file changed, 1 insertion(+) diff --git a/evaluations/bridgestate_1_keeganquigley.md b/evaluations/bridgestate_1_keeganquigley.md index 1ec88d7be..e051b9499 100644 --- a/evaluations/bridgestate_1_keeganquigley.md +++ b/evaluations/bridgestate_1_keeganquigley.md @@ -99,6 +99,7 @@ Building parity/substrate:latest docker image, hang on! ------ process "/bin/sh -c cargo build --locked --release" did not complete successfully: exit code: 137 ``` +Disk space doesn't seem to be an issue, please fix this for the next milestone. Unit tests all pass, however there are some warnings about unused variables: From 4e8dfe00d8e7ca36663fbbf2d341619677cfe49c Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 16:15:26 -0400 Subject: [PATCH 093/253] Update silentdata_1_keeganquigley.md --- evaluations/silentdata_1_keeganquigley.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/evaluations/silentdata_1_keeganquigley.md b/evaluations/silentdata_1_keeganquigley.md index 7b183bb62..84eef460c 100644 --- a/evaluations/silentdata_1_keeganquigley.md +++ b/evaluations/silentdata_1_keeganquigley.md @@ -1,20 +1,20 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_silentdata.md - **Milestone:** 1 - **Previously successfully merged evaluation:** All by keeganquigley | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- | ------------- |------------- | -| 0a. | License |
  • [x]
| [Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE) | ...| -| 0b. | Documentation |
  • [x]
| [Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
[Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md) | ...| -| 0c. | Testing Guide |
  • [x]
|[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing) | ...| -| 0d. | Docker |
  • [x]
|[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
[Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node) | ...| -| 0e. | Article |
  • [x]
|[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| ...| -| 1. | Library |
  • [x]
|[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| -| 2. | Smart Contract |
  • [x]
|[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| -| 3. | Extension |
  • [x]
|[Secure enclave](https://github.com/appliedblockchain/silentdata-defi-core/compare/v0.4.0...v0.5.0-rc1)
[Web application](https://github.com/appliedblockchain/silentdata-defi-app/compare/v0.4.0...v0.5.0-rc1) | Will these private repos be published? | +| 0a. | License |
  • [x]
| [Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE) | Ok. | +| 0b. | Documentation |
  • [x]
| [Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
[Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
[Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md) | Ok. | +| 0c. | Testing Guide |
  • [x]
|[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing) | Ok. | +| 0d. | Docker |
  • [x]
|[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
[Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node) | Ok. | +| 0e. | Article |
  • [x]
|[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| Ok. | +| 1. | Library |
  • [x]
|[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | Ok. | +| 2. | Smart Contract |
  • [x]
|[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | Ok. | +| 3. | Extension |
  • [x]
| | Ok. | # General Notes @@ -201,6 +201,8 @@ Errors Files 2 src/lib.ts:1 14 src/util.ts:1 ``` +**UPDATE:** Build issues were resolved. + In the `silentdata-node` repo, yarn is unsuccessful in installing the dependancies: ``` ubuntu@ip-172-31-3-233:~$ yarn add @appliedblockchain/silentdata-node From 7ad626de3747374e440fcfd6cde143c3d3c8c6bf Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 16:27:11 -0400 Subject: [PATCH 094/253] Update silentdata_1_keeganquigley.md --- evaluations/silentdata_1_keeganquigley.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/evaluations/silentdata_1_keeganquigley.md b/evaluations/silentdata_1_keeganquigley.md index 84eef460c..e089521b4 100644 --- a/evaluations/silentdata_1_keeganquigley.md +++ b/evaluations/silentdata_1_keeganquigley.md @@ -85,7 +85,7 @@ docker build -t silentdata-example . => => writing image sha256:166414d1cac1dc8c830fa4e2cd3f65cbb25aa749f67882a2fc6537af75cb7b5c 0.0s => => naming to docker.io/library/silentdata-example ``` - Docker image successfully builds and runs for the pallet as well. I'm also able to manually build the pallet into the node. + Docker image successfully builds and runs for the pallet as well. I'm also able to manually build the pallet into the node. I'm able to deploy and instantiate the contract on the node and call it. Instagram checks work in Docker but `npm run build` fails with the following errors: ``` @@ -250,3 +250,4 @@ docker run silentdata-example \ --walletAddress={WALLET_ADDRESS} An error occurred: Client ID or API key incorrect ``` +Instagram check works. From 9d2e80b4361c5dd086cd70bba6180686544f61c1 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 30 May 2023 16:29:26 -0400 Subject: [PATCH 095/253] Update silentdata_1_keeganquigley.md --- evaluations/silentdata_1_keeganquigley.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/evaluations/silentdata_1_keeganquigley.md b/evaluations/silentdata_1_keeganquigley.md index e089521b4..1bf89f7ca 100644 --- a/evaluations/silentdata_1_keeganquigley.md +++ b/evaluations/silentdata_1_keeganquigley.md @@ -85,9 +85,9 @@ docker build -t silentdata-example . => => writing image sha256:166414d1cac1dc8c830fa4e2cd3f65cbb25aa749f67882a2fc6537af75cb7b5c 0.0s => => naming to docker.io/library/silentdata-example ``` - Docker image successfully builds and runs for the pallet as well. I'm also able to manually build the pallet into the node. I'm able to deploy and instantiate the contract on the node and call it. +Docker image successfully builds and runs for the pallet as well. I'm also able to manually build the pallet into the node. I'm able to deploy and instantiate the contract on the node and call it. - Instagram checks work in Docker but `npm run build` fails with the following errors: +Instagram checks work in Docker but `npm run build` fails with the following errors: ``` npm run build @@ -239,6 +239,8 @@ Done in 5.18s. info There appears to be trouble with the npm registry (returned undefined). Retrying... info There appears to be trouble with the npm registry (returned undefined). Retrying... ``` + **UPDATE:** Repo doesn't apply. + ## Guide I'm able to get through the guide and register and create an API key. Building the Docker file works, but then for some reason the command fails: From b813a606c5af0c25a815c24c69e34ba3b87ab78b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 30 May 2023 23:11:02 +0200 Subject: [PATCH 096/253] Substrate Tutorials M2 accepted --- evaluations/substrate-tutorials_2_semuelle.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/evaluations/substrate-tutorials_2_semuelle.md b/evaluations/substrate-tutorials_2_semuelle.md index c44894051..9f75e832d 100755 --- a/evaluations/substrate-tutorials_2_semuelle.md +++ b/evaluations/substrate-tutorials_2_semuelle.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/substrate-tutorials.md - **Milestone:** 2 - **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) @@ -9,10 +9,10 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | :------: | ---- |----------------- | | 0a. | License |
  • [x]
| [LICENSE](https://github.com/rusty-crewmates/substrate-tutorials/blob/ab1a16c78dea616c9081d246288088fb6a9583ae/LICENSE) | Apache 2.0 | -| 0b. | Documentation |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises) | For each exercise we will provide a **README** that explains what to do, along with **inline instructions** for the user to follow in the code files | -| 0c. | Testing Guide |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises), [solutions branch](https://github.com/rusty-crewmates/substrate-tutorials/tree/b8da46c6e4ddb57750c6b77759e6e52655950500/exercises) | — | +| 0b. | Documentation |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises) | README and inline instructions for each exercise. | +| 0c. | Testing Guide |
  • [x]
| [READMEs](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises), [solutions](https://github.com/rusty-crewmates/substrate-tutorials/tree/b8da46c6e4ddb57750c6b77759e6e52655950500/exercises) | Solutions provided in a separate branch. | | 0d. | Docker |
  • [x]
| — | Skipped, unnecessary | -| 0e. | Article |
  • [ ]
| link | Missing | +| 0e. | Article |
  • [x]
| [medium.com](https://medium.com/@timothedelabrouille/learn-substrate-hands-on-5126069d1334) | — | | 1. | Exercise `genesis_config` |
  • [x]
| [exercises/ex08-genesis-config](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex08-genesis-config) | — | | 2. | Exercise `mocks` |
  • [x]
| [exercises/ex09-mock](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex09-mock) | — | | 3. | Exercise `weight` |
  • [x]
| [exercises/ex06-weights](https://github.com/rusty-crewmates/substrate-tutorials/tree/ab1a16c78dea616c9081d246288088fb6a9583ae/exercises/ex06-weights) | — | From 3966646194098728a9f80440a0209437c432520f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Delabrouille?= <34384633+tdelabro@users.noreply.github.com> Date: Tue, 30 May 2023 23:16:42 +0200 Subject: [PATCH 097/253] add deliveries/substrate-tutorials-milestone_2.md (#860) --- deliveries/substrate-tutorials-milestone_2.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 deliveries/substrate-tutorials-milestone_2.md diff --git a/deliveries/substrate-tutorials-milestone_2.md b/deliveries/substrate-tutorials-milestone_2.md new file mode 100644 index 000000000..8c800d3c3 --- /dev/null +++ b/deliveries/substrate-tutorials-milestone_2.md @@ -0,0 +1,27 @@ + +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/substrate-tutorials.md +* **Milestone Number:** 2 + +**Context** + +This milestone deliverable consist into 6 exercises to learn substrate, put together in a proper and suitable format. + +**Deliverables** + +| Number | Deliverable | Specification | +| -----: | ----------- | ------------- | +| 0a. | License | Apache 2.0 | +| 0b. | Documentation | https://github.com/rusty-crewmates/substrate-tutorials | | +| 0c. | Testing Guide | https://github.com/rusty-crewmates/substrate-tutorials | There is not really a way to test it other than doing the tutorials yourself. The whole interset of the thing is in the pedagogy we deployed. You have to live it ;)| +| 0d. | Docker | After a few iteration used by students, we found out that our docker image used to run the tests was not usefull. So nothing here | +| 0e. | Article | We will tweet to anounce the finalization of milestone 2 | +| 1. | Exercise `genesis_config` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex08-genesis-config | +| 2. | Exercise `mocks` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex09-mock | +| 3. | Exercise `weight` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex06-weights | +| 4. | Exercise `hooks` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex05-hooks | +| 5. | Exercise `imbalances` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex07-imbalances | +| 6. | Exercise `external_workers` | https://github.com/rusty-crewmates/substrate-tutorials/tree/main/exercises/ex10-offchain-worker | From 0081c6b40c6bb257a002a17acb8a5a02d6d5d6fc Mon Sep 17 00:00:00 2001 From: davidsemakula Date: Wed, 31 May 2023 03:48:23 +0300 Subject: [PATCH 098/253] update notes for ink! analyzer milestone 2 --- deliveries/ink-analyzer-milestone-2.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/deliveries/ink-analyzer-milestone-2.md b/deliveries/ink-analyzer-milestone-2.md index 6994ce034..926de8615 100644 --- a/deliveries/ink-analyzer-milestone-2.md +++ b/deliveries/ink-analyzer-milestone-2.md @@ -15,15 +15,15 @@ Please see the [README](https://github.com/ink-analyzer/ink-analyzer#readme) for **Deliverables** -| Number | Deliverable | Link | Notes | -|---------|-------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Dual-licensed under either of MIT or Apache 2.0 licenses at the downstream user's option. | -| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | The semantic analyzer crate's README is published on both [GitHub](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) and [crates.io](https://crates.io/crates/ink-analyzer). It contains instructions for installation and usage, and links to crate specific documentation on docs.rs. | -| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Each feature is implemented as a module (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs)), with unit tests for each feature implemented in its corresponding module. Integration tests for each feature can be found in the [tests directory of the semantic analyzer crate](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/tests) (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/hover.rs)). | -| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | | -| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | | -| 2. | Semantic Analyzer: Rust crate update: Code/intent actions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | | -| 3. | Semantic Analyzer: Rust crate update: Hover content | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs). | References to the source of the hover content can be found in the doc comments for each item in the [macros](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/macros.rs) and [args](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/args.rs) submodules. | +| Number | Deliverable | Link | Notes | +|---------|-------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Dual-licensed under either of MIT or Apache 2.0 licenses at the downstream user's option. | +| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | The semantic analyzer crate's README is published on both [GitHub](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) and [crates.io](https://crates.io/crates/ink-analyzer). It contains instructions for installation and usage, and links to crate specific documentation on docs.rs. | +| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Each feature is implemented as a module (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs)), with unit tests for each feature implemented in its corresponding module. Integration tests for each feature can be found in the [tests directory of the semantic analyzer crate](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/tests) (i.e [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/actions.rs) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/tests/hover.rs)). Checking out the [parse_offset_at](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/test_utils/src/lib.rs#L14-L45) utility may be useful as it is extensively used in both the unit and integration tests for all 3 features. | +| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | | +| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | The public interface is an [associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) of the [Analysis](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L17-L22) entry point whose [constructor](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L25-L30) accepts a string representation (`&str`) of ink! smart contract code as input, while the [completions associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) accepts an offset-based "cursor" position as input and returns completion suggestions for ink! attribute macros and arguments (if any) at the given position. | +| 2. | Semantic Analyzer: Rust crate update: Code/intent actions | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | The public interface is an [associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) of the [Analysis](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L17-L22) entry point whose [constructor](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L25-L30) accepts a string representation (`&str`) of ink! smart contract code as input, while the [actions associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) accepts an offset-based "cursor" position as input and returns contextual assists for adding relevant ink! attribute macros and arguments (if any) to the item at the given position. | +| 3. | Semantic Analyzer: Rust crate update: Hover content | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs). | The public interface is an [associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) of the [Analysis](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L17-L22) entry point whose [constructor](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L25-L30) accepts a string representation (`&str`) of ink! smart contract code as input, while the [hover associated method](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) accepts an offset-based text range as input and returns descriptive/informational text for the ink! attribute macro or argument that covers the given text range. References to the source of the hover content can be found in the doc comments for each item in the [macros](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/macros.rs) and [args](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis/hover/content/args.rs) submodules. | **Additional Information** From 980bba274997bd294179261eb8a6fb25aa4c7a48 Mon Sep 17 00:00:00 2001 From: Doordashcon Date: Wed, 31 May 2023 10:05:26 +0000 Subject: [PATCH 099/253] init --- deliveries/ismp-milestone-delivery.md | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 deliveries/ismp-milestone-delivery.md diff --git a/deliveries/ismp-milestone-delivery.md b/deliveries/ismp-milestone-delivery.md new file mode 100644 index 000000000..a5a26d844 --- /dev/null +++ b/deliveries/ismp-milestone-delivery.md @@ -0,0 +1,60 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/ismp.md](https://github.com/w3f/Grants-Program/blob/master/applications/ismp.md) +* **Milestone Number:** 1 & 2 + +**Context** +> This presents the completion of ISMP. Trustless state machine based messaging protocol. + +**Deliverables** + +### **`ismp-rs`** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE](https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE)| | +| 0b. | Documentation |[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| | +| 0c. | Testing and Testing Guide |[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Presents a testsuite that can be verified from the latest [CI checks](https://github.com/polytope-labs/ismp-rs/actions/runs/5111348956) and workflow file.| +| 0d. | Docker | | | +| 0e. | Article | | | +| 0f. | ISMP Specification |[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| | +| 1 | `ismp-rs` |[https://github.com/polytope-labs/ismp-rs](https://github.com/polytope-labs/ismp-rs)| | +| 1a. | `ISMPHOST` |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37)| | +| 1b. | `ISMPRouter` |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs)| | +| 1c. | `ISMPModule` |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs)| | +| 1d. | `ConsensusClient` |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91)| | +| | Request/Response proof verification |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123)| | +| | Request Timeout verification |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160)| | +| 1e. | Handlers |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs)| | +| | `CreateConsensusClient` |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91)| | +| | `ConsensusMessage` |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28)| | +| | `RequestMessage` |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs)| | +| | `ResponseMessage` |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs)| | +| | `TimeoutMessage` |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs)| | + + +### **`pallet-ismp`** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE](https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE)| | +| 0b. | Documentation |[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| | +| 0c. | Testing and Testing Guide |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| Presents unit tests that can be verified from the latest [CI checks](https://github.com/polytope-labs/substrate-ismp/actions/runs/5123249573) and workflow file.| +| 0d. | Docker | | | +| 0e. | Article| | | +| 1. | pallet-ismp |[https://github.com/polytope-labs/substrate-ismp](https://github.com/polytope-labs/substrate-ismp)| | +| 1a. | Host |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48)| | +| 1b. | Router |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48)| | +| 1c. | `ParachainConsensusClient` |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115)| | +| 1d. | RPC |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs)| | +| 1e. | Runtime-APIs |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| | +| 1f. | Bechmarks |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| | + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 49200b7e7181dfea2427b2e989955bc46c2c63aa Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Wed, 31 May 2023 17:22:02 -0300 Subject: [PATCH 100/253] Update MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md --- .../MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md b/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md index f6c417460..1477171ea 100644 --- a/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md +++ b/evaluations/MOBR-Knowledge-Oriented-Framework_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Knowledge-Oriented-Framework.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -10,11 +10,16 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
|[License](https://creativecommons.org/licenses/by-sa/4.0/)| | | 0b. | Documentation/Tutorial |
  • [x]
|[TR1](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Use%20case.pdf)| | -| 0c. | Methodology |
  • [ ]
|[Article Section 3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/Article.pdf)| Need review of terms used and citations/references | +| 0c. | Methodology |
  • [x]
|[Article Section 3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/Article.pdf)| | | 0d. | Infrastructure |
  • [x]
|[TR2](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Infrastructure%20requirements.pdf)|| | 0e. | Article |
  • [x]
|[Article](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/Article.pdf)| | -| 1. | Case Study |
  • [ ]
|[TR3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Case%20study.pdf)| Need review of the questions| +| 1. | Case Study |
  • [x]
|[TR3](https://github.com/mobr-ai/POnto/raw/main/deliverables/milestone2/TR%20-%20Case%20study.pdf)| | +## Evaluation V2 + +The references requested were added in the methodology section. + +The grantees explained that the current instruments of the research [are in draft version](https://github.com/w3f/Grant-Milestone-Delivery/pull/863#issuecomment-1568419705) and could be adjusted. As the intention declared in the deliverable definition 0c. Methodology of M2 "... the requirements for the query engine will be grounded in real-world experience needs", and the case study is about Polkadot ecosystem, I still think that would be better to adjust the instruments to be more specific to our ecosystem thus helping to achieve this goal. As M3 is based on gathering experts' opinions, this requirement could be fulfilled later in M3 and doesn't prevent the approval of M2. ## Evaluation V1 From 8e14c1250df7da1dbf30f2771ecd9523dfd9c66f Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Wed, 31 May 2023 17:55:08 -0300 Subject: [PATCH 101/253] Update ink_analyzer_2_dsm-w3f.md --- evaluations/ink_analyzer_2_dsm-w3f.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/evaluations/ink_analyzer_2_dsm-w3f.md b/evaluations/ink_analyzer_2_dsm-w3f.md index bedf8a637..89f50dfde 100644 --- a/evaluations/ink_analyzer_2_dsm-w3f.md +++ b/evaluations/ink_analyzer_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -9,12 +9,15 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | **0a.** | License |
  • [x]
| [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE).| | -| **0b.** | Documentation |
  • [ ]
| [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | Not fully evaluated yet | -| **0c.** | Testing and Testing Guide |
  • [ ]
| [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing).| Need integration/system tests. | +| **0b.** | Documentation |
  • [x]
| [Project README](https://github.com/ink-analyzer/ink-analyzer#readme) and [semantic analyzer (ink-analyzer) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer#readme) on GitHub, [semantic analyzer crate (ink-analyzer) rustdoc](https://docs.rs/ink-analyzer/latest/ink_analyzer/) documentation on docs.rs and extensive inline source documentation. | Not fully evaluated yet | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing).| | | **0d.** | Docker |
  • [x]
| [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile).| -| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | Not fully evaluated yet | -| 2. | Semantic Analyzer: Rust crate update: Code/intent actions |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | Not fully evaluated yet | -| 3. | Semantic Analyzer: Rust crate update: Hover content |
  • [ ]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs).| Not fully evaluated yet +| 1. | Semantic Analyzer: Rust crate update: Code completion suggestions |
  • [x]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [completions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L42-L45) and [completions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/completions.rs). | | +| 2. | Semantic Analyzer: Rust crate update: Code/intent actions |
  • [x]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [code/intent actions public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L47-L50) and [code/intent actions module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/actions.rs). | | +| 3. | Semantic Analyzer: Rust crate update: Hover content |
  • [x]
| [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [hover content public interface](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/analyzer/src/analysis.rs#L52-L55) and [hover content module](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer/src/analysis/hover.rs).| +## Evaluation V2 + +The grantee provided more [explanations about the integration/system tests](https://github.com/w3f/Grant-Milestone-Delivery/pull/873#issuecomment-1569335266). They are adequate to check the current milestone delivery since are using complete contracts, performing some modifications on it and checking the expected results of the features. ## Evaluation V1 From 391b639ddbd86aa6aeee912c67705d763d31d7ed Mon Sep 17 00:00:00 2001 From: Doordashcon Date: Thu, 1 Jun 2023 10:57:15 +0000 Subject: [PATCH 102/253] add docker --- deliveries/ismp-milestone-delivery.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deliveries/ismp-milestone-delivery.md b/deliveries/ismp-milestone-delivery.md index a5a26d844..593fb621b 100644 --- a/deliveries/ismp-milestone-delivery.md +++ b/deliveries/ismp-milestone-delivery.md @@ -21,8 +21,8 @@ | 0a. | License |[https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE](https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE)| | | 0b. | Documentation |[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| | | 0c. | Testing and Testing Guide |[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Presents a testsuite that can be verified from the latest [CI checks](https://github.com/polytope-labs/ismp-rs/actions/runs/5111348956) and workflow file.| -| 0d. | Docker | | | -| 0e. | Article | | | +| 0d. | Docker |[https://github.com/polytope-labs/ismp-rs#run-test-in-docker](https://github.com/polytope-labs/ismp-rs#run-test-in-docker)| | +| 0e. | Article | TBA | | | 0f. | ISMP Specification |[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| | | 1 | `ismp-rs` |[https://github.com/polytope-labs/ismp-rs](https://github.com/polytope-labs/ismp-rs)| | | 1a. | `ISMPHOST` |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37)| | @@ -46,8 +46,8 @@ | 0a. | License |[https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE](https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE)| | | 0b. | Documentation |[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| | | 0c. | Testing and Testing Guide |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| Presents unit tests that can be verified from the latest [CI checks](https://github.com/polytope-labs/substrate-ismp/actions/runs/5123249573) and workflow file.| -| 0d. | Docker | | | -| 0e. | Article| | | +| 0d. | Docker |[https://github.com/polytope-labs/substrate-ismp#run-test-in-docker](https://github.com/polytope-labs/substrate-ismp#run-test-in-docker)| | +| 0e. | Article| TBA | | | 1. | pallet-ismp |[https://github.com/polytope-labs/substrate-ismp](https://github.com/polytope-labs/substrate-ismp)| | | 1a. | Host |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48)| | | 1b. | Router |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48)| | @@ -57,4 +57,3 @@ | 1f. | Bechmarks |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| | **Additional Information** -> Any further comments on the milestone that you would like to share with us. From 4cac983161bff9238d9f0af849990b7ca44e6304 Mon Sep 17 00:00:00 2001 From: Doordashcon Date: Thu, 1 Jun 2023 11:07:43 +0000 Subject: [PATCH 103/253] additional information --- deliveries/ismp-milestone-delivery.md | 1 + 1 file changed, 1 insertion(+) diff --git a/deliveries/ismp-milestone-delivery.md b/deliveries/ismp-milestone-delivery.md index 593fb621b..0d52c1cb8 100644 --- a/deliveries/ismp-milestone-delivery.md +++ b/deliveries/ismp-milestone-delivery.md @@ -57,3 +57,4 @@ | 1f. | Bechmarks |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| | **Additional Information** +This delivery contains both milestones for the ISMP proposal as `pallet-ismp` is dependent on `ismp-rs`. From 3f156ef59ef451eb7704614e194f56afbfa5eb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 1 Jun 2023 22:17:32 +0200 Subject: [PATCH 104/253] Open Rollup M1 in progress --- evaluations/open-rollup_1_semuelle.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 evaluations/open-rollup_1_semuelle.md diff --git a/evaluations/open-rollup_1_semuelle.md b/evaluations/open-rollup_1_semuelle.md new file mode 100755 index 000000000..488ff06ea --- /dev/null +++ b/evaluations/open-rollup_1_semuelle.md @@ -0,0 +1,22 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/openrollup-mvp-phase-1.md +- **Milestone:** 1 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 0a. | License |
  • [x]
| [LICENSE](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/LICENSE) | Apache 2.0 | +| 0b. | Documentation |
  • [ ]
| [README](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md) | — | +| 0c. | Testing Guide |
  • [x]
| [README](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md) | Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | +| 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/Dockerfile) | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | +| 0e. | Article |
  • [ ]
| [open-rollup/blog](https://github.com/open-rollup/blog/blob/592c8628a6b6850248046827da976f4c7729f233/pallet-publish.md) | Very short, basic description only published on Github | +| 1. | Open rollup Pallet |
  • [x]
| [open-rollup/pallet-open-rollup](https://github.com/open-rollup/pallet-open-rollup/tree/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c) | — +| 2. | Miden verifier in Open rollup Pallet |
  • [x]
| [src/verifier](https://github.com/open-rollup/pallet-open-rollup/tree/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/src/verifier) | We provide the verifier trait suitable for general apps, and a miden verifier that implements the verifier trait. | + + +## General Notes + +- — From a6f1a1de5f2c089d3e82c47a74b0cfe852805c5f Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 1 Jun 2023 17:27:37 -0400 Subject: [PATCH 105/253] Create high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 evaluations/high_availability_validator_setup_2_keeganquigley.md diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md new file mode 100644 index 000000000..585599057 --- /dev/null +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -0,0 +1,109 @@ +# Evaluation + +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/High_availability_validator_setup.md +- **Milestone:** 2 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- | ------------- |------------- | +| 0a. | License |
  • [x]
| https://github.com/bright/substrate-raft/blob/milestone-1/LICENSE-GPL3 | GPLv3, Unlicense | +| 0b. | Documentation |
  • [x]
| Inline | | +| 0c. | Testing and Testing Guide |
  • [x]
| - | | +| 0d. | Docker |
  • [x]
| https://github.com/bright/substrate-raft/tree/milestone-1/docker | | +| **1** | Basic Service |
  • [x]
| [Authority-service](https://github.com/bright/substrate-raft-setup/blob/milestone-2/bin/authority-service) code | | +| **2** | Getting permission from microservice |
  • [x]
| [Repository](https://github.com/bright/substrate-raft-setup/blob/milestone-2) for the custom node, and the [implementation](https://github.com/bright/substrate-raft-setup/blob/milestone-2/permission_resolver/src/lib.rs) for the PermissionResolver | | +| **3** | Allow as optional |
  • [x]
| Code for the [cli](https://github.com/bright/substrate-raft-setup/blob/milestone-2/node/src/cli.rs) | | +| **4** | Clean up substrate code |
  • [x]
| Changes in [code](https://github.com/bright/substrate-raft/commit/f4bab8f2a461271ab52ec6343934f6b84623b6c8) | | +| **5** | Integration test |
  • [x]
| | | + +# General Notes + +## Tests + +Running `cargo test` in `substrate-raft-setup` fails with: +```rust +error: failed to run custom build command for `openssl-sys v0.9.80` + +Caused by: + process didn't exit successfully: `/home/ubuntu/substrate-raft-setup/target/debug/build/openssl-sys-d554517e5179ead6/build-script-main` (exit status: 101) + --- stdout + cargo:rustc-cfg=const_fn + cargo:rustc-cfg=openssl + cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR + X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset + cargo:rerun-if-env-changed=OPENSSL_LIB_DIR + OPENSSL_LIB_DIR unset + cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR + X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset + cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR + OPENSSL_INCLUDE_DIR unset + cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR + X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset + cargo:rerun-if-env-changed=OPENSSL_DIR + OPENSSL_DIR unset + cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG + cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu + cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu + cargo:rerun-if-env-changed=HOST_PKG_CONFIG + cargo:rerun-if-env-changed=PKG_CONFIG + cargo:rerun-if-env-changed=OPENSSL_STATIC + cargo:rerun-if-env-changed=OPENSSL_DYNAMIC + cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC + cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC + cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu + cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu + cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH + cargo:rerun-if-env-changed=PKG_CONFIG_PATH + cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu + cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu + cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR + cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR + cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu + cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu + cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR + cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR + run pkg_config fail: "Could not run `PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=\"1\" \"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"`\nThe pkg-config command could not be found.\n\nMost likely, you need to install a pkg-config package for your OS.\nTry `apt install pkg-config`, or `yum install pkg-config`,\nor `pkg install pkg-config` depending on your distribution.\n\nIf you've already installed it, ensure the pkg-config command is one of the\ndirectories in the PATH environment variable.\n\nIf you did not expect this build to link to a pre-installed system library,\nthen check documentation of the openssl-sys crate for an option to\nbuild the library from source, or disable features or dependencies\nthat require pkg-config." + + --- stderr + thread 'main' panicked at ' + + Could not find directory of OpenSSL installation, and this `-sys` crate cannot + proceed without this knowledge. If OpenSSL is installed and this crate had + trouble finding it, you can set the `OPENSSL_DIR` environment variable for the + compilation process. + + Make sure you also have the development packages of openssl installed. + For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora. + + If you're in a situation where you think the directory *should* be found + automatically, please open a bug at https://github.com/sfackler/rust-openssl + and include information about your system as well as this message. + + $HOST = x86_64-unknown-linux-gnu + $TARGET = x86_64-unknown-linux-gnu + openssl-sys = 0.9.80 + + + It looks like you're compiling on Linux and also targeting Linux. Currently this + requires the `pkg-config` utility to find OpenSSL but unfortunately `pkg-config` + could not be found. If you have OpenSSL installed you can likely fix this by + installing `pkg-config`. + + ', /home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.80/build/find_normal.rs:191:5 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + ``` + I tried installing OpenSSL tools with `sudo apt-get install libssl-dev` to no avail. + + **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`: +```rust +warning: associated function `project_ref` is never used + --> client/telemetry/src/transport.rs:80:1 + | +80 | #[pin_project::pin_project] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(dead_code)]` on by default + +warning: `sc-telemetry` (lib) generated 1 warning +``` From 42777e19453bd1a0f5e27659c578b300bd888997 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Thu, 1 Jun 2023 18:52:07 -0400 Subject: [PATCH 106/253] Update high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md index 585599057..2031f20a0 100644 --- a/evaluations/high_availability_validator_setup_2_keeganquigley.md +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -95,6 +95,56 @@ Caused by: ``` I tried installing OpenSSL tools with `sudo apt-get install libssl-dev` to no avail. + Docker also fails to run: + ```rust + ~/substrate-raft-setup ~/substrate-raft-setup +Building bright/substrate-raft-setup:latest docker image, hang on! +[+] Building 3.7s (9/14) + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 1.53kB 0.0s + => [internal] load .dockerignore 0.0s + => => transferring context: 2B 0.0s + => [internal] load metadata for docker.io/paritytech/ci-linux:1c0fde6a-20220811 1.5s + => [internal] load metadata for docker.io/library/ubuntu:20.04 1.3s + => CANCELED [builder 1/4] FROM docker.io/paritytech/ci-linux:1c0fde6a-20220811@sha256:4e8c072ea12bc17d99cb531adb58d 2.2s + => => resolve docker.io/paritytech/ci-linux:1c0fde6a-20220811@sha256:4e8c072ea12bc17d99cb531adb58dea5a4c7d4880a8a86 0.0s + => => sha256:a4115f36e7e5073366d03bde65ca2cb5e4c8e443c1b1f316b6aa4179fab42000 1.05MB / 527.84MB 2.2s + => => sha256:660ac983e23e1bd2d0e97d5d2e468994e007da287a2e395ca13e53b8571e5283 2.10MB / 337.09MB 2.2s + => => sha256:4e8c072ea12bc17d99cb531adb58dea5a4c7d4880a8a86525052d24d1454e89e 761B / 761B 0.0s + => => sha256:a63a944a77f9ebe6cbf1d5100a7c9c07bb3fd3181d298bb166c8a1ce75b81aec 9.38kB / 9.38kB 0.0s + => => sha256:751ef25978b2971e15496369695ba51ed5b1b9aaca7e37b18a173d754d1ca820 8.39MB / 27.14MB 2.2s + => [internal] load build context 0.6s + => => transferring context: 50.35MB 0.5s + => [stage-1 1/5] FROM docker.io/library/ubuntu:20.04@sha256:db8bf6f4fb351aa7a26e27ba2686cf35a6a409f65603e59d4c203e5 0.0s + => CACHED [stage-1 2/5] RUN apt-get update 0.0s + => ERROR [stage-1 3/5] RUN apt-get install -y openssl 2.2s +------ + > [stage-1 3/5] RUN apt-get install -y openssl: +#7 0.363 Reading package lists... +#7 0.953 Building dependency tree... +#7 1.035 Reading state information... +#7 1.119 The following additional packages will be installed: +#7 1.119 libssl1.1 +#7 1.119 Suggested packages: +#7 1.119 ca-certificates +#7 1.153 The following NEW packages will be installed: +#7 1.153 libssl1.1 openssl +#7 1.635 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. +#7 1.635 Need to get 1757 kB of archives. +#7 1.635 After this operation, 4950 kB of additional disk space will be used. +#7 1.635 Ign:1 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libssl1.1 arm64 1.1.1f-1ubuntu2.17 +#7 1.781 Ign:2 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 openssl arm64 1.1.1f-1ubuntu2.17 +#7 1.946 Err:1 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 libssl1.1 arm64 1.1.1f-1ubuntu2.17 +#7 1.946 404 Not Found [IP: 185.125.190.39 80] +#7 2.106 Err:2 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 openssl arm64 1.1.1f-1ubuntu2.17 +#7 2.106 404 Not Found [IP: 185.125.190.39 80] +#7 2.117 E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.17_arm64.deb 404 Not Found [IP: 185.125.190.39 80] +#7 2.117 E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/pool/main/o/openssl/openssl_1.1.1f-1ubuntu2.17_arm64.deb 404 Not Found [IP: 185.125.190.39 80] +#7 2.117 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? +------ +process "/bin/sh -c apt-get install -y openssl" did not complete successfully: exit code: 100 +``` + **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`: ```rust warning: associated function `project_ref` is never used From a79f993fcbc2bd9dc9bc3461305e3ed8836d61dc Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 2 Jun 2023 13:42:08 -0300 Subject: [PATCH 107/253] Create saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 245 +++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 evaluations/saas3_2_dsm-w3f.md diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md new file mode 100644 index 000000000..1d3c25d2c --- /dev/null +++ b/evaluations/saas3_2_dsm-w3f.md @@ -0,0 +1,245 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/SaaS3.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [ ]
| Apache 2.0 | License file is missing in the root of the repository +| 0b. | Documentation |
  • [ ]
|https://github.com/SaaS3-Foundation/saas3-dao| Not fully evaluated yet | +| 0c. | Testing Guide |
  • [ ]
|https://github.com/SaaS3-Foundation/saas3-dao| Need a manual testing guide | +| 0d. | Docker |
  • [ ]
| We are not able to provide a Dockerfile | Would be easier to setup with a zombienet | +| oe. | Article/Tutorial |
  • [ ]
| https://github.com/SaaS3-Foundation/saas3-dao/blob/main/Tutorial.md | Not fully evaluated yet | +| 1. | pallet-court |
  • [ ]
| https://github.com/SaaS3-Foundation/saas3-dao/tree/main/pallets/court |Not fully evaluated yet | +| | Functions |
  • [ ]
| https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L233
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L262
https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L286| Not fully evaluated yet | +| | Structs | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL68C1-L79C2 | | +| | Storage | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL115C2-L121C4 | | +| | Events | |https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L160 | +| 2. | pallet-treasury |
  • [ ]
| https://github.com/SaaS3-Foundation/saas3-dao/blob/main/pallets/treasury/src/lib.rs| Not fully evaluated yet | +| | Storage | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L117 | +| | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | +| 3. | UI & Frontend |
  • [ ]
| https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | + +## Evaluation V1 + +### Documentation + +During the execution of the installation steps I had one doubt. Is the [Prepare parachain node](https://github.com/SaaS3-Foundation/saas3-dao#prepare-parachain-node) step needed since the `para-2000-genesis-state` and `para-2000-wasm` files are in the repository? + +In [Register with the local relay chain](https://github.com/SaaS3-Foundation/saas3-dao#register-with-the-local-relay-chain) and in the Prepare parachain node needs to specify that the user needs to access the substrate with port 9977 to do the configuration. + +The testing guide needs to have examples of inputs and expected outputs. The frontend also needs a testing guide. + +### Automated Test + +I ran `cargo test`. All tests passed but returned some warnings. + +``` +user@localhost:~/Documents/saas3/saas3-dao$ cargo +nightly test +⚡ Found 3 strongly connected components which includes at least one cycle each +cycle(001) ∈ α: DisputeCoordinator ~~{"DisputeDistributionMessage"}~~> DisputeDistribution ~~{"DisputeCoordinatorMessage"}~~> * +cycle(002) ∈ β: CandidateBacking ~~{"CollatorProtocolMessage"}~~> CollatorProtocol ~~{"CandidateBackingMessage"}~~> * +cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~> * +warning: unused imports: `BadOrigin`, `Dispatchable` + --> pallets/treasury/src/tests.rs:23:11 + | +23 | traits::{BadOrigin, BlakeTwo256, Dispatchable, IdentityLookup}, + | ^^^^^^^^^ ^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: unused imports: `OnInitialize`, `assert_err_ignore_postinfo` + --> pallets/treasury/src/tests.rs:27:2 + | +27 | assert_err_ignore_postinfo, assert_noop, assert_ok, + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ +... +30 | traits::{ConstU32, ConstU64, OnInitialize}, + | ^^^^^^^^^^^^ + +warning: type alias `UtilityCall` is never used + --> pallets/treasury/src/tests.rs:40:6 + | +40 | type UtilityCall = pallet_utility::Call; + | ^^^^^^^^^^^ + | + = note: `#[warn(dead_code)]` on by default + +warning: type alias `TreasuryCall` is never used + --> pallets/treasury/src/tests.rs:41:6 + | +41 | type TreasuryCall = crate::Call; + | ^^^^^^^^^^^^ + +warning: `pallet-treasury` (lib test) generated 4 warnings (run `cargo fix --lib -p pallet-treasury --tests` to apply 2 suggestions) + Finished test [unoptimized + debuginfo] target(s) in 2.13s + Running unittests src/lib.rs (target/debug/deps/pallet_court-5de9314ef157f9e7) + +running 4 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::process_sue_works ... ok +test tests::submite_sue_works ... ok +test tests::vote_sue_works ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_template-e0640ccd8bc222e0) + +running 3 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::correct_error_for_none_value ... ok +test tests::it_works_for_default_value ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_treasury-cd031383763d0549) + +running 4 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::genesis_config_works ... ok +test tests::receive_should_works ... ok +test tests::claim_rewards_exceed_claim ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/saas3_dao_node-c357a8e56ae9f39a) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/saas3_dao_runtime-26912060f765f2a3) + +running 5 tests +test weights::block_weights::constants::test_weights::sane ... ok +test weights::rocksdb_weights::constants::test_db_weights::sane ... ok +test weights::extrinsic_weights::constants::test_weights::sane ... ok +test weights::paritydb_weights::constants::test_db_weights::sane ... ok +test __construct_runtime_integrity_test::runtime_integrity_tests ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-court + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-template + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-treasury + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests saas3-dao-runtime + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` + +I ran `cargo tarpaulin` to check the coverage of the tests in the pallets. The coverage can be improved. + +``` +Jun 01 09:06:34.358 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| node/src/chain_spec.rs: 0/90 +|| node/src/cli.rs: 0/5 +|| node/src/command.rs: 0/187 +|| node/src/main.rs: 0/2 +|| node/src/rpc.rs: 0/6 +|| node/src/service.rs: 0/155 +|| pallets/court/src/lib.rs: 47/70 +|| pallets/template/src/lib.rs: 9/17 +|| pallets/treasury/src/lib.rs: 35/51 +|| runtime/src/lib.rs: 11/97 +|| runtime/src/weights/block_weights.rs: 1/1 +|| runtime/src/weights/extrinsic_weights.rs: 1/1 +|| runtime/src/weights/paritydb_weights.rs: 0/3 +|| runtime/src/weights/rocksdb_weights.rs: 0/3 +|| runtime/src/xcm_config.rs: 0/31 +|| +14.46% coverage, 104/719 lines covered +``` + +### Manual testing + +Despite the testing guide doesn't have examples of inputs and expected outputs, I tried to check the pallets and the frontend. + +I couldn't figure out what to put in the `category_type` of `Treasury.receive`. So I have done the donations using the frontend and could check the transfer to the Treasury in the substrate. I could submit a lawsuit and vote using the frontend and the substrate, but when I tried to process the lawsuit, in the frontend, nothing occurred. In the substrate, I received a BadOrigin message. So I couldn't try to claim the rewards. + +### Code Quality + +I ran `cargo clippy` and received some warnings, for example: + +``` +warning: the borrowed expression implements the required traits + --> node/src/command.rs:271:39 + | +271 | let _ = std::fs::create_dir_all(&database_path); + | ^^^^^^^^^^^^^^ help: change this to: `database_path` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow + = note: `#[warn(clippy::needless_borrow)]` on by default + +warning: unnecessary closure used to substitute value for `Option::None` + --> node/src/command.rs:275:19 + | +275 | let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) + | _______________________________^ +276 | | .map(|e| e.para_id) +277 | | .ok_or_else(|| "Could not find parachain ID in chain-spec.")?; + | |______________________----------------------------------------------------------^ + | | + | help: use `ok_or(..)` instead: `ok_or("Could not find parachain ID in chain-spec.")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations + = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default + +warning: length comparison to zero + --> node/src/command.rs:304:61 + | +304 | if !collator_options.relay_chain_rpc_urls.is_empty() && cli.relay_chain_args.len() > 0 { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!cli.relay_chain_args.is_empty()` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero + = note: `#[warn(clippy::len_zero)]` on by default + +warning: `saas3-dao-node` (bin "saas3-dao-node") generated 8 warnings (run `cargo clippy --fix --bin "saas3-dao-node"` to apply 5 suggestions) + Finished dev [unoptimized + debuginfo] target(s) in 0.61s +``` + +I ran `yarn lint` and received some warnings: + +``` +user@localhost:~/Documents/saas3/saas3-dSaaS3-DAO-Pallets$ yarn lint +yarn run v1.22.19 +$ eslint src --ext js,jsx --fix src/ --report-unused-disable-directives --max-warnings 0 + +/home/user/Documents/saas3/saas3-dao/SaaS3-DAO-Pallets/src/pages/components/LawsuitList.jsx + 147:5 warning Unexpected console statement no-console + +/home/user/Documents/saas3/saas3-dao/SaaS3-DAO-Pallets/src/pages/components/UserDonationsForm.jsx + 20:7 warning Unexpected console statement no-console + +/home/user/Documents/saas3/saas3-dao/SaaS3-DAO-Pallets/src/pages/components/UserVoteForm.jsx + 22:13 warning '_defendent' is assigned a value but never used no-unused-vars + +/home/user/Documents/saas3/saas3-dao/SaaS3-DAO-Pallets/src/provider/PolkadotWallet.jsx + 96:7 warning Unexpected console statement no-console + +✖ 4 problems (0 errors, 4 warnings) + +ESLint found too many warnings (maximum: 0). +error Command failed with exit code 1. +info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. +``` From aeac22ac10f30378f65b48bada131c3f261f7c3c Mon Sep 17 00:00:00 2001 From: S E R A Y A Date: Mon, 5 Jun 2023 16:32:48 +0200 Subject: [PATCH 108/253] Accept Liberland M2 (#877) * add external evaluation * update and finalize evaluation * update liberland m2 eval * Add tokenomics survey 2022 eval * update tokenomics survey 2022 eval * update liberland m2 eval * Accept Liberland M2 --------- Co-authored-by: Joseph Knecht <83087510+JosephKnecht-lab@users.noreply.github.com> Co-authored-by: wf3 --- evaluations/liberland_2_jkl.md | 445 +++++++++++++++++++++++++++++++++ 1 file changed, 445 insertions(+) create mode 100644 evaluations/liberland_2_jkl.md diff --git a/evaluations/liberland_2_jkl.md b/evaluations/liberland_2_jkl.md new file mode 100644 index 000000000..4fa1ecd52 --- /dev/null +++ b/evaluations/liberland_2_jkl.md @@ -0,0 +1,445 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/liberland.md +- **Milestone:** 2 +- **Kusama Identity:** Ha27MB4gKH36ieRPa1T1ASqhUz4sVxMoVmK7o5CS6tXDqjW +- **Previously successfully merged evaluation:** https://github.com/UniversalDot/Grant-Milestone-Delivery/blob/master/evaluations/crossbow_1_jkl.md + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
| [Link](https://github.com/liberland/liberland_substrate/blob/main/LICENSE-MIT)| License is Ok. The MIT license is also referenced in their pallets.| +| 0b. | Documentation |
  • [x]
| [Link](https://liberland-1.gitbook.io/wiki/v/public-documents/blockchain/for-developers-and-testers)| Good inline documentation in pallets. It contains dispatchable functions, configs, etc. The Gitbook is also good, but can be further imrproved. See 1. in General Notes.| +| 0c. | Testing Guide |
  • [x]
| [Testing Guide](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.yfda4shb4ggs) | ~~I can see you have created tests for your pallets. Please include a short guide on how to run these tests. Incude this guide in your README document.~~ See [Testing Guide Feedback](#testing-guide-feedback) | +| 0d. | Docker |
  • [x]
| [Link](https://hub.docker.com/layers/liberland/blockchain-node/latest/images/sha256-e59f697c8df37b6c8c509e1c949cb23c052b4e95463f087abb044d4873a791b5?context=explore) | Docker Image works. See 3. In General notes. | +| 0e. | Article |
  • [x]
| [Link](https://docs.google.com/document/d/1IiOEka3eZOOyM7GuT5aVJYihdSz3qYbWqwcTNS_Pvqg/edit#heading=h.gvgdsh4wfciv)| Draft is ok.| +| 1. | Land owner Pallet |
  • [x]
| [Modified NFT Pallet](https://github.com/liberland/liberland_substrate/tree/bc60180005a17a3953c95b96fb06b95fe539f6cb/frame/nfts), [Office Pallet](https://github.com/liberland/liberland_substrate/tree/d2f9692e7137d830b6ea681b22e44d91b4255b97/frame/office), [PR for on-chain Geo validation](https://github.com/liberland/liberland_substrate/pull/291/files#diff-2126ae6766e9fabbb2462c7c1d2b0494c27b7c6e518f4672b1cc3a9d335afb3cR323) | See [Land owner Pallet Feedback](#landowner-pallet-feedback) | +| 2 | Metaverse integration Pallet |
  • [x]
| [Deployed Metaverse](https://liberverse.net/), [Live API](http://api.liberverse.net/v1/plots), [api repo](https://github.com/DorianSternVukotic/liberland-middleware-api/tree/3c71577108b1035fb8e7c1cd35ad224e53ea6a61) | See [Metaverse Integration Pallet Feedback](#metaverse-integration-pallet-feedback) | +| 3 | Company Registration Pallet |
  • [x]
| [Link](https://github.com/liberland/liberland_substrate/blob/main/frame/registry/src/lib.rs)| Good. But it seems to be inspired from the original substrate [Registry pallet](https://github.com/liberland/liberland_substrate/blob/main/frame/registry/src/lib.rs)| + + + +## General Notes + +1. In your documentation [here](https://liberland-1.gitbook.io/wiki/v/public-documents/blockchain/for-developers-and-testers/testing_guide), you are including link to google doc, instead of having the information available on the wiki. Consolidate your documentation in one place so you have one source of truth. + +2. In your Testing Guide, you are including some keys together with the mnemonics used to derive the keys. Make sure you keep all key information interally and preferably private, even if you are using for testing accounts. + +3. Docker image works. It seems we can run your node in --dev mode and from chain-spec. Maybe you can include this in your documentation. + +``` +2023-04-14 13:26:06 Substrate Node +2023-04-14 13:26:06 ✌️ version 3.0.0-dev-unknown +2023-04-14 13:26:06 ❤️ by Parity Technologies , 2017-2023 +2023-04-14 13:26:06 📋 Chain specification: Development +2023-04-14 13:26:06 🏷 Node name: spotted-wool-7161 +2023-04-14 13:26:06 👤 Role: AUTHORITY +2023-04-14 13:26:06 💾 Database: RocksDb at /tmp/substrateAV9b9f/chains/dev/db/full +2023-04-14 13:26:06 ⛓ Native runtime: Liberland-8 (liberland-node-0.tx1.au10) +2023-04-14 13:26:09 [0] 💸 generated 1 npos voters, 1 from validators and 0 nominators +2023-04-14 13:26:09 [0] 💸 generated 1 npos targets +2023-04-14 13:26:10 You're running on a system with a broken `madvise(MADV_DONTNEED)` implementation. This will result in lower performance. +2023-04-14 13:26:27 🔨 Initializing Genesis block/state (state: 0x12f5…4c6f, header-hash: 0x9f82…9441) +2023-04-14 13:26:27 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. +``` + +### Concluding Remarks + +#### Remarks by @JosephKnecht-lab + + +Based on my evaluation, you have not provided all the deliverables as described in you application. Thus I have to reject this delivery. My advise is to update your initial application with the exact deliverables that you are delivering for this milestone, before it can be accepted. + +Furthermore, a lot of your pallets are derivative work from already existing pallets (such as registry, nfts) and I would expect more original work for grant submission. + +Note that this evaluation is not binding since I do not work of Web3 Foundation, so the Web3 team can accept your delivery in its current state. + +#### Remarks by @takahser + +I've added my remarks below in separate chapters: + +- [Testing Guide Feedback](#testing-guide-feedback) +- [Landowner Pallet Feedback](#landowner-pallet-feedback) +- [Metaverse Integration Pallet Feedback](#metaverse-integration-pallet-feedback) + +## Testing Guide Feedback + +- testing instructions can found in the [gitbook](https://liberland-1.gitbook.io/wiki/v/public-documents/blockchain/for-developers-and-testers/dev#run-automated-tests) +- ~~however, running the node failed with an "cannot deserialize module: UnknownOpcode(192)" error on my machine~~ the node can be run successfully: + + ```bash + liberland_substrate % cargo run --release -- --dev + (...) + Compiling sc-basic-authorship v0.10.0-dev (https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#f38bd667) + Finished release [optimized] target(s) in 1m 19s + Running `target/release/substrate --dev` + 2023-05-08 23:53:04 Substrate Node + 2023-05-08 23:53:04 ✌️ version 3.0.0-dev-bc60180005a + 2023-05-08 23:53:04 ❤️ by Parity Technologies , 2017-2023 + 2023-05-08 23:53:04 📋 Chain specification: Development + 2023-05-08 23:53:04 🏷 Node name: jaded-ticket-2873 + 2023-05-08 23:53:04 👤 Role: AUTHORITY + 2023-05-08 23:53:04 💾 Database: RocksDb at /var/folders/9y/ny58jn152dzcqf036v5cb4nh0000gn/T/substratexgcdzb/chains/dev/db/full + 2023-05-08 23:53:04 ⛓ Native runtime: Liberland-8 (liberland-node-0.tx1.au10) + 2023-05-08 23:53:05 [0] 💸 generated 1 npos voters, 1 from validators and 0 nominators + 2023-05-08 23:53:05 [0] 💸 generated 1 npos targets + 2023-05-08 23:53:06 🔨 Initializing Genesis block/state (state: 0x724a…1821, header-hash: 0xd235…2507) + 2023-05-08 23:53:06 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. + 2023-05-08 23:53:07 👶 Creating empty BABE epoch changes on what appears to be first startup. + 2023-05-08 23:53:07 Using default protocol ID "sup" because none is configured in the chain specs + 2023-05-08 23:53:07 🏷 Local node identity is: 12D3KooWLq8fs6WMwp783ETG4Ck4Wsu7SKECqcWARkvR7Et6QpdA + 2023-05-08 23:53:07 💻 Operating system: macos + 2023-05-08 23:53:07 💻 CPU architecture: aarch64 + 2023-05-08 23:53:07 📦 Highest known block at #0 + 2023-05-08 23:53:07 〽️ Prometheus exporter started at 127.0.0.1:9615 + 2023-05-08 23:53:07 Running JSON-RPC HTTP server: addr=127.0.0.1:9933, allowed origins=["*"] + 2023-05-08 23:53:07 Running JSON-RPC WS server: addr=127.0.0.1:9944, allowed origins=["*"] + 2023-05-08 23:53:07 🏁 CPU score: 718.16 MiBs + 2023-05-08 23:53:07 🏁 Memory score: 41.01 GiBs + 2023-05-08 23:53:07 🏁 Disk score (seq. writes): 3.05 GiBs + 2023-05-08 23:53:07 🏁 Disk score (rand. writes): 442.05 MiBs + 2023-05-08 23:53:07 👶 Starting BABE Authorship worker + 2023-05-08 23:53:12 🙌 Starting consensus session on top of parent 0xd2352ca73715ed46b279cd3a3e6dbc3f11ed17f710a200d954777405c9842507 + 2023-05-08 23:53:12 🎁 Prepared block for proposing at 1 (1 ms) [hash: 0xbe8f75bc8fa31df6cebf7a73556205eff75ce20902a19667d6b1190dd484c832; parent_hash: 0xd235…2507; extrinsics (1): [0x0cc8…b01e]] + 2023-05-08 23:53:12 🔖 Pre-sealed block for proposal at 1. Hash now 0xe325a2316b5f622f5b7ae76bcc1143af3b8a3ded12e6962098a4b86293950c3f, previously 0xbe8f75bc8fa31df6cebf7a73556205eff75ce20902a19667d6b1190dd484c832. + 2023-05-08 23:53:12 👶 New epoch 0 launching at block 0xe325…0c3f (block slot 280597132 >= start slot 280597132). + 2023-05-08 23:53:12 👶 Next epoch starts at slot 280597732 + 2023-05-08 23:53:12 ✨ Imported #1 (0xe325…0c3f) + ``` + +- when running the tests, ~~most pass but the ~~"benchmark_block_works"~~ "temp_base_path_works" test fails~~ they all pass: + +```bash + liberland_substrate % cargo test --release --features runtime-benchmarks + running 17 tests + test impls::multiplier_tests::congested_chain_simulation ... ignored + test __pallet_staking_reward_curve_test_module::reward_curve_piece_count ... ok + test tests::call_size ... ok + test tests::perbill_as_onchain_accuracy ... ok + test tests::check_whitelist ... ok + test tests::validate_transaction_submitter_bounds ... ok + test impls::multiplier_tests::multiplier_can_grow_from_zero ... ok + test impls::multiplier_tests::weight_mul_decrease_on_small_block ... ok + test impls::multiplier_tests::multiplier_cannot_go_below_limit ... ok + test __construct_runtime_integrity_test::runtime_integrity_tests ... ok + test impls::multiplier_tests::stateless_weight_mul ... ok + test impls::multiplier_tests::truth_value_update_poc_works ... ok + test impls::multiplier_tests::weight_to_fee_should_not_overflow_on_large_weights ... ok + test impls::multiplier_tests::weight_mul_grow_on_big_block ... ok + test __pallet_staking_reward_curve_test_module::reward_curve_precision ... ok + test impls::multiplier_tests::min_change_per_day ... ok + test impls::multiplier_tests::time_to_reach_zero ... ok + + test result: ok. 16 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 5.20s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 8 tests + test chain_spec::tests::test_connectivity ... ignored + test service::tests::test_consensus ... ignored + test service::tests::test_sync ... ignored + test chain_spec::tests::test_mainnet_chain_spec ... ok + test chain_spec::tests::test_bastiat_test_net_chain_spec ... ok + test chain_spec::tests::test_staging_test_net_chain_spec ... ok + test chain_spec::tests::test_create_development_chain_spec ... ok + test chain_spec::tests::test_create_local_testnet_chain_spec ... ok + + test result: ok. 5 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.05s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 1 test + test benchmark_block_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 35.41s + + + running 1 test + test benchmark_extrinsic_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.32s + + + running 1 test + test benchmark_machine_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s + + + running 1 test + test benchmark_overhead_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.64s + + + running 1 test + test benchmark_pallet_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.70s + + + running 1 test + test benchmark_storage_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.27s + + + running 1 test + test build_spec_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s + + + running 1 test + Completed in 200 ms. + test check_block_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 35.89s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 1 test + test export_import_revert ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 51.61s + + + running 1 test + Header: + Header { parent_hash: 0xa43cf5a71ecedbfb937170779b80cf98a92eb3cc2951d24a39d66525f4612cd4, number: 1, state_root: 0x2d4dc5655d08817923bb91df275a0fd237473988a308925becea23459e34a787, extrinsics_root: 0x6b9b2af53b4a2ccf00ffe5698b8760af862f767a200b4e4d88d3cf63b7938899, digest: Digest { logs: [DigestItem::PreRuntime([66, 65, 66, 69], [2, 0, 0, 0, 0, 130, 79, 190, 16, 0, 0, 0, 0]), DigestItem::Consensus([66, 65, 66, 69], [1, 4, 212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), DigestItem::Seal([66, 65, 66, 69], [230, 81, 33, 33, 189, 143, 33, 123, 46, 13, 211, 142, 60, 38, 4, 196, 161, 121, 27, 43, 53, 247, 76, 77, 183, 205, 180, 146, 180, 219, 85, 123, 144, 184, 106, 250, 116, 26, 201, 205, 5, 84, 63, 124, 106, 147, 230, 143, 182, 180, 26, 78, 249, 118, 60, 241, 22, 108, 34, 254, 214, 115, 72, 130])] } } + Block bytes: a43cf5a71ecedbfb937170779b80cf98a92eb3cc2951d24a39d66525f4612cd4042d4dc5655d08817923bb91df275a0fd237473988a308925becea23459e34a7876b9b2af53b4a2ccf00ffe5698b8760af862f767a200b4e4d88d3cf63b79388990c0642414245340200000000824fbe1000000000044241424529010104d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0100000000000000000000000000000000000000000000000000000000000000000000000000000005424142450101e6512121bd8f217b2e0dd38e3c2604c4a1791b2b35f74c4db7cdb492b4db557b90b86afa741ac9cd05543f7c6a93e68fb6b41a4ef9763cf1166c22fed673488204280403000be176676c8801 + Extrinsics (1) + - 0: + 0403000be176676c8801 + Bytes: 280403000be176676c8801 + + test inspect_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 31.91s + + + running 1 test + "/tmp/.tmpUAYxR5/chains/dev/db/full" removed. + test purge_chain_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 33.60s + + + running 1 test + test remember_state_pruning_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 49.35s + + + running 2 tests + test running_two_nodes_with_the_same_ws_port_should_work ... ok + test running_the_node_works_and_can_be_interrupted has been running for over 60 seconds + test running_the_node_works_and_can_be_interrupted ... ok + + test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 66.06s + + + running 1 test + test telemetry_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.93s + + + running 1 test + test temp_base_path_works ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 33.65s + + + running 2 tests + test test_regex_matches_properly ... ok + test version_is_full ... ok + + test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 80 tests + test benchmarking::bench_external_propose ... ok + (...) + test benchmarking::bench_second ... ok + + test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s + + + running 82 tests + test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + (...) + test benchmarking::bench_election_phragmen ... ok + + test result: ok. 82 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.66s + + + running 36 tests + test benchmarking::bench_remove_sub ... ok + (...) + test benchmarking::bench_kill_identity ... ok + + test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 22 tests + test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + (...) + test benchmarking::benchmark_tests::test_benchmarks ... ok + + test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.43s + + + running 29 tests + test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + (...) + test tests::treasury_llm_transfer_to_politipool_locks_funds ... ok + + test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + + running 81 tests + test benchmarking::bench_burn ... ok + (...) + test benchmarking::bench_destroy ... ok + + test result: ok. 81 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s + + + running 16 tests + test tests::remove_clerk_deposits_event ... ok + (...) + test tests::set_clerk_verifies_origin ... ok + + test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 46 tests + test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok + (...) + test tests::request_registration_frees_reserves_if_possible ... ok + + test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + + running 161 tests + test benchmarking::bench_force_no_eras ... ok + (...) + test benchmarking::bench_get_npos_voters ... ok + + test result: ok. 161 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.44s + + + running 2 tests + test src/lib.rs - benches::add_benchmarks (line 1717) ... ignored + test src/lib.rs - benches::list_benchmarks (line 1717) ... ignored + + test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 3 tests + test src/lib.rs - (line 14) ... ignored + test src/lib.rs - (line 20) ... ignored + test src/lib.rs - (line 34) ... ignored + + test result: ok. 0 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.01s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 0 tests + + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 1 test + test src/lib.rs - (line 41) ... ignored + + test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s + + + running 1 test + test src/lib.rs - (line 159) ... ok + + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s +``` + +## Landowner Pallet Feedback + +Previous comment by @JosephKnecht-lab: + +> Your pallet is almost exact fork from pallet-nfts. You have made small modificaiton to add citizenship information. In the original application you state you will use geo coordination but I don't see this reflected in code. Can you make the requirements for this pallet more explicit? + +Final assessment by @takahser: + +While there is no Landowner pallet, the functionality described in the grant proposal is covered by the NFT and Office pallets. In the previous version that @JosephKnecht-lab assessed, there was no on-chain validation logic for creating plots but this was fixed by a [follow-up PR](https://github.com/liberland/liberland_substrate/pull/291/files#diff-2126ae6766e9fabbb2462c7c1d2b0494c27b7c6e518f4672b1cc3a9d335afb3cR323). The validation takes care that plots are stored only if they're not self-intersecting, contain a minimum number of points (3), are correctly structured and are located within the allowed coordinates as configured (for the sake of this use case, the allowed coordinates equal the coordinates of Liberland). Personally, I agree with the approach to re-use the existing NFTs pallet rather than recreating the logic and adding the missing bits on top of it. This has been smoke-tested successfully. + +## Metaverse Integration Pallet Feedback + +Previous comment by @JosephKnecht-lab: + +> Based on the submitted requirements in your application [document](https://github.com/w3f/Grants-Program/blob/master/applications/liberland.md), you have not provided a pallet implementation. I understand that requirements can change during development, but these changes have to be reflected back in the original requirements document. + +Final assessment by @takahser: + +Similarly to the Landowner Pallet, while there is no pallet called "Metaverse Integration Pallet", the functionality the grantee promised in their proposal has actually been implemented. While the plotdata for the metaverse is stored on-chain in an efficient, encoded format, their centrally hosted middleware allows for easy decoding into a format that can be interpreted more easily by the metaverse. They also implemented an [on-chain role-based access model](https://github.com/liberland/liberland_substrate/blob/bc60180005a17a3953c95b96fb06b95fe539f6cb/bin/node/runtime/src/lib.rs#L300-L331). This has been smoke-tested successfully. From 5d6a4e54d33fd389549e99116b04b5db78a00e3c Mon Sep 17 00:00:00 2001 From: DorianSternVukotic Date: Mon, 5 Jun 2023 17:07:52 +0200 Subject: [PATCH 109/253] Liberland Milestone 2 Delivery (#826) * Submit Milestone 2 * Update liberland-2.md Update article draft * Update delivery Updated delivery to reflect current state of development - new links, mainnet, and made clearer which links correspond to which features. * Fix links * Fix formatting --- deliveries/liberland-2.md | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 deliveries/liberland-2.md diff --git a/deliveries/liberland-2.md b/deliveries/liberland-2.md new file mode 100644 index 000000000..94940467e --- /dev/null +++ b/deliveries/liberland-2.md @@ -0,0 +1,71 @@ +# 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:** [Liberland grant application](https://github.com/w3f/Grants-Program/blob/master/applications/liberland.md) +* **Milestone Number:** 2 + +**Context** (optional) +> Liberland has implemented on chain registries for companies, land and assets. This, in combination with the upcoming judiciary, allows the full running of traditional businesses, as well as smart and dumb contracts completely on-chain. + +**Deliverables** +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [LICENSE-MIT](https://github.com/liberland/liberland_substrate/blob/main/LICENSE-MIT) | All contributed code is MIT | +| 0b. | Documentation | [liberland/liberland.github.io](https://liberland-1.gitbook.io/wiki/v/public-documents/blockchain/for-developers-and-testers) | Inline code documentation can be found in our main [node repo](https://github.com/liberland/liberland_substrate) , Other documentation and guides can be found on [gitbook](https://liberland-1.gitbook.io/wiki/v/public-documents/blockchain/for-developers-and-testers) | +| 0c. | Testing Guide | [Testing guide](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#) | ... | +| 0d. | Docker |[Docker](https://hub.docker.com/r/liberland/blockchain-node)| Uses testnet chainspec | +| 0e. | Article |[Draft](https://docs.google.com/document/d/1IiOEka3eZOOyM7GuT5aVJYihdSz3qYbWqwcTNS_Pvqg)| Article draft| +| 1. | Land owner Pallet |[Modified NFTs pallet](https://github.com/liberland/liberland_substrate/tree/main/frame/nfts), [Office pallet](https://github.com/liberland/liberland_substrate/tree/develop/frame/office), [Geo Checks](https://github.com/liberland/liberland_substrate/pull/291/files#diff-2126ae6766e9fabbb2462c7c1d2b0494c27b7c6e518f4672b1cc3a9d335afb3cR323), [Instructions](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.98cfecawie0o)| Uses office pallet, see additional info and testing guide| +| 2. | Metaverse integration pallet |Similar to Land owner pallet + [Test metaverse build](https://liberverse.net), [Chain-metaverse middleware API](http://api.liberverse.net/v1/plots), [Middleware code open sourced](https://github.com/DorianSternVukotic/liberland-middleware-api)| Land owner instance + middleware | +| 3. | Company registration pallet |[Registry](https://github.com/liberland/liberland_substrate/tree/main/frame/registry)| Uses office pallet| + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. +#### Main repo: https://github.com/liberland/liberland_substrate/ +#### A live testnet can be accessed here: +[Testnet](https://polkadot.js.org/apps/?rpc=wss%253A%252F%252Ftestchain.liberland.org%252F#) + +[Frontend](https://testnet.liberland.org/signin) +#### Mainnet (may not be up to date with features mentioned in the grant) +Dont test delivery with ~~[Mainnet](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fmainnet.liberland.org#/explorer)~~ + +Dont test delivery with ~~[Mainnet Frontend](https://blockchain.liberland.org/signin)~~ + +For the last few months we have been focusing on getting all features ready to launch the mainnet. +This includes grant related tasks and others. We expanded the political system, adding a separation of power between +Congress, Senate, LLM tokens and headcount citizens. There is now support for underage citizens, legislation vetoes, new vote delegation system, +the offices pallet, KYC for validators. + +For grant related tasks, we added the office pallet, registries and metaverse integration. + +The offices pallet are meant to mimic real world government offices on-chain. It allows clerks to execute permissioned calls on behalf of the office. +For example, an identity registrar is a wallet address of the Ministry of Interior office, and any Ministry of Interior clerk can +dispatch provideJudgement calls as the Ministry of Interior. Clerks have sets of permissions - which calls they can or cannot dispatch. +Clerks can be hired or fired by the office Admin, and office admins are appointed through the political system. +All of our registries have a corresponding instance of the office pallet. + +Liberland registry pallets allow companies and assets to be registered on-chain. In combination with the upcoming judiciary system, this +will allow running of traditional businesses, smart and dumb contracts on chain. For example, an insurance company could operate entirely +on-chain, with disputes handled via a traditional-like court system that has the limited power to enforce wordy contracts, allowing for +much greater confidence in and adoption of on-chain businesses. + +Company registry pallet and companyRegistryOffice are custom pallets that handle the requirements of business registration, explained +more in depth in the [testing guide](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.jdlftz66hx0s). +A missing upcoming WIP feature is selective encryption of data - for example, not all company shareholders may want to be public, +but they still need to be known to the Registry and be able to prove their data in a ZK way. + +Land, Metaverse Land and Asset registries are office-managed collections of the nfts pallet. We have a LandRegistryOffice, +MetaverseLandRegistryOffice and AssetRegistryOffice that all behave more or less in the same way. +See [testing guide](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.jdlftz66hx0s) for details. + +Since nfts pallet provided most functionality that was required, we did not have to create a whole new metaverse integration pallet from +scratch, Instead we modified it to provide metadata validation of geocoordinates and created integration middleware in the form of a public API that reads +metaverse plots of lands from the blockchain and is connected to the metaverse. The flow of data is Blockchain nfts -> middleware API -> metaverse. Some of the geo checks include making sure a land nft is within configurable coordinates, format of geocoordinates is correct, land plot is a closed loop, land plot doesnt self intersect etc... + +- [Register, Manage and run on-chain companies](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.la6hgf9tw9qp) +- [Register virtual land, where the land in the metaverse is managed by a pallet](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.98cfecawie0o) +- [Trade with on-chain assets, NFT's and LLM](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.r11hvyl51i4a) +- [e-citizenship, you can apply for an e-citizenship](https://docs.google.com/document/d/1ntrT6bafTD2LfXUG9QLxOieogXELn9icN1y__EGfZ98/edit#heading=h.pph4a9bhmlev) + + From ef93c0f8fe2a707ab89db52b4a7e646c820abe61 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 5 Jun 2023 14:55:58 -0300 Subject: [PATCH 110/253] Update genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md index f664a5178..9416c867a 100644 --- a/evaluations/genesisdao_3_dsm-w3f.md +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -10,13 +10,39 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | Licence |
  • [x]
| n/a | | | 0b. | Documentation |
  • [ ]
| n/a | Not fully evaluated yet. | -| 0c. | Testing and Testing Guide |
  • [ ]
| https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md | Integration tests are failing. Need testing guide for system test. | +| 0c. | Testing and Testing Guide |
  • [ ]
| https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md | Not fully evaluated yet. | | 0d. | Docker |
  • [ ]
| [node Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/Dockerfile), [frontend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-frontend/blob/main/Dockerfile), [backend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-service/blob/main/Dockerfile) | Not fully evaluated yet. | | 0e. | Article |
  • [x]
| [Link](https://docs.google.com/document/d/1c3B9iyoHE7cP5a5qYwa-A_0Vy5zo1uAo-S1vcZ5h_B4/edit#heading=h.obore8uev3ox) | | | 1. | Substrate module: pallet_dao_vote |
  • [ ]
| [Link](https://github.com/deep-ink-ventures/genesis-dao-node/tree/main/pallets/dao-votes) | Not fully evaluated yet. | | 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | | 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | +## Evaluation V2 + +### Integration Test + +This time the Integration Test passed. + +``` + Running unittests src/lib.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/integration_wrapper-aae9373ea162552d) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/test_dao_lifecycle.rs (/home/user/Documents/genesisdao/genesis-dao-node/target/debug/deps/test_dao_lifecycle-0db8c4fb21eb2a62) + +running 1 test +test dao_lifecycle has been running for over 60 seconds +test dao_lifecycle ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 266.81s +``` + +### Manual Test + +Thanks for providing the testing guide. I didn't fully evaluate it yet, because I need to wait 24 hours to finalize the proposal but I was able to check the other features in the testing guide, like marking a proposal as faulty and acting as a council. + ## Evaluation V1 ### Unit Test From 4f3337495bfaaa1c7c33e1eee7dda549ce7e0fea Mon Sep 17 00:00:00 2001 From: Blox-Venture Date: Tue, 6 Jun 2023 14:49:09 +0500 Subject: [PATCH 111/253] External wasm-opt evaluation (#876) --- .../wasm-opt-for-rust-maintenance_6_ali-usama.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 maintenance_evaluations/wasm-opt-for-rust-maintenance_6_ali-usama.md diff --git a/maintenance_evaluations/wasm-opt-for-rust-maintenance_6_ali-usama.md b/maintenance_evaluations/wasm-opt-for-rust-maintenance_6_ali-usama.md new file mode 100644 index 000000000..7c6eb4b90 --- /dev/null +++ b/maintenance_evaluations/wasm-opt-for-rust-maintenance_6_ali-usama.md @@ -0,0 +1,15 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** [wasm-opt-for-rust](https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md) +- **Milestone:** 6 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** [Galaxy-Eval](https://github.com/w3f/Grant-Milestone-Delivery/pull/851) + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|----------------------------------------------------------|------------------------|------------------------------------------------------------------------------------------------------------|--------------------------------------------------| +| 1. | GCC 13 Bug Report |
  • [x]
| [brson/wasm-opt-rs#143 (comment)](https://github.com/brson/wasm-opt-rs/issues/143#issuecomment-1535377565) | Bug report related to `wasm-opt` version 0.111.0 | +| 2. | Discussion about in-memory module read/write in binaryen |
  • [x]
| [WebAssembly/binaryen#5736](https://github.com/WebAssembly/binaryen/issues/5736) | | + +## General Notes +As there was not a lot of maintenance required, the delivery includes Bug Report Fix and a detailed discussion of in-memory module read/write. The progress is as per the application and the milestone is accepted. From 53dd267ed206e74ec9ca88f5822c6839b1292226 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 6 Jun 2023 03:51:06 -0600 Subject: [PATCH 112/253] Add wasm-opt-for-rust-maintenance-6 (#875) --- .../wasm-opt-for-rust-maintenance-6.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 maintenance_deliveries/wasm-opt-for-rust-maintenance-6.md diff --git a/maintenance_deliveries/wasm-opt-for-rust-maintenance-6.md b/maintenance_deliveries/wasm-opt-for-rust-maintenance-6.md new file mode 100644 index 000000000..f8b026240 --- /dev/null +++ b/maintenance_deliveries/wasm-opt-for-rust-maintenance-6.md @@ -0,0 +1,27 @@ +# Maintenance Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this delivery** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md +* **Delivery Number:** 6 +* **Delivery Date:** 2023/06/01 + + +**Context** + +We began work on the binaryen 113 upgrade, +investigated a report of build errors with GCC 13, +and discussed adding in-memory APIs with the binaryen authors. + +**Deliverables** + +Note: a full hourly accounting of work performed is included with the invoice. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | GCC 13 bug report | https://github.com/brson/wasm-opt-rs/issues/143#issuecomment-1535377565 | | +| 2. | Discussion about in-memory module read/write in binaryen | https://github.com/WebAssembly/binaryen/issues/5736 | | + +**Additional Information** + +N/A From 117ecef36272bb98d6eb285578e40657e28c8278 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 6 Jun 2023 19:50:17 -0300 Subject: [PATCH 113/253] Create ismp_1_dsm-w3f.md --- evaluations/ismp_1_dsm-w3f.md | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 evaluations/ismp_1_dsm-w3f.md diff --git a/evaluations/ismp_1_dsm-w3f.md b/evaluations/ismp_1_dsm-w3f.md new file mode 100644 index 000000000..0fe3335be --- /dev/null +++ b/evaluations/ismp_1_dsm-w3f.md @@ -0,0 +1,98 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ismp.md +- **Milestone:** 1 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
|[https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE](https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE)| | +| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| Would be nice to have instructions to install without docker | +| 0c. | Testing and Testing Guide |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Low testing coverage | +| 0d. | Docker |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs#run-test-in-docker](https://github.com/polytope-labs/ismp-rs#run-test-in-docker)| Not fully evaluated yet | +| 0e. | Article |
  • [ ]
| TBA | Need to be delivered | +| 0f. | ISMP Specification |
  • [ ]
|[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| Not fully evaluated yet | +| 1 | `ismp-rs` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs](https://github.com/polytope-labs/ismp-rs)| Not fully evaluated yet | +| 1a. | `ISMPHOST` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37)| Not fully evaluated yet | +| 1b. | `ISMPRouter` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs)| Not fully evaluated yet | +| 1c. | `ISMPModule` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs)| Not fully evaluated yet | +| 1d. | `ConsensusClient` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91)| Not fully evaluated yet | +| | Request/Response proof verification |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123)| Not fully evaluated yet | +| | Request Timeout verification |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160)| Not fully evaluated yet | +| 1e. | Handlers |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs)| Not fully evaluated yet | +| | `CreateConsensusClient` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91)| Not fully evaluated yet | +| | `ConsensusMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28)| Not fully evaluated yet | +| | `RequestMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs)| Not fully evaluated yet | +| | `ResponseMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs)| Not fully evaluated yet | +| | `TimeoutMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs)| Not fully evaluated yet | + +## Evaluation V1 + +### Documentation + +Please create a new branch for the evaluation of the milestone to prevent new commits during the evaluation. + +It would be nice if the documentation have the prerequisites and instructions to run without docker. + +### Testing + +All tests passed, using docker or without. + +``` +user@localhost:~/Documents/ismp/ismp-rs$ cargo test --release --manifest-path=./ismp-testsuite/Cargo.toml + Finished release [optimized] target(s) in 0.13s + Running unittests src/lib.rs (target/release/deps/ismp_testsuite-1a79e0ff70273bfb) + +running 5 tests +test tests::dispatcher_should_write_receipts_for_outgoing_requests_and_responses ... ok +test tests::should_reject_expired_check_clients ... ok +test tests::should_process_timeouts_correctly ... ok +test tests::should_reject_updates_within_challenge_period ... ok +test tests::should_reject_messages_for_frozen_state_machines ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests ismp-testsuite + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` + +I ran `cargo tarpaulin` to check the test coverage. + +``` +Jun 06 08:23:55.976 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| ismp/src/consensus.rs: 0/2 +|| ismp/src/handlers/consensus.rs: 6/51 +|| ismp/src/handlers/request.rs: 2/17 +|| ismp/src/handlers/response.rs: 2/39 +|| ismp/src/handlers/timeout.rs: 18/51 +|| ismp/src/handlers.rs: 16/23 +|| ismp/src/host.rs: 6/25 +|| ismp/src/messaging.rs: 0/16 +|| ismp/src/router.rs: 2/31 +|| ismp/src/util.rs: 12/49 +|| ismp-testsuite/src/lib.rs: 83/118 +|| ismp-testsuite/src/mocks.rs: 68/128 +|| +39.09% coverage, 215/550 lines covered +``` + +The tests coverage isn't good and can be improved. + +### Article + +The article was not provided. + +### Code Quality + +I ran `cargo clippy` and received no warnings. + +``` +user@localhost:~/Documents/ismp/ismp-rs$ cargo clippy + Finished dev [unoptimized + debuginfo] target(s) in 0.13s +``` From 91d56393ec28f28f306974e0de90c65773a66a1a Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 6 Jun 2023 19:56:34 -0300 Subject: [PATCH 114/253] Create ismp_2_dsm-w3f.md --- evaluations/ismp_2_dsm-w3f.md | 170 ++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 evaluations/ismp_2_dsm-w3f.md diff --git a/evaluations/ismp_2_dsm-w3f.md b/evaluations/ismp_2_dsm-w3f.md new file mode 100644 index 000000000..5cee5508c --- /dev/null +++ b/evaluations/ismp_2_dsm-w3f.md @@ -0,0 +1,170 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ismp.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE](https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE)| | +| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| Would be nice to have instructions to run without docker | +| 0c. | Testing and Testing Guide |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| Need a manual testing guide | +| 0d. | Docker |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp#run-test-in-docker](https://github.com/polytope-labs/substrate-ismp#run-test-in-docker)| Not fully evaluated yet | +| 0e. | Article|
  • [ ]
| TBA | Not a deliverable for this milestone | +| 1. | pallet-ismp |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp](https://github.com/polytope-labs/substrate-ismp)| Not fully evaluated yet | +| 1a. | Host |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48)| Not fully evaluated yet | +| 1b. | Router |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48)| Not fully evaluated yet | +| 1c. | `ParachainConsensusClient` |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115)| Not fully evaluated yet | +| 1d. | RPC |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs)| Not fully evaluated yet | +| 1e. | Runtime-APIs |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| Not fully evaluated yet | +| 1f. | Bechmarks |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| Not fully evaluated yet | + +## Evaluation V1 + +### Documentation + +Please create a new branch for the evaluation of the milestone to prevent new commits during the evaluation. + +It would be nice if the documentation have the prerequisites and instructions to run without docker. It is missing instructions to start the substrate with the pallet and the instructions to use. + +### Testing + +All tests passed, but I got some warnings: + +``` +user@localhost:~/Documents/ismp/substrate-ismp$ cargo test +⚡ Found 3 strongly connected components which includes at least one cycle each +cycle(001) ∈ α: ApprovalVoting ~~{"ApprovalDistributionMessage"}~~> ApprovalDistribution ~~{"ApprovalVotingMessage"}~~> * +cycle(002) ∈ β: CandidateBacking ~~{"CollatorProtocolMessage"}~~> CollatorProtocol ~~{"CandidateBackingMessage"}~~> * +cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~> * +warning: use of deprecated constant `pallet::warnings::ConstantWeight_0::_w`: + It is deprecated to use hard-coded constant as call weight. + Please instead benchmark all calls or put the pallet into `dev` mode. + + For more info see: + + --> parachain/src/lib.rs:107:26 + | +107 | #[pallet::weight(0)] + | ^ + | + = note: `#[warn(deprecated)]` on by default + +warning: use of deprecated constant `pallet::warnings::ConstantWeight_1::_w`: + It is deprecated to use hard-coded constant as call weight. + Please instead benchmark all calls or put the pallet into `dev` mode. + + For more info see: + + --> parachain/src/lib.rs:119:26 + | +119 | #[pallet::weight(0)] + | ^ + +warning: `ismp-parachain` (lib) generated 2 warnings +warning: `ismp-parachain` (lib test) generated 2 warnings (2 duplicates) + Finished test [unoptimized + debuginfo] target(s) in 0.59s + Running unittests src/lib.rs (target/debug/deps/ismp_assets-9309e30e3c82eb88) + +running 11 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::should_generate_proofs_correctly_for_single_leaf_mmr ... ok +test tests::should_reject_expired_check_clients ... ok +test tests::should_handle_get_request_timeouts_correctly ... ok +test tests::should_handle_get_request_responses_correctly ... ok +test tests::dispatcher_should_write_receipts_for_outgoing_requests_and_responses ... ok +test tests::should_reject_updates_within_challenge_period ... ok +test tests::should_handle_post_request_timeouts_correctly ... ok +test tests::should_generate_and_verify_batch_proof_for_leaves_inserted_across_multiple_blocks_correctly ... ok +test tests::should_reject_messages_for_frozen_state_machines ... ok +test tests::should_generate_and_verify_batch_proof_correctly ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Doc-tests ismp-assets +``` + +I tested with docker and without. I ran `cargo tarpaulin` to check the test coverage. The coverage isn't good and can be improved. + +``` +Jun 06 09:17:47.663 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| ismp-assets/src/lib.rs: 0/82 +|| pallet-ismp/primitives/src/mmr.rs: 7/18 +|| pallet-ismp/rpc/src/lib.rs: 0/88 +|| pallet-ismp/src/benchmarking.rs: 0/15 +|| pallet-ismp/src/dispatcher.rs: 22/59 +|| pallet-ismp/src/errors.rs: 2/43 +|| pallet-ismp/src/events.rs: 0/11 +|| pallet-ismp/src/handlers.rs: 0/42 +|| pallet-ismp/src/host.rs: 27/89 +|| pallet-ismp/src/lib.rs: 35/153 +|| pallet-ismp/src/mmr/mmr.rs: 19/28 +|| pallet-ismp/src/mmr/storage.rs: 27/54 +|| pallet-ismp/src/mmr/utils.rs: 1/3 +|| pallet-ismp/src/weight_info.rs: 0/98 +|| parachain/inherent/src/lib.rs: 0/11 +|| parachain/src/consensus.rs: 0/139 +|| parachain/src/lib.rs: 0/45 +|| +14.31% coverage, 140/978 lines covered +``` + +Please, provide me a guide to start the substrate and use the pallet, with expected inputs and outputs. + +### Article + +The article isn't a deliverable of this milestone. + +### Code Quality + +I ran `cargo clippy` and got some warnings, for example: + +``` +warning: this `match` can be collapsed into the outer `match` + --> pallet-ismp/src/lib.rs:518:43 + | +518 | DataOrHash::Data(leaf) => match leaf { + | ___________________________________________^ +519 | | Leaf::Request(req) => Some(req), +520 | | _ => None, +521 | | }, + | |_________________^ + | +help: the outer pattern can be modified to include the inner pattern + --> pallet-ismp/src/lib.rs:518:34 + | +518 | DataOrHash::Data(leaf) => match leaf { + | ^^^^ replace this binding +519 | Leaf::Request(req) => Some(req), + | ^^^^^^^^^^^^^^^^^^ with this pattern + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match + = note: `#[warn(clippy::collapsible_match)]` on by default + +warning: this `match` can be collapsed into the outer `match` + --> pallet-ismp/src/lib.rs:534:43 + | +534 | DataOrHash::Data(leaf) => match leaf { + | ___________________________________________^ +535 | | Leaf::Response(res) => Some(res), +536 | | _ => None, +537 | | }, + | |_________________^ + | +help: the outer pattern can be modified to include the inner pattern + --> pallet-ismp/src/lib.rs:534:34 + | +534 | DataOrHash::Data(leaf) => match leaf { + | ^^^^ replace this binding +535 | Leaf::Response(res) => Some(res), + | ^^^^^^^^^^^^^^^^^^^ with this pattern + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match + +⚡ Found 3 strongly connected components which includes at least one cycle each +cycle(001) ∈ α: ApprovalVoting ~~{"ApprovalDistributionMessage"}~~> ApprovalDistribution ~~{"ApprovalVotingMessage"}~~> * +cycle(002) ∈ β: CandidateBacking ~~{"CollatorProtocolMessage"}~~> CollatorProtocol ~~{"CandidateBackingMessage"}~~> * +cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~> * +warning: `pallet-ismp` (lib) generated 29 warnings (run `cargo fix --lib -p pallet-ismp` to apply 14 suggestions) +``` From cf2021ea4bf2079c27df714442ef4c8295b9cddc Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Wed, 7 Jun 2023 14:57:55 -0300 Subject: [PATCH 115/253] Update genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md index 9416c867a..1fa915029 100644 --- a/evaluations/genesisdao_3_dsm-w3f.md +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -17,6 +17,12 @@ | 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | | 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | +## Evaluation V3 + +### Testing + +I created some proposals. These proposals were rejected because the total token I distributed was under 10% of the token supply. The test guide is leading to this case. I created another DAO and proposals to verify the approved and implemented case, but I need to wait again the 24 hours. + ## Evaluation V2 ### Integration Test From 5bc9077a21aa638c0be2a48fd6182d4a9b10981b Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 7 Jun 2023 15:06:03 -0400 Subject: [PATCH 116/253] Update high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md index 2031f20a0..495871fb4 100644 --- a/evaluations/high_availability_validator_setup_2_keeganquigley.md +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -144,7 +144,45 @@ Building bright/substrate-raft-setup:latest docker image, hang on! ------ process "/bin/sh -c apt-get install -y openssl" did not complete successfully: exit code: 100 ``` - +## V2 + +Tried Docker on Ubuntu and fails with this: +```rust +error: failed to run custom build command for `node-template-runtime v4.0.0-dev (/node-template/runtime)` +#0 563.4 +#0 563.4 Caused by: +#0 563.4 process didn't exit successfully: `/node-template/target/release/build/node-template-runtime-37c0b72b2eac5a32/build-script-build` (exit status: 1) +#0 563.4 --- stderr +#0 563.4 Rust WASM toolchain not installed, please install it! +#0 563.4 +#0 563.4 Further error information: +#0 563.4 ------------------------------------------------------------ +#0 563.4 Compiling wasm-test v1.0.0 (/tmp/.tmpyZyoTz) +#0 563.4 error[E0463]: can't find crate for `std` +#0 563.4 | +#0 563.4 = note: the `wasm32-unknown-unknown` target may not be installed +#0 563.4 = help: consider downloading the target with `rustup target add wasm32-unknown-unknown` +#0 563.4 = help: consider building the standard library from source with `cargo build -Zbuild-std` +#0 563.4 +#0 563.4 error: requires `sized` lang_item +#0 563.4 +#0 563.4 For more information about this error, try `rustc --explain E0463`. +#0 563.4 error: could not compile `wasm-test` due to 2 previous errors +#0 563.4 ------------------------------------------------------------ +#0 563.4 +#0 563.4 warning: build failed, waiting for other jobs to finish... +------ +Dockerfile:9 +-------------------- + 7 | WORKDIR /node-template + 8 | COPY . . + 9 | >>> RUN cargo build --locked --release + 10 | + 11 | # This is the 2nd stage: a very small image where we copy the binary." +-------------------- +ERROR: failed to solve: process "/bin/sh -c cargo build --locked --release" did not complete successfully: exit code: 101 +``` + **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`: ```rust warning: associated function `project_ref` is never used From e6f2bbc06dcc791c350b4b4586688c0fbdd77ab8 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 7 Jun 2023 17:46:51 -0400 Subject: [PATCH 117/253] Update high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md index 495871fb4..30f468887 100644 --- a/evaluations/high_availability_validator_setup_2_keeganquigley.md +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -21,6 +21,21 @@ ## Tests +6 tests pass successfully in `authority-service`: +```rust +running 6 tests +test config::test::next_test ... ok +test config::test::load_test ... ok +test handler::test::test_authorize_round ... ok +test handler::test::test_authorize ... ok +test handler::test::test_authorize_fix_order ... ok +test handler::test::test_authorize_session ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s +``` + +Running on Ubuntu 20.04 + Running `cargo test` in `substrate-raft-setup` fails with: ```rust error: failed to run custom build command for `openssl-sys v0.9.80` @@ -93,9 +108,24 @@ Caused by: ', /home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/openssl-sys-0.9.80/build/find_normal.rs:191:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ``` - I tried installing OpenSSL tools with `sudo apt-get install libssl-dev` to no avail. - - Docker also fails to run: + I tried installing OpenSSL tools with `sudo apt-get install libssl-dev` to no avail. Also tried `sudo apt install pkg-config`. That works to fix pkg-config error but then it displays an old Rust issue that has been fixed since this toolchain was released: +```rust +error: `sp_trie::recorder::Recorder::as_trie_recorder::{opaque#0}<'_>` does not live long enough + --> /home/ubuntu/.cargo/git/checkouts/substrate-raft-e8c7ccdd76a0db97/f4bab8f/primitives/state-machine/src/trie_backend_essence.rs:181:44 + | +181 | let recorder = recorder.as_mut().map(|r| r as _); + | ^ + +error: `sp_trie::recorder::Recorder::as_trie_recorder::{opaque#0}<'_>` does not live long enough + --> /home/ubuntu/.cargo/git/checkouts/substrate-raft-e8c7ccdd76a0db97/f4bab8f/primitives/state-machine/src/trie_backend_essence.rs:219:44 + | +219 | let recorder = recorder.as_mut().map(|r| r as _); + | ^ + +error: could not compile `sp-state-machine` due to 2 previous errors +``` + +Docker also fails to run: ```rust ~/substrate-raft-setup ~/substrate-raft-setup Building bright/substrate-raft-setup:latest docker image, hang on! From 0f3c3aa297781f384ddcdaf600eb5d75126e1051 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Wed, 7 Jun 2023 18:48:06 -0400 Subject: [PATCH 118/253] Update high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md index 30f468887..a0fb6e86d 100644 --- a/evaluations/high_availability_validator_setup_2_keeganquigley.md +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -212,7 +212,64 @@ Dockerfile:9 -------------------- ERROR: failed to solve: process "/bin/sh -c cargo build --locked --release" did not complete successfully: exit code: 101 ``` +## V3 +Docker runs successfully in Codespaces: +```js +@keeganquigley ➜ /workspaces/substrate-raft (milestone-2) $ bash docker/build.sh +/workspaces/substrate-raft /workspaces/substrate-raft +Building parity/substrate:latest docker image, hang on! +[+] Building 5510.4s (20/20) FINISHED + => [internal] load .dockerignore 0.3s + => => transferring context: 99B 0.0s + => [internal] load build definition from substrate_builder.Dockerfile 0.5s + => => transferring dockerfile: 1.60kB 0.0s + => [internal] load metadata for docker.io/library/ubuntu:20.04 0.9s + => [internal] load metadata for docker.io/paritytech/ci-linux:production 0.7s + => [auth] paritytech/ci-linux:pull token for registry-1.docker.io 0.0s + => [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s + => [stage-1 1/8] FROM docker.io/library/ubuntu:20.04@sha256:db8bf6f4fb351aa7a26e27ba2686cf35a6a409f65603e59d4c203e58387dc6b3 13.2s + => => resolve docker.io/library/ubuntu:20.04@sha256:db8bf6f4fb351aa7a26e27ba2686cf35a6a409f65603e59d4c203e58387dc6b3 0.3s + => => sha256:db8bf6f4fb351aa7a26e27ba2686cf35a6a409f65603e59d4c203e58387dc6b3 1.13kB / 1.13kB 0.0s + => => sha256:b795f8e0caaaacad9859a9a38fe1c78154f8301fdaf0872eaf1520d66d9c0b98 424B / 424B 0.0s + => => sha256:88bd6891718934e63638d9ca0ecee018e69b638270fe04990a310e5c78ab4a92 2.30kB / 2.30kB 0.0s + => => sha256:ca1778b6935686ad781c27472c4668fc61ec3aeb85494f72deb1921892b9d39e 27.50MB / 27.50MB 3.2s + => => extracting sha256:ca1778b6935686ad781c27472c4668fc61ec3aeb85494f72deb1921892b9d39e 8.6s + => [internal] load build context 12.9s + => => transferring context: 185.99MB 12.3s + => [builder 1/4] FROM docker.io/paritytech/ci-linux:production@sha256:7bc94ccc966e0e998eec5dcbc514d2e6886b6c4d4b3e1e3c8e5378fdb583e06b 68.2s + => => resolve docker.io/paritytech/ci-linux:production@sha256:7bc94ccc966e0e998eec5dcbc514d2e6886b6c4d4b3e1e3c8e5378fdb583e06b 0.2s + => => sha256:7bc94ccc966e0e998eec5dcbc514d2e6886b6c4d4b3e1e3c8e5378fdb583e06b 762B / 762B 0.0s + => => sha256:c9e6004a6b7abc733befd4c97cf9f307fabe8ce90d1ac292c46fc8f0e1a78786 10.01kB / 10.01kB 0.0s + => => sha256:f03b40093957615593f2ed142961afb6b540507e0b47e3f7626ba5e02efbbbf1 31.40MB / 31.40MB 0.7s + => => sha256:a1188d3531963af14d12a749ea904f2c144d4085ff80590d6e0279263007c748 406.31MB / 406.31MB 11.2s + => => sha256:f4fff1446f7a40d17230f286942b0b1ee3ee84bc63de77562f72763ea4e3bafc 571.73MB / 571.73MB 13.6s + => => extracting sha256:f03b40093957615593f2ed142961afb6b540507e0b47e3f7626ba5e02efbbbf1 8.9s + => => extracting sha256:f4fff1446f7a40d17230f286942b0b1ee3ee84bc63de77562f72763ea4e3bafc 33.0s + => => extracting sha256:a1188d3531963af14d12a749ea904f2c144d4085ff80590d6e0279263007c748 17.1s + => [stage-1 2/8] RUN apt-get update 8.3s + => [stage-1 3/8] RUN apt-get install -y openssl 8.9s + => [builder 2/4] WORKDIR /substrate 0.3s + => [builder 3/4] COPY . /substrate 4.2s + => [builder 4/4] RUN cargo build --locked --release 5391.6s + => [stage-1 4/8] COPY --from=builder /substrate/target/release/substrate /usr/local/bin 1.3s + => [stage-1 5/8] COPY --from=builder /substrate/target/release/subkey /usr/local/bin 0.4s + => [stage-1 6/8] COPY --from=builder /substrate/target/release/node-template /usr/local/bin 0.6s + => [stage-1 7/8] COPY --from=builder /substrate/target/release/chain-spec-builder /usr/local/bin 0.4s + => [stage-1 8/8] RUN useradd -m -u 1000 -U -s /bin/sh -d /substrate substrate && mkdir -p /data /substrate/.local/share/substrate && chown -R substrate:substrate /data && ln -s /data /substrate/.local/share/ 3.6s + => exporting to image 3.0s + => => exporting layers 2.9s + => => writing image sha256:6db86cc74546a784e8426c5df410eedaf97bc32281f550535706c228da65166c 0.0s + => => naming to docker.io/parity/substrate:latest 0.0s + +real 91m51.717s +user 0m10.582s +sys 0m9.266s +Image is ready +parity/substrate latest 6db86cc74546 31 seconds ago 319MB +parity/substrate v3.0.0 6db86cc74546 31 seconds ago 319MB +/workspaces/substrate-raft +``` **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`: ```rust warning: associated function `project_ref` is never used From a552f733eadf3c9a5d8a97289fb408b0c063dbf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 8 Jun 2023 16:49:36 +0200 Subject: [PATCH 119/253] Solidity verifier for accountable light client M1 in progress --- ...lidity-light-client-verifier_1_semuelle.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 evaluations/solidity-light-client-verifier_1_semuelle.md diff --git a/evaluations/solidity-light-client-verifier_1_semuelle.md b/evaluations/solidity-light-client-verifier_1_semuelle.md new file mode 100755 index 000000000..76f4b1795 --- /dev/null +++ b/evaluations/solidity-light-client-verifier_1_semuelle.md @@ -0,0 +1,22 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** clickme +- **Milestone:** 1 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | License |
  • [x]
| [paritytech/frontier](https://github.com/paritytech/frontier/blob/fba84577bf6507d76d40af891d2db38f4e385c11/LICENSE-APACHE2) | Apache 2.0, as dictated by `paritytech/frontier` | +| **0b.** | Documentation |
  • [ ]
| link | We will provide both **inline documentation** of the code. | +| **0c.** | Testing and Testing Guide |
  • [ ]
| link | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. | +| **0d.** | Docker |
  • [ ]
| link | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | +| 1. | BLS12-377 precompile |
  • [ ]
| link | We will create a [EIP-2539](https://eips.ethereum.org/EIPS/eip-2539) compatible BLS12-377 precompile which can run inside [frontier](https://github.com/paritytech/frontier). It will be developed using Rust programming language. The libraries we plan to use are [arkworks-rs/curves](https://github.com/arkworks-rs/curves) library or the substrate host function calls provided by this [Pull Request](https://github.com/paritytech/substrate/pull/13031).
Other references:
https://github.com/celo-org/celo-blockchain/pull/1157
https://github.com/celo-org/celo-blockchain/pull/1341 | +| 2. | BW6-761 precompile |
  • [ ]
| link | We will create a [EIP-3026](https://eips.ethereum.org/EIPS/eip-3026) compatible BW6-761 precompile which can run inside [frontier](https://github.com/paritytech/frontier). The programming language and libs to use are the same as BLS12-377 precompile.
Other references:
https://github.com/celo-org/celo-blockchain/pull/1282 | +| X. | ... |
  • [ ]
| link | see [General Notes](#general-notes) | + + +## General Notes + +- — From a3c0dcfa4852476db5b3b2675e668911d5710dfd Mon Sep 17 00:00:00 2001 From: wf3 Date: Fri, 9 Jun 2023 12:07:07 +0200 Subject: [PATCH 120/253] add patron m1 eval --- evaluations/patron_1_takahser.md | 317 +++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 evaluations/patron_1_takahser.md diff --git a/evaluations/patron_1_takahser.md b/evaluations/patron_1_takahser.md new file mode 100644 index 000000000..df285464b --- /dev/null +++ b/evaluations/patron_1_takahser.md @@ -0,0 +1,317 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/patron.md +- **Milestone:** 1 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** All by takahser + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
| [MIT](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/LICENSE) | - | +| 0b. | Documentation |
  • [ ]
| [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/cli.md), [self-hosting instructions](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md) | See [documentation feedback](#documentation-feedback). | +| 0c. | Testing guidelines |
  • [ ]
| [Instructions in Delivery](https://github.com/w3f/Grant-Milestone-Delivery/pull/871/files#diff-c6776ce4032fba925481b56ba22f31870e3afd145b38a80d8854ab970066986bR25-R167) | See [testing guidelines feedback](#testing-guidelines-feedback). | +| 0d. | Docker |
  • [ ]
| [containers.rs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/builder/src/process/container.rs) | Please add install instructions for nix. | +| 0e. | Article |
  • [ ]
| [Medium Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) | Rather poorly written. I assume there hasn't been any proof-reading process. Given the price tag of this grant I think it'd be fair to expect a higher quality here. | +| 1a. | Backend storage |
  • [ ]
| [db crate](https://github.com/Brushfam/patron-backend/tree/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/db) | See [backend storage feedback](#backend-storage-feedback). | +| 1b. | Sync server |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A separate server that catches new contract deployments and events will be implemented. | +| 1c. | Smart contract builder |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | +| 2a. | Web UI |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A simple web UI will be implemented to expose Patron functionality. | +| 2b. | Detailed contract information |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: Frontend to display detailed contract info (as well as verification status) will be implemented. | +| 2c. | User authentication |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: We will implement a web3-oriented authentication solution | +| 3a. | Developer CLI utility |
  • [ ]
| (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | + + +Ideally all links inside the above table should include the commit hash, +which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. + +## General Notes + +### Documentation Feedback + +The spec in the proposal reads: + +> We will provide API documentation for contributors to get along with the codebase, as well as a detailed self-hosting instructions for users to create their own nodes. + +However, I couldn't find an "API documentation for contributors". +Also, the code has almost no inline comments, which makes it harder for contributers to understand the code. For reference you can have a look at some of parity pallets, e.g. the [assets pallet](https://github.com/paritytech/substrate/blob/e434882d5dbf3f3f6085cb7f1d017dbc4ac11f0a/frame/assets/src/lib.rs) for some inspiration on inline-comments. In a second step, you could use `rustdoc` to generate the documentation based on the inline comments you provided. + +### Testing Guidelines Feedback + +- tests currently fail: + +``` +patron-backend % cargo test + Finished test [unoptimized + debuginfo] target(s) in 0.89s + Running unittests src/main.rs (target/debug/deps/builder-28b73d84909f3efc) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/common-fbbf3295f160301d) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/db-ed64b4571b071d85) + +running 1 test +test tests::exists ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running unittests src/main.rs (target/debug/deps/event_client-752971dcc25eef01) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/migration-ebad0d10a57af4a4) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/migration-6c190ff85e487d47) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/patron-3e45bbdf3e5868ec) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/server-b6f364596d37e1a2) + +running 37 tests +test handlers::auth::login::tests::successful ... FAILED +test handlers::auth::register::tests::register ... FAILED +test handlers::auth::login::tests::invalid_signature ... FAILED +test handlers::auth::login::tests::missing_account ... FAILED +test handlers::auth::login::tests::cli_token_repetition ... FAILED +test handlers::auth::login::tests::invalid_account ... FAILED +test handlers::auth::login::tests::exchange ... FAILED +test handlers::auth::login::tests::unmatching_signature ... FAILED +test handlers::build_sessions::details::tests::successful ... FAILED +test handlers::build_sessions::create::tests::invalid_source_code_id ... FAILED +test handlers::build_sessions::latest::tests::successful ... FAILED +test handlers::build_sessions::latest::tests::source_code_without_build_sessions ... FAILED +test handlers::build_sessions::create::tests::invalid_version ... FAILED +test handlers::build_sessions::details::tests::unknown ... FAILED +test handlers::build_sessions::list::tests::successful ... FAILED +test handlers::build_sessions::create::tests::create ... FAILED +test handlers::build_sessions::status::tests::unknown ... FAILED +test handlers::build_sessions::logs::tests::successful_by_code_hash ... FAILED +test handlers::build_sessions::logs::tests::unknown ... FAILED +test handlers::build_sessions::metadata::tests::unknown ... FAILED +test handlers::build_sessions::metadata::tests::successful ... FAILED +test handlers::build_sessions::logs::tests::position ... FAILED +test handlers::build_sessions::logs::tests::successful_by_id ... FAILED +test handlers::build_sessions::status::tests::successful ... FAILED +test handlers::build_sessions::wasm::tests::successful ... FAILED +test handlers::contracts::details::tests::unknown ... FAILED +test handlers::build_sessions::wasm::tests::unknown ... FAILED +test handlers::contracts::events::tests::successful ... FAILED +test handlers::contracts::events::tests::unknown ... FAILED +test handlers::contracts::details::tests::successful ... FAILED +test handlers::files::details::tests::single_file ... FAILED +test handlers::files::details::tests::file_list ... FAILED +test handlers::files::upload::tests::empty_request ... FAILED +test handlers::keys::delete::tests::list_and_delete ... FAILED +test handlers::files::details::tests::unknown_file ... FAILED +test handlers::keys::verify::tests::list_and_verify ... FAILED +test handlers::files::upload::tests::upload_and_seal ... FAILED + +failures: + +---- handlers::auth::login::tests::successful stdout ---- +thread 'handlers::auth::login::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:160:79 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +---- handlers::auth::register::tests::register stdout ---- +thread 'handlers::auth::register::tests::register' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/register.rs:60:79 + +---- handlers::auth::login::tests::invalid_signature stdout ---- +thread 'handlers::auth::login::tests::invalid_signature' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:214:79 + +---- handlers::auth::login::tests::missing_account stdout ---- +thread 'handlers::auth::login::tests::missing_account' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:260:79 + +---- handlers::auth::login::tests::cli_token_repetition stdout ---- +thread 'handlers::auth::login::tests::cli_token_repetition' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:334:82 + +---- handlers::auth::login::tests::invalid_account stdout ---- +thread 'handlers::auth::login::tests::invalid_account' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:190:79 + +---- handlers::auth::login::tests::exchange stdout ---- +thread 'handlers::auth::login::tests::exchange' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:286:82 + +---- handlers::auth::login::tests::unmatching_signature stdout ---- +thread 'handlers::auth::login::tests::unmatching_signature' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:238:79 + +---- handlers::build_sessions::details::tests::successful stdout ---- +thread 'handlers::build_sessions::details::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/details.rs:98:79 + +---- handlers::build_sessions::create::tests::invalid_source_code_id stdout ---- +thread 'handlers::build_sessions::create::tests::invalid_source_code_id' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:211:79 + +---- handlers::build_sessions::latest::tests::successful stdout ---- +thread 'handlers::build_sessions::latest::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/latest.rs:128:79 + +---- handlers::build_sessions::latest::tests::source_code_without_build_sessions stdout ---- +thread 'handlers::build_sessions::latest::tests::source_code_without_build_sessions' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/latest.rs:150:79 + +---- handlers::build_sessions::create::tests::invalid_version stdout ---- +thread 'handlers::build_sessions::create::tests::invalid_version' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:185:79 + +---- handlers::build_sessions::details::tests::unknown stdout ---- +thread 'handlers::build_sessions::details::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/details.rs:122:79 + +---- handlers::build_sessions::list::tests::successful stdout ---- +thread 'handlers::build_sessions::list::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/list.rs:161:79 + +---- handlers::build_sessions::create::tests::create stdout ---- +thread 'handlers::build_sessions::create::tests::create' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:157:79 + +---- handlers::build_sessions::status::tests::unknown stdout ---- +thread 'handlers::build_sessions::status::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/status.rs:122:79 + +---- handlers::build_sessions::logs::tests::successful_by_code_hash stdout ---- +thread 'handlers::build_sessions::logs::tests::successful_by_code_hash' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:205:79 + +---- handlers::build_sessions::logs::tests::unknown stdout ---- +thread 'handlers::build_sessions::logs::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:268:79 + +---- handlers::build_sessions::metadata::tests::unknown stdout ---- +thread 'handlers::build_sessions::metadata::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/metadata.rs:129:79 + +---- handlers::build_sessions::metadata::tests::successful stdout ---- +thread 'handlers::build_sessions::metadata::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/metadata.rs:109:79 + +---- handlers::build_sessions::logs::tests::position stdout ---- +thread 'handlers::build_sessions::logs::tests::position' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:240:79 + +---- handlers::build_sessions::logs::tests::successful_by_id stdout ---- +thread 'handlers::build_sessions::logs::tests::successful_by_id' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:170:79 + +---- handlers::build_sessions::status::tests::successful stdout ---- +thread 'handlers::build_sessions::status::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/status.rs:101:79 + +---- handlers::build_sessions::wasm::tests::successful stdout ---- +thread 'handlers::build_sessions::wasm::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/wasm.rs:68:79 + +---- handlers::contracts::details::tests::unknown stdout ---- +thread 'handlers::contracts::details::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/details.rs:143:79 + +---- handlers::build_sessions::wasm::tests::unknown stdout ---- +thread 'handlers::build_sessions::wasm::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/wasm.rs:86:79 + +---- handlers::contracts::events::tests::successful stdout ---- +thread 'handlers::contracts::events::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/events.rs:124:79 + +---- handlers::contracts::events::tests::unknown stdout ---- +thread 'handlers::contracts::events::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/events.rs:147:79 + +---- handlers::contracts::details::tests::successful stdout ---- +thread 'handlers::contracts::details::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/details.rs:122:79 + +---- handlers::files::details::tests::single_file stdout ---- +thread 'handlers::files::details::tests::single_file' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:118:79 + +---- handlers::files::details::tests::file_list stdout ---- +thread 'handlers::files::details::tests::file_list' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:160:79 + +---- handlers::files::upload::tests::empty_request stdout ---- +thread 'handlers::files::upload::tests::empty_request' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/upload.rs:216:79 + +---- handlers::keys::delete::tests::list_and_delete stdout ---- +thread 'handlers::keys::delete::tests::list_and_delete' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/keys/delete.rs:98:82 + +---- handlers::files::details::tests::unknown_file stdout ---- +thread 'handlers::files::details::tests::unknown_file' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:140:79 + +---- handlers::keys::verify::tests::list_and_verify stdout ---- +thread 'handlers::keys::verify::tests::list_and_verify' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/keys/verify.rs:122:82 + +---- handlers::files::upload::tests::upload_and_seal stdout ---- +thread 'handlers::files::upload::tests::upload_and_seal' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/upload.rs:148:82 + + +failures: + handlers::auth::login::tests::cli_token_repetition + handlers::auth::login::tests::exchange + handlers::auth::login::tests::invalid_account + handlers::auth::login::tests::invalid_signature + handlers::auth::login::tests::missing_account + handlers::auth::login::tests::successful + handlers::auth::login::tests::unmatching_signature + handlers::auth::register::tests::register + handlers::build_sessions::create::tests::create + handlers::build_sessions::create::tests::invalid_source_code_id + handlers::build_sessions::create::tests::invalid_version + handlers::build_sessions::details::tests::successful + handlers::build_sessions::details::tests::unknown + handlers::build_sessions::latest::tests::source_code_without_build_sessions + handlers::build_sessions::latest::tests::successful + handlers::build_sessions::list::tests::successful + handlers::build_sessions::logs::tests::position + handlers::build_sessions::logs::tests::successful_by_code_hash + handlers::build_sessions::logs::tests::successful_by_id + handlers::build_sessions::logs::tests::unknown + handlers::build_sessions::metadata::tests::successful + handlers::build_sessions::metadata::tests::unknown + handlers::build_sessions::status::tests::successful + handlers::build_sessions::status::tests::unknown + handlers::build_sessions::wasm::tests::successful + handlers::build_sessions::wasm::tests::unknown + handlers::contracts::details::tests::successful + handlers::contracts::details::tests::unknown + handlers::contracts::events::tests::successful + handlers::contracts::events::tests::unknown + handlers::files::details::tests::file_list + handlers::files::details::tests::single_file + handlers::files::details::tests::unknown_file + handlers::files::upload::tests::empty_request + handlers::files::upload::tests::upload_and_seal + handlers::keys::delete::tests::list_and_delete + handlers::keys::verify::tests::list_and_verify + +test result: FAILED. 0 passed; 37 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s + +error: test failed, to rerun pass `-p server --bin server` +``` + + +### Backend Storage Feedback + +- regarding running the DB, please add instructions on how to install and configure it so it matches your example *Config.toml* file mentioned in the [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md#configuration) +- the build passes: + +```bash +% cargo build --release + + Compiling proc-macro2 v1.0.59 + Compiling quote v1.0.28 + + (...) + + Compiling tar v0.4.38 + Compiling migration v0.1.0 (/Users/xxx/repos/patron-backend/crates/migration) + Compiling validator v0.16.0 + Compiling ink_metadata v4.2.0 + Compiling serde_plain v1.0.1 + Compiling which v4.4.0 + Compiling zip v0.6.6 + Compiling axum-derive-error v0.1.0 + Compiling home v0.5.5 + Compiling patron v0.1.0 (/Users/xxx/repos/patron-backend/crates/patron) + Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) + Compiling server v0.1.0 (/Users/xxx/repos/patron-backend/crates/server) + Compiling builder v0.1.0 (/Users/xxx/repos/patron-backend/crates/builder) + Finished release [optimized] target(s) in 5m 15s +``` From 5918052681060f787d45ab8a499f953052a70aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Fri, 9 Jun 2023 17:13:02 +0200 Subject: [PATCH 121/253] Accept Solidity verifier for acc. light client M1 --- ...solidity-light-client-verifier_1_semuelle.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/evaluations/solidity-light-client-verifier_1_semuelle.md b/evaluations/solidity-light-client-verifier_1_semuelle.md index 76f4b1795..b0a819f57 100755 --- a/evaluations/solidity-light-client-verifier_1_semuelle.md +++ b/evaluations/solidity-light-client-verifier_1_semuelle.md @@ -1,7 +1,7 @@ # Evaluation -- **Status:** In Progress -- **Application Document:** clickme +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/solidity-verifier-for-accountable-light-client.md - **Milestone:** 1 - **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) - **Previously successfully merged evaluation:** All by semuelle @@ -9,14 +9,13 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | :------: | ---- |----------------- | | **0a.** | License |
  • [x]
| [paritytech/frontier](https://github.com/paritytech/frontier/blob/fba84577bf6507d76d40af891d2db38f4e385c11/LICENSE-APACHE2) | Apache 2.0, as dictated by `paritytech/frontier` | -| **0b.** | Documentation |
  • [ ]
| link | We will provide both **inline documentation** of the code. | -| **0c.** | Testing and Testing Guide |
  • [ ]
| link | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. | -| **0d.** | Docker |
  • [ ]
| link | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | -| 1. | BLS12-377 precompile |
  • [ ]
| link | We will create a [EIP-2539](https://eips.ethereum.org/EIPS/eip-2539) compatible BLS12-377 precompile which can run inside [frontier](https://github.com/paritytech/frontier). It will be developed using Rust programming language. The libraries we plan to use are [arkworks-rs/curves](https://github.com/arkworks-rs/curves) library or the substrate host function calls provided by this [Pull Request](https://github.com/paritytech/substrate/pull/13031).
Other references:
https://github.com/celo-org/celo-blockchain/pull/1157
https://github.com/celo-org/celo-blockchain/pull/1341 | -| 2. | BW6-761 precompile |
  • [ ]
| link | We will create a [EIP-3026](https://eips.ethereum.org/EIPS/eip-3026) compatible BW6-761 precompile which can run inside [frontier](https://github.com/paritytech/frontier). The programming language and libs to use are the same as BLS12-377 precompile.
Other references:
https://github.com/celo-org/celo-blockchain/pull/1282 | -| X. | ... |
  • [ ]
| link | see [General Notes](#general-notes) | +| **0b.** | Documentation |
  • [x]
| [rustdocs1](https://paritytech.github.io/frontier/rustdocs/pallet_evm_precompile_bls12377/index.html), [rustdocs2](https://paritytech.github.io/frontier/rustdocs/pallet_evm_precompile_bw6761/index.html) | Good inline documentation. | +| **0c.** | Testing and Testing Guide |
  • [x]
| [bls12377](https://github.com/paritytech/frontier/blob/fba84577bf6507d76d40af891d2db38f4e385c11/frame/evm/precompile/bls12377/src/tests.rs), [bw6761](https://github.com/paritytech/frontier/blob/master/frame/evm/precompile/bw6761/src/tests.rs) | — | +| 1. | BLS12-377 precompile |
  • [x]
| [frame/evm/precompile/bls12377](https://github.com/paritytech/frontier/tree/fba84577bf6507d76d40af891d2db38f4e385c11/frame/evm/precompile/bls12377) | — | +| 2. | BW6-761 precompile |
  • [x]
| [frame/evm/precompile/bw6761](https://github.com/paritytech/frontier/tree/fba84577bf6507d76d40af891d2db38f4e385c11/frame/evm/precompile/bw6761) | — | ## General Notes -- — +- Merged into [paritytech/frontier](https://github.com/paritytech/frontier/pull/1049/) on May 8, 2023. +- Docker default deliverable removed as unnecessary. From e4ea06dd482484eee95d88b259416658b5783a65 Mon Sep 17 00:00:00 2001 From: fisher Date: Fri, 9 Jun 2023 23:16:08 +0800 Subject: [PATCH 122/253] Solidity Verifier Implementation for Accountable Light Client Milestone 1 (#859) Co-authored-by: Aki Wu --- ...or-accountable-light-client_milestone-1.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 deliveries/solidity-verifier-for-accountable-light-client_milestone-1.md diff --git a/deliveries/solidity-verifier-for-accountable-light-client_milestone-1.md b/deliveries/solidity-verifier-for-accountable-light-client_milestone-1.md new file mode 100644 index 000000000..1da3caa3c --- /dev/null +++ b/deliveries/solidity-verifier-for-accountable-light-client_milestone-1.md @@ -0,0 +1,28 @@ +# 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/solidity-verifier-for-accountable-light-client.md +- **Milestone Number:** 1 + +**Context** + +This milestone contains two EIP compatibale elliptic curve precompile implementations. They have been merged into [paritytech/frontier](https://github.com/paritytech/frontier) through this [PR](https://github.com/paritytech/frontier/pull/1049/). + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| **0a.** | License | Apache-2.0 | follow [paritytech/frontier](https://github.com/paritytech/frontier)'s license | +| **0b.** | Documentation | [BLS12-377](https://paritytech.github.io/frontier/rustdocs/pallet_evm_precompile_bls12377/index.html), [BW6-761](https://paritytech.github.io/frontier/rustdocs/pallet_evm_precompile_bw6761/index.html) | | +| **0c.** | Testing and Testing Guide | [BLS12-377](https://github.com/paritytech/frontier/blob/master/frame/evm/precompile/bls12377/src/tests.rs), [BW6-761](https://github.com/paritytech/frontier/blob/master/frame/evm/precompile/bw6761/src/tests.rs) | | +| 1. | BLS12-377 precompile | [code](https://github.com/paritytech/frontier/blob/master/frame/evm/precompile/bls12377/src/lib.rs) | | +| 2. | BW6-761 precompile | [code](https://github.com/paritytech/frontier/blob/master/frame/evm/precompile/bw6761/src/lib.rs) | | + +**Additional Information** + +1. Update EIP-3026: Gas meter + https://github.com/ethereum/EIPs/pull/7006 + +2. Celo's EIP-2539 implmentation has a problem about Multiexponentiation. + https://github.com/celo-org/celo-blockchain/issues/2059 From d000c1a53e68a2e70082d00dbce3ebb87aee0749 Mon Sep 17 00:00:00 2001 From: Muhammed Irfan Date: Sat, 10 Jun 2023 13:09:47 +0530 Subject: [PATCH 123/253] update delivery document --- deliveries/project_aurras_mvp_phase_2_milestone-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/project_aurras_mvp_phase_2_milestone-2.md b/deliveries/project_aurras_mvp_phase_2_milestone-2.md index 2027611f8..fb7aee6f5 100644 --- a/deliveries/project_aurras_mvp_phase_2_milestone-2.md +++ b/deliveries/project_aurras_mvp_phase_2_milestone-2.md @@ -14,4 +14,4 @@ | 0c. | Testing Guide | https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | | | 0d. | Docker File | https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | | | 1a. | Workflow Composer: Flow Macro | https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | | -| 1b. | staking and payout features for scs/substrate-api-client | https://github.com/scs/substrate-api-client/pull/294 | | \ No newline at end of file +| 1b. | staking and payout features for scs/substrate-api-client | https://github.com/scs/substrate-api-client/pull/294 | This deliverable is introduced as a work around for a blocker for the action timeout, This has also significantly increased the performance. [Source](https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md#update--amendments)
cargo test --features staking-xt | \ No newline at end of file From e8d3c885857bb24328d308ae4fafa2448cb2ee7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 12 Jun 2023 12:54:44 +0200 Subject: [PATCH 124/253] Update google_sheet_update.yml --- .github/workflows/google_sheet_update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/google_sheet_update.yml b/.github/workflows/google_sheet_update.yml index 9b9f093fb..7f6c8eff3 100644 --- a/.github/workflows/google_sheet_update.yml +++ b/.github/workflows/google_sheet_update.yml @@ -102,7 +102,7 @@ jobs: "${{ steps.parse-grant.outputs.project_name }}", "${{ steps.parse-delivery.outputs.milestone_number }}", "", - "Not Yet", + "4 - Not Yet", "=IFERROR(SWITCH(INDIRECT(ADDRESS(ROW(),COLUMN()-1)), \"Not Yet\", 4, \"In Progress\", 3, \"Asked for Changes\", 2, \"Final Check\", 3, \"Final Warning\", 3, \"Done\", 0, \"Terminated\", 0, \"On Hold\", 1))", "=INDEX(Legal!$W$2:$W,MATCH(INDIRECT(CONCATENATE(\"B\", TEXT(ROW(), \"#\"))),Legal!$D$2:$D,0))", "${{ github.event.pull_request.html_url }}", From 5030519cfabc4f23090b6ab566f4a509f06f31ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 12 Jun 2023 13:55:08 +0200 Subject: [PATCH 125/253] Update google_sheet_update.yml --- .github/workflows/google_sheet_update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/google_sheet_update.yml b/.github/workflows/google_sheet_update.yml index 7f6c8eff3..9b9f093fb 100644 --- a/.github/workflows/google_sheet_update.yml +++ b/.github/workflows/google_sheet_update.yml @@ -102,7 +102,7 @@ jobs: "${{ steps.parse-grant.outputs.project_name }}", "${{ steps.parse-delivery.outputs.milestone_number }}", "", - "4 - Not Yet", + "Not Yet", "=IFERROR(SWITCH(INDIRECT(ADDRESS(ROW(),COLUMN()-1)), \"Not Yet\", 4, \"In Progress\", 3, \"Asked for Changes\", 2, \"Final Check\", 3, \"Final Warning\", 3, \"Done\", 0, \"Terminated\", 0, \"On Hold\", 1))", "=INDEX(Legal!$W$2:$W,MATCH(INDIRECT(CONCATENATE(\"B\", TEXT(ROW(), \"#\"))),Legal!$D$2:$D,0))", "${{ github.event.pull_request.html_url }}", From 094a3eb844cfd00f1e800d694517dbed17d2cece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 12 Jun 2023 13:56:16 +0200 Subject: [PATCH 126/253] Update google_sheet_update.yml --- .github/workflows/google_sheet_update.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/google_sheet_update.yml b/.github/workflows/google_sheet_update.yml index 9b9f093fb..17df1e008 100644 --- a/.github/workflows/google_sheet_update.yml +++ b/.github/workflows/google_sheet_update.yml @@ -103,7 +103,6 @@ jobs: "${{ steps.parse-delivery.outputs.milestone_number }}", "", "Not Yet", - "=IFERROR(SWITCH(INDIRECT(ADDRESS(ROW(),COLUMN()-1)), \"Not Yet\", 4, \"In Progress\", 3, \"Asked for Changes\", 2, \"Final Check\", 3, \"Final Warning\", 3, \"Done\", 0, \"Terminated\", 0, \"On Hold\", 1))", "=INDEX(Legal!$W$2:$W,MATCH(INDIRECT(CONCATENATE(\"B\", TEXT(ROW(), \"#\"))),Legal!$D$2:$D,0))", "${{ github.event.pull_request.html_url }}", "", From 63a3309037422691423f9dc8330f57018cfc7564 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 12 Jun 2023 14:35:07 -0300 Subject: [PATCH 127/253] Update genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md index 1fa915029..4843ac04c 100644 --- a/evaluations/genesisdao_3_dsm-w3f.md +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -17,6 +17,25 @@ | 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | | 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | +## Evaluation V4 + +### Testing + +I created a DAO with 1,000,000 tokens and received some pop-ups after the creation and when updating the page. + +![pasted image 0 (3)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/8d17c635-419e-4258-b36a-0656e3ca62ee) + +I created a proposal but when I voted the vote count didn't update with the vote. Besides that, the vote was registered in the blockchain. + +![pasted image 0 (4)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/95feb06b-9638-4582-86d1-ec35a8da1c26) + +When I reloaded the page no proposal was listed. I tried to create another one but the interface didn't list the new proposal. + +![image (21)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/14166868-c8dd-4e61-a8f2-18715f792486) + + +I created another DAO with 100,000 tokens the application worked fine. I was able to approve the proposal and mark it as implemented but the interface didn't appear with any information saying the proposal was implemented. Would be nice if the frontend have this information. + ## Evaluation V3 ### Testing From 4c3a0c7451dad44d4071c1f6e8f7d4bf1edf1bb3 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 12 Jun 2023 14:51:34 -0300 Subject: [PATCH 128/253] Update saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 92 ++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md index 1d3c25d2c..543440dc4 100644 --- a/evaluations/saas3_2_dsm-w3f.md +++ b/evaluations/saas3_2_dsm-w3f.md @@ -23,6 +23,98 @@ | | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | | 3. | UI & Frontend |
  • [ ]
| https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | +## Evaluation V2 + +### Automated Test + +I ran `cargo +nightly test`, and all tests passed without warnings, with better coverage. + +``` +running 9 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::submite_sue_works ... ok +test tests::vote_sue_works ... ok +test tests::contribution_works ... ok +test tests::vote_against_works ... ok +test tests::process_sue_before_vote ... ok +test tests::remove_approved_sue ... ok +test tests::process_sue_works ... ok +test tests::remove_unapproved_sue ... ok + +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_template-e0640ccd8bc222e0) + +running 3 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::it_works_for_default_value ... ok +test tests::correct_error_for_none_value ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_treasury-fa4c5da44e70add7) + +running 6 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::genesis_config_works ... ok +test tests::receive_from_zero_balance_should_fail ... ok +test tests::receive_should_works ... ok +test tests::claim_rewards_exceed_claim ... ok +test tests::claim_rewards_ok ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/main.rs (target/debug/deps/saas3_dao_node-a29cbf50b04bb799) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/saas3_dao_runtime-912420306e0771b8) + +running 5 tests +test weights::block_weights::constants::test_weights::sane ... ok +test weights::rocksdb_weights::constants::test_db_weights::sane ... ok +test weights::paritydb_weights::constants::test_db_weights::sane ... ok +test weights::extrinsic_weights::constants::test_weights::sane ... ok +test __construct_runtime_integrity_test::runtime_integrity_tests ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-court +``` + +``` +Jun 12 10:49:44.439 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| node/src/chain_spec.rs: 0/90 +|| node/src/cli.rs: 0/5 +|| node/src/command.rs: 0/187 +|| node/src/main.rs: 0/2 +|| node/src/rpc.rs: 0/6 +|| node/src/service.rs: 0/155 +|| pallets/court/src/lib.rs: 58/71 +|| pallets/template/src/lib.rs: 9/17 +|| pallets/treasury/src/lib.rs: 45/52 +|| runtime/src/lib.rs: 11/97 +|| runtime/src/weights/block_weights.rs: 1/1 +|| runtime/src/weights/extrinsic_weights.rs: 1/1 +|| runtime/src/weights/paritydb_weights.rs: 0/3 +|| runtime/src/weights/rocksdb_weights.rs: 0/3 +|| runtime/src/xcm_config.rs: 0/31 +|| +17.34% coverage, 125/721 lines covered +``` + +### Manual Testing + +I didn't understand what the `root user` is in this application. Is it to use `sudo` to use the command `court.processSue`? Please explain. Do I need to use the root user to approve in the frontend? +The lack of access to the root user prevented me to complete the manual testing of the application. + +### Code Quality + +The EsLint warnings were fixed. + ## Evaluation V1 ### Documentation From e6e508380b7bade66bfafccb5fcb406ccb22be13 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 13 Jun 2023 11:27:22 -0400 Subject: [PATCH 129/253] Update high_availability_validator_setup_2_keeganquigley.md --- ...ability_validator_setup_2_keeganquigley.md | 79 ++++++++++++++++--- 1 file changed, 67 insertions(+), 12 deletions(-) diff --git a/evaluations/high_availability_validator_setup_2_keeganquigley.md b/evaluations/high_availability_validator_setup_2_keeganquigley.md index a0fb6e86d..a32012d4c 100644 --- a/evaluations/high_availability_validator_setup_2_keeganquigley.md +++ b/evaluations/high_availability_validator_setup_2_keeganquigley.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/High_availability_validator_setup.md - **Milestone:** 2 - **Previously successfully merged evaluation:** All by keeganquigley @@ -8,14 +8,14 @@ | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- | ------------- |------------- | | 0a. | License |
  • [x]
| https://github.com/bright/substrate-raft/blob/milestone-1/LICENSE-GPL3 | GPLv3, Unlicense | -| 0b. | Documentation |
  • [x]
| Inline | | -| 0c. | Testing and Testing Guide |
  • [x]
| - | | -| 0d. | Docker |
  • [x]
| https://github.com/bright/substrate-raft/tree/milestone-1/docker | | -| **1** | Basic Service |
  • [x]
| [Authority-service](https://github.com/bright/substrate-raft-setup/blob/milestone-2/bin/authority-service) code | | -| **2** | Getting permission from microservice |
  • [x]
| [Repository](https://github.com/bright/substrate-raft-setup/blob/milestone-2) for the custom node, and the [implementation](https://github.com/bright/substrate-raft-setup/blob/milestone-2/permission_resolver/src/lib.rs) for the PermissionResolver | | -| **3** | Allow as optional |
  • [x]
| Code for the [cli](https://github.com/bright/substrate-raft-setup/blob/milestone-2/node/src/cli.rs) | | -| **4** | Clean up substrate code |
  • [x]
| Changes in [code](https://github.com/bright/substrate-raft/commit/f4bab8f2a461271ab52ec6343934f6b84623b6c8) | | -| **5** | Integration test |
  • [x]
| | | +| 0b. | Documentation |
  • [x]
| Inline | Looks good. | +| 0c. | Testing and Testing Guide |
  • [x]
| - | Looks good. | +| 0d. | Docker |
  • [x]
| https://github.com/bright/substrate-raft/tree/milestone-1/docker | Looks good. | +| **1** | Basic Service |
  • [x]
| [Authority-service](https://github.com/bright/substrate-raft-setup/blob/milestone-2/bin/authority-service) code | Looks good. | +| **2** | Getting permission from microservice |
  • [x]
| [Repository](https://github.com/bright/substrate-raft-setup/blob/milestone-2) for the custom node, and the [implementation](https://github.com/bright/substrate-raft-setup/blob/milestone-2/permission_resolver/src/lib.rs) for the PermissionResolver | Looks good. | +| **3** | Allow as optional |
  • [x]
| Code for the [cli](https://github.com/bright/substrate-raft-setup/blob/milestone-2/node/src/cli.rs) | Looks good. | +| **4** | Clean up substrate code |
  • [x]
| Changes in [code](https://github.com/bright/substrate-raft/commit/f4bab8f2a461271ab52ec6343934f6b84623b6c8) | Looks good. | +| **5** | Integration test |
  • [x]
| | Looks good. | # General Notes @@ -174,7 +174,7 @@ Building bright/substrate-raft-setup:latest docker image, hang on! ------ process "/bin/sh -c apt-get install -y openssl" did not complete successfully: exit code: 100 ``` -## V2 +## Update 2 Tried Docker on Ubuntu and fails with this: ```rust @@ -212,7 +212,7 @@ Dockerfile:9 -------------------- ERROR: failed to solve: process "/bin/sh -c cargo build --locked --release" did not complete successfully: exit code: 101 ``` -## V3 +## Update 3 Docker runs successfully in Codespaces: ```js @@ -270,7 +270,62 @@ parity/substrate latest 6db86cc74546 31 seconds ago 319MB parity/substrate v3.0.0 6db86cc74546 31 seconds ago 319MB /workspaces/substrate-raft ``` - **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`: +Had a call with the team and they gave demo of the tech. Essentially the issues were on my end as I wasn't running good enough hardware specs. They were able to show the basic boolean logic working, and see the `permissionResolver` trait in action. `Authority-Service` code could use more inline comments. + +`cargo test` successful but with some warnings: +```rust +warning: using `.borrow()` on a double reference, which returns `&KArg1` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:81:22 + | +81 | let key_hashed = k1.borrow().using_encoded(Self::Hasher1::hash); + | ^^^^^^^^^ + | + = note: `#[warn(suspicious_double_ref_op)]` on by default + +warning: using `.borrow()` on a double reference, which returns `&KArg1` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:98:23 + | +98 | let key1_hashed = k1.borrow().using_encoded(Self::Hasher1::hash); + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&KArg2` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:99:23 + | +99 | let key2_hashed = k2.borrow().using_encoded(Self::Hasher2::hash); + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&VArg` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:201:66 + | +201 | unhashed::put(&Self::storage_double_map_final_key(k1, k2), &val.borrow()) + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&KeyArg1` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:332:26 + | +332 | let key1_hashed = key1.borrow().using_encoded(OldHasher1::hash); + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&KeyArg2` instead of borrowing the inner type + --> frame/support/src/storage/generator/double_map.rs:333:26 + | +333 | let key2_hashed = key2.borrow().using_encoded(OldHasher2::hash); + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&KeyArg` instead of borrowing the inner type + --> frame/support/src/storage/generator/map.rs:71:23 + | +71 | let key_hashed = key.borrow().using_encoded(Self::Hasher::hash); + | ^^^^^^^^^ + +warning: using `.borrow()` on a double reference, which returns `&KeyArg` instead of borrowing the inner type + --> frame/support/src/storage/generator/map.rs:330:24 + | +330 | let key_hashed = key.borrow().using_encoded(OldHasher::hash); + | ^^^^^^^^^ +``` + + **Linting:**: Cargo clippy produces the following warnings for `substrate-raft`. Consider fixing for next milestone. ```rust warning: associated function `project_ref` is never used --> client/telemetry/src/transport.rs:80:1 From 24bffbadce92f691d457c9cdf142be09ec70f37b Mon Sep 17 00:00:00 2001 From: wf3 Date: Tue, 13 Jun 2023 17:40:45 +0200 Subject: [PATCH 130/253] add larch m1 eval --- evaluations/larch_1_takahser.md | 159 ++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 evaluations/larch_1_takahser.md diff --git a/evaluations/larch_1_takahser.md b/evaluations/larch_1_takahser.md new file mode 100644 index 000000000..ef4a723f6 --- /dev/null +++ b/evaluations/larch_1_takahser.md @@ -0,0 +1,159 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md +- **Milestone:** 1 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** All by takahser + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
| [GPLv3](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/license) | - | +| 0b. | Documentation |
  • [ ]
| [README](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/readme.md), [docs](https://github.com/Zeeve-App/larch/tree/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs), [web docs instructions](https://github.com/Zeeve-App/larch/blob/main/docs/development/index.md), [about page](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/packages/ui/src/pages/documentation/page.tsx) | See [documentation feedback](#documentation-feedback). | +| 0c. | Testing Guide |
  • [ ]
| [v1.0.0 release](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | See [Testing Guide Feedback](#testing-guide-feedback) | +| 0d. | Standalone Executable |
  • [x]
| [v1.0.0 release binaries](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | Binary for linux x64 platform and source code archives. | +| 1. | Initial Automation |
  • [ ]
| (will be tested when 0b., 0c. are fixed) | Spec: We will build the core GUI driven automation to create and deploy the substrate based Zombie-net configurations including relaychain and parachain configurations. | +| 2. | Configuration |
  • [ ]
| (will be tested when 0b., 0c. are fixed) | Spec: Parachain configuration is critical and complicated, we will provide the GUI based pick and choose for genesis parameters and chain configs to start with parachain setup for the desired Zombie-net | +| 3. | Node type support |
  • [ ]
| (will be tested when 0b., 0c. are fixed) | Spec: Implement setup of all node types including Full node, Validator node and Collator node for the respective relay chain and parachain within the configured Zombie-net. | +| 4. | Cloud agnostic setup |
  • [ ]
| (will be tested when 0b., 0c. are fixed) | Spec: The larch setup will be cloud agnostic and it can be installed on the choice of cloud, instructions and documentation will be provided for the same. | +| 5. | Network Management |
  • [ ]
| (will be tested when 0b., 0c. are fixed) | Spec: Implement the larch tool with a user-friendly interface, features for execution info, network deletion, template cloning, and management, along with robust error handling, for seamless setup of networks and templates. | + +Ideally all links inside the above table should include the commit hash, +which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. + +## General Notes + +Summarizes the overall performance plus additional feedback/comments + +### Documentation feedback + +- [ ] It would be nice if there was a way to navigate the docs more easily. For example, you could add an *index.md* file to each directory and add links (and some useful content) to each of them. Some basic info about the project can be found on the web ui when running the code after buildiug it. + +- [ ] I didn't identify any npm task called `prepare` as indicated in your [development index.md docs](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs/development/index.md). + +- [ ] I didn't identify any "basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing" as promised in the [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L170): + + > We will provide both inline documentation of the code and a basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing, which will show how the new functionality works. + + +- [ ] There is currently 1 critical npm vulnerability: + + ```bash + larch % npm i + + npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs + npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs + + added 1389 packages, and audited 1393 packages in 15s + + 196 packages are looking for funding + run `npm fund` for details + + 1 high severity vulnerability + + To address all issues, run: + npm audit fix + + Run `npm audit` for details. + ``` + +- [x] build passes: + + ```bash + larch % npm run build + + + > build + > ASSET_URL='/ui' lerna run build && cp -r packages/ui/dist packages/backend/dist/ui + + lerna notice cli v6.6.1 + + ✔ larch-backend:build (2s) + ✔ larch-cli:build (1s) + ✔ larch-ui:build (7s) + + ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + + > Lerna (powered by Nx) Successfully ran target build for 3 projects (7s) + ``` + +- [x] built code can be run successfully: + + ```bash + % npm run start + + + > start + > cd packages/cli && npm run start + + + > larch-cli@1.0.0 start + > node dist/index.js + + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + Welcome to Larch + Executing DB migrations + Done executing DB migrations + ui enabled + api enabled + app is listening on port 9000 + ``` + +### Testing Guide Feedback + +- [ ] I didn't identify any testing guide. See [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L171): + + > Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. + +- [x] backend tests pass: + + ```bash + backend % npm run test + + > larch-backend@1.0.0 test + > vitest + + + DEV v0.30.1 /Users/xxx/repos/larch/packages/backend + + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 16684992, Percent downloaded: 8.91 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 41058304, Percent downloaded: 21.92 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 64634816, Percent downloaded: 34.50 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 90767360, Percent downloaded: 48.45 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 108969984, Percent downloaded: 58.16 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 127959040, Percent downloaded: 68.30 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 147603456, Percent downloaded: 78.78 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 163921920, Percent downloaded: 87.49 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 183711104, Percent downloaded: 98.06 + + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 187351204, Percent downloaded: 100.00 + + ✓ __tests__/utils.test.ts (4) 5097ms + ✓ __tests__/module.providers.test.ts (2) + + Test Files 2 passed (2) + Tests 6 passed (6) + Start at 17:30:08 + Duration 5.36s (transform 110ms, setup 0ms, collect 257ms, tests 5.10s, environment 0ms, prepare 127ms) + ``` \ No newline at end of file From 23deea4c5a0274f255b6ac0d05b20eb9c1df91f6 Mon Sep 17 00:00:00 2001 From: S E R A Y A Date: Tue, 13 Jun 2023 17:42:02 +0200 Subject: [PATCH 131/253] Update larch m1 eval --- evaluations/larch_1_takahser.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/evaluations/larch_1_takahser.md b/evaluations/larch_1_takahser.md index ef4a723f6..b586753d0 100644 --- a/evaluations/larch_1_takahser.md +++ b/evaluations/larch_1_takahser.md @@ -27,7 +27,9 @@ Summarizes the overall performance plus additional feedback/comments ### Documentation feedback -- [ ] It would be nice if there was a way to navigate the docs more easily. For example, you could add an *index.md* file to each directory and add links (and some useful content) to each of them. Some basic info about the project can be found on the web ui when running the code after buildiug it. +- [ ] It would be nice if there was a way to navigate the docs more easily. For example, you could add an *index.md* file to each directory and add links (and some useful content) to each of them. + +- [ ] Some basic info about the project can be found on the web ui when running the code after buildiug it. However, they're not very well written. - [ ] I didn't identify any npm task called `prepare` as indicated in your [development index.md docs](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs/development/index.md). @@ -156,4 +158,4 @@ Summarizes the overall performance plus additional feedback/comments Tests 6 passed (6) Start at 17:30:08 Duration 5.36s (transform 110ms, setup 0ms, collect 257ms, tests 5.10s, environment 0ms, prepare 127ms) - ``` \ No newline at end of file + ``` From 2e134dcbe7d690a49348d2f309d801462780d1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 13 Jun 2023 18:18:52 +0200 Subject: [PATCH 132/253] Approve OpenRollup M1 --- evaluations/open-rollup_1_semuelle.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/evaluations/open-rollup_1_semuelle.md b/evaluations/open-rollup_1_semuelle.md index 488ff06ea..2e32a203b 100755 --- a/evaluations/open-rollup_1_semuelle.md +++ b/evaluations/open-rollup_1_semuelle.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/openrollup-mvp-phase-1.md - **Milestone:** 1 - **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) @@ -9,14 +9,14 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | :------: | ---- |----------------- | | 0a. | License |
  • [x]
| [LICENSE](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/LICENSE) | Apache 2.0 | -| 0b. | Documentation |
  • [ ]
| [README](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md) | — | -| 0c. | Testing Guide |
  • [x]
| [README](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md) | Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | -| 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/Dockerfile) | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | -| 0e. | Article |
  • [ ]
| [open-rollup/blog](https://github.com/open-rollup/blog/blob/592c8628a6b6850248046827da976f4c7729f233/pallet-publish.md) | Very short, basic description only published on Github | +| 0b. | Documentation |
  • [x]
| [README](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md), [example](https://github.com/open-rollup/fib-miden-example/tree/72528632f1cf45ccfcd6843fb59ff04dde9786e7) | — | +| 0c. | Testing Guide |
  • [x]
| [miden example](https://github.com/open-rollup/fib-miden-example/tree/72528632f1cf45ccfcd6843fb59ff04dde9786e7), [pallet readme](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/README.md) | Nearly complete coverage on pallet. Miden example provided on request | +| 0d. | Docker |
  • [x]
| [Dockerfile](https://github.com/open-rollup/pallet-open-rollup/blob/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/Dockerfile) | — | +| 0e. | Article |
  • [x]
| [open-rollup/blog](https://github.com/open-rollup/blog/blob/592c8628a6b6850248046827da976f4c7729f233/pallet-publish.md) | Very short, basic description only published on Github | | 1. | Open rollup Pallet |
  • [x]
| [open-rollup/pallet-open-rollup](https://github.com/open-rollup/pallet-open-rollup/tree/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c) | — -| 2. | Miden verifier in Open rollup Pallet |
  • [x]
| [src/verifier](https://github.com/open-rollup/pallet-open-rollup/tree/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/src/verifier) | We provide the verifier trait suitable for general apps, and a miden verifier that implements the verifier trait. | +| 2. | Miden verifier in Open rollup Pallet |
  • [x]
| [src/verifier](https://github.com/open-rollup/pallet-open-rollup/tree/f59ae4b0e78e23098e792c609a6d3c4e127b4c9c/src/verifier) | — | ## General Notes -- — +Functionality can be tested easily with [example provided](https://github.com/open-rollup/fib-miden-example). Minor issues were fixed quickly. From aed07851eefba1c4b8020a5d8c399d459c146254 Mon Sep 17 00:00:00 2001 From: Chris00 <91449322+chrisicen@users.noreply.github.com> Date: Wed, 14 Jun 2023 00:22:41 +0800 Subject: [PATCH 133/253] Add openrollup-mvp-phase-1-milestone-1 delivery. (#843) --- .../openrollup-mvp-phase-1-milestone-1.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 deliveries/openrollup-mvp-phase-1-milestone-1.md diff --git a/deliveries/openrollup-mvp-phase-1-milestone-1.md b/deliveries/openrollup-mvp-phase-1-milestone-1.md new file mode 100644 index 000000000..5cf832196 --- /dev/null +++ b/deliveries/openrollup-mvp-phase-1-milestone-1.md @@ -0,0 +1,34 @@ +# 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:** [Open rollup - MVP - Phase 1](https://github.com/w3f/Grants-Program/blob/master/applications/openrollup-mvp-phase-1.md) +* **Milestone Number:** 1 + +**Context** + +Open rollup pallet provides a general zk-rollup framework for all substrate-based blockchains. The milestone completes the Pallet of the Substrate. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [LICENSE] | Apache 2.0 | +| 0b. | Documentation | [README] | The README introduces the repository and its functionality. The source code is documented. | +| 0c. | Testing Guide | [README] | The README describes how to test the game client. | +| 0d. | Docker | [Node:Dockerfile] | The Dockerfile can be used to run test. | +| 0e. | Article | [Node:pallet-publish.md] | The article explains what was done. | +| 1. | Open rollup Pallet | [Node:Github] | We have implemented the core data types and the functions of Open rollup pallet. | +| 2. | Miden verifier in Open rollup Pallet | [Node:VerifierMod] [Node:VerifierMiden]| We have implemented the verifier trait, and a miden verifier. | + +[License]: https://github.com/open-rollup/pallet-open-rollup/blob/w3f-grant-phase-1-milestone-1/LICENSE +[README]: https://github.com/open-rollup/pallet-open-rollup/blob/w3f-grant-phase-1-milestone-1/README.md +[Node:Dockerfile]: https://github.com/open-rollup/pallet-open-rollup/blob/w3f-grant-phase-1-milestone-1/Dockerfile +[Node:pallet-publish.md]: https://github.com/open-rollup/blog/blob/main/pallet-publish.md +[Node:Github]: https://github.com/open-rollup/pallet-open-rollup/tree/w3f-grant-phase-1-milestone-1 +[Node:VerifierMod]: https://github.com/open-rollup/pallet-open-rollup/blob/w3f-grant-phase-1-milestone-1/src/verifier/mod.rs +[Node:VerifierMiden]: https://github.com/open-rollup/pallet-open-rollup/blob/w3f-grant-phase-1-milestone-1/src/verifier/miden_verifier.rs + +**Additional Information** + +It is still very difficult to develop a practical [Miden-vm](https://github.com/0xPolygonMiden/miden-vm) program, and we will continue to study the development of zkvm in the future. From c9330ace6cc6226b0a2b414c65b7387bfe87b34c Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 13 Jun 2023 17:10:40 -0300 Subject: [PATCH 134/253] Update ismp_1_dsm-w3f.md --- evaluations/ismp_1_dsm-w3f.md | 45 +++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/evaluations/ismp_1_dsm-w3f.md b/evaluations/ismp_1_dsm-w3f.md index 0fe3335be..36d3de042 100644 --- a/evaluations/ismp_1_dsm-w3f.md +++ b/evaluations/ismp_1_dsm-w3f.md @@ -9,8 +9,8 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
|[https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE](https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE)| | -| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| Would be nice to have instructions to install without docker | -| 0c. | Testing and Testing Guide |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Low testing coverage | +| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| Not fully evaluated yet | +| 0c. | Testing and Testing Guide |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Not fully evaluated yet | | 0d. | Docker |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs#run-test-in-docker](https://github.com/polytope-labs/ismp-rs#run-test-in-docker)| Not fully evaluated yet | | 0e. | Article |
  • [ ]
| TBA | Need to be delivered | | 0f. | ISMP Specification |
  • [ ]
|[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| Not fully evaluated yet | @@ -28,6 +28,47 @@ | | `ResponseMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs)| Not fully evaluated yet | | | `TimeoutMessage` |
  • [ ]
|[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs)| Not fully evaluated yet | +## Evaluation V2 + +### Documentation + +It was add the instructions to run without docker. + +### Testing + +The tests returned better coverage. It is possible to improve even more but it isn't mandatory. + +``` +running 5 tests +test tests::should_reject_expired_check_clients ... ok +test tests::should_reject_updates_within_challenge_period ... ok +test tests::should_reject_messages_for_frozen_state_machines ... ok +test tests::dispatcher_should_write_receipts_for_outgoing_requests_and_responses ... ok +test tests::should_process_timeouts_correctly ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + +Jun 13 07:15:27.209 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| ismp/src/consensus.rs: 2/2 +|| ismp/src/handlers/consensus.rs: 12/51 +|| ismp/src/handlers/request.rs: 3/30 +|| ismp/src/handlers/response.rs: 3/61 +|| ismp/src/handlers/timeout.rs: 27/73 +|| ismp/src/handlers.rs: 21/23 +|| ismp/src/host.rs: 10/32 +|| ismp/src/messaging.rs: 3/25 +|| ismp/src/router.rs: 19/65 +|| ismp/src/util.rs: 33/49 +|| ismp-testsuite/src/lib.rs: 128/134 +|| ismp-testsuite/src/mocks.rs: 87/132 +|| +51.40% coverage, 348/677 lines covered +``` + +I will use Milestone 2 deliverables to verify the proper behavior of the Milestone 1 deliverables. + ## Evaluation V1 ### Documentation From f3cd8f591601b2beaf17c787e62b81a157ea8575 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 13 Jun 2023 17:11:49 -0300 Subject: [PATCH 135/253] Update ismp_2_dsm-w3f.md --- evaluations/ismp_2_dsm-w3f.md | 52 ++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/evaluations/ismp_2_dsm-w3f.md b/evaluations/ismp_2_dsm-w3f.md index 5cee5508c..40e78e002 100644 --- a/evaluations/ismp_2_dsm-w3f.md +++ b/evaluations/ismp_2_dsm-w3f.md @@ -9,7 +9,7 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE](https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE)| | -| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| Would be nice to have instructions to run without docker | +| 0b. | Documentation |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| | | 0c. | Testing and Testing Guide |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| Need a manual testing guide | | 0d. | Docker |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp#run-test-in-docker](https://github.com/polytope-labs/substrate-ismp#run-test-in-docker)| Not fully evaluated yet | | 0e. | Article|
  • [ ]
| TBA | Not a deliverable for this milestone | @@ -21,6 +21,56 @@ | 1e. | Runtime-APIs |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| Not fully evaluated yet | | 1f. | Bechmarks |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| Not fully evaluated yet | +## Evaluation V2 + +### Documentation + +It was add the instructions to run without docker and also a demo. However, it is missing the instructions to run the demo. Please, provide instructions to run the demo with examples including inputs and expected outputs to demonstrate the behavior of the software. + +### Testing + +The tests returned better coverage. It is possible to improve even more but it isn't mandatory. + +``` +running 12 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::should_reject_expired_check_clients ... ok +test tests::should_reject_updates_within_challenge_period ... ok +test tests::should_reject_messages_for_frozen_state_machines ... ok +test tests::should_handle_post_request_timeouts_correctly ... ok +test tests::should_handle_get_request_timeouts_correctly ... ok +test tests::dispatcher_should_write_receipts_for_outgoing_requests_and_responses ... ok +test tests::should_handle_get_request_responses_correctly ... ok +test tests::should_generate_and_verify_batch_proof_correctly ... ok +test tests::should_generate_proofs_correctly_for_single_leaf_mmr ... ok +test tests::should_generate_and_verify_batch_proof_for_leaves_inserted_across_multiple_blocks_correctly ... ok +test benchmarking::benchmarks::benchmark_tests::test_benchmarks ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s + +Jun 13 09:36:17.846 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| ismp-demo/src/lib.rs: 0/80 +|| pallet-ismp/primitives/src/mmr.rs: 12/18 +|| pallet-ismp/rpc/src/lib.rs: 0/88 +|| pallet-ismp/src/benchmarking.rs: 78/99 +|| pallet-ismp/src/dispatcher.rs: 38/49 +|| pallet-ismp/src/errors.rs: 0/29 +|| pallet-ismp/src/events.rs: 0/11 +|| pallet-ismp/src/handlers.rs: 0/28 +|| pallet-ismp/src/host.rs: 80/89 +|| pallet-ismp/src/lib.rs: 85/166 +|| pallet-ismp/src/mmr/mmr.rs: 26/28 +|| pallet-ismp/src/mmr/storage.rs: 46/57 +|| pallet-ismp/src/mmr/utils.rs: 7/7 +|| pallet-ismp/src/weight_info.rs: 0/135 +|| parachain/inherent/src/lib.rs: 0/17 +|| parachain/src/consensus.rs: 0/140 +|| parachain/src/lib.rs: 0/50 +|| +34.10% coverage, 372/1091 lines covered +``` + ## Evaluation V1 ### Documentation From 905694a988678e7d311119a013749a43c7879104 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 13 Jun 2023 18:03:07 -0300 Subject: [PATCH 136/253] Update aurras_phase_2_2_dsm-w3f.md --- evaluations/aurras_phase_2_2_dsm-w3f.md | 147 +++++++++++++++++++++++- 1 file changed, 145 insertions(+), 2 deletions(-) diff --git a/evaluations/aurras_phase_2_2_dsm-w3f.md b/evaluations/aurras_phase_2_2_dsm-w3f.md index f2268d32a..ede2347f5 100644 --- a/evaluations/aurras_phase_2_2_dsm-w3f.md +++ b/evaluations/aurras_phase_2_2_dsm-w3f.md @@ -11,9 +11,152 @@ | 0a. | License |
  • [x]
| https://github.com/HugoByte/aurras/blob/master/LICENSE | | | 0b. | Documentation |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | Need better instructions how to run and how to test. | | 0c. | Testing Guide |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | Need better instructions how to run and how to test. | -| 0d. | Docker File |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | Need better instructions how to run and how to test. | +| 0d. | Docker File |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | | | 1a. | Workflow Composer: Flow Macro |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | Not fully evaluated yet | -| 1b. | staking and payout features for scs/substrate-api-client |
  • [ ]
| https://github.com/scs/substrate-api-client/pull/294 | Not fully evaluated yet | +| 1b. | staking and payout features for scs/substrate-api-client |
  • [x]
| https://github.com/scs/substrate-api-client/pull/294 | | + +## Evaluation V3 + +### Docker + +This time, I got no errors creating the .wasm using Docker. + +``` +user@localhost:~/Documents/aurras/aurras/workflow/composer$ cat ../examples/PolkadotPayout.yaml | docker run -i --rm hugobyte/workflow-composer generate > output.wasm +go: downloading github.com/spf13/cobra v1.6.1 +go: downloading github.com/spf13/pflag v1.0.5 +info: component 'rust-std' for target 'wasm32-wasi' is up to date +user@localhost:~/Documents/aurras/aurras/workflow/composer$ +``` + +### Flow Macro + +I ran `cargo test --not-fail-fast`, and two tests failed. I noticed the tests for Workflow Macro are passing. + +``` +user@localhost:~/Documents/aurras/aurras/workflow$ cargo test --no-fail-fast + Finished test [unoptimized + debuginfo] target(s) in 0.28s + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_balance_filter-358e79f9f11d1f75) + +running 4 tests +test tests::invoke_trigger_fail - should panic ... ok +test tests::filter_topics_pass ... ok +test tests::invoke_trigger_pass - should panic ... ok +test tests::filter_address_pass ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s + + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_balance_notification_registration-b6db6ee18c9dcd21) + +running 5 tests +test tests::get_event_sources_invalid_method - should panic ... ok +test tests::get_event_sources_fail_getaddress - should panic ... ok +test tests::get_event_sources_pass - should panic ... ok +test tests::get_event_sources_fail ... ok +test tests::add_address_pass ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.32s + + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_event_receiver-c06d10c7016d288b) + +running 2 tests +test tests::parse_event_fail - should panic ... ok +test tests::parse_event_pass ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_event_registration-8c5ff9b017dc1b01) + +running 1 test +test tests::register_source_pass ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.48s + + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_push_notification-e704de5e5db4d7ff) + +running 3 tests +test tests::send_notification_pass_main ... FAILED +test tests::send_notification_pass ... FAILED +test tests::send_notification_fail_main - should panic ... ok + +failures: + +---- tests::send_notification_pass_main stdout ---- +thread 'tests::send_notification_pass_main' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', actions/push-notification/src/lib.rs:102:53 + +---- tests::send_notification_pass stdout ---- +thread 'tests::send_notification_pass' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', actions/push-notification/src/lib.rs:75:51 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + + +failures: + tests::send_notification_pass + tests::send_notification_pass_main + +test result: FAILED. 1 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s + +error: test failed, to rerun pass `-p action-push-notification --lib` + Running unittests src/lib.rs (/home/user/Documents/aurras/aurras/target/debug/deps/action_substrate_event_processor-ffb9dc955e8c208b) + +running 5 tests +test tests::parse_event_data_pass ... ok +test tests::parse_staking_event_data_pass ... ok +test tests::parse_staking_event_data_fail_invalid_category - should panic ... ok +test tests::parse_staking_event_data_method_exception - should panic ... ok +test tests::parse_event_data_fail - should panic ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (/home/user/Documents/aurras/aurras/target/debug/deps/test_util-da42c0ad9c2836a3) + +running 6 tests +test tests::flow_macro_tests::test_macro ... ok +test tests::flow_macro_tests::test_flow_macro_add_node ... ok +test wasi_http::test_allowed_domains ... ok +test tests::test_car_market_place ... ok +test tests::test_map_operator ... ok +test tests::test_employee_salary_with_concat_operator ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.16s + +error: 1 target failed: + `-p action-push-notification --lib` +``` + +Could you provide a way for using the Workflow Macro that doesn't need any programming skill, with instructions on how to run it to check the functionality of the Workflow Macro? + +### Staking and Payout Features for scs/substrate-api-client + +I noticed you added a note explaining this Derivable and saying to run `cargo test --features staking-xt`, and all tests passed. + +``` +user@localhost:~/Documents/substrate-api-client$ cargo test --features staking-xt + Finished test [unoptimized + debuginfo] target(s) in 0.54s + Running unittests src/lib.rs (target/debug/deps/substrate_api_client-d6ec907760ee1c09) + +running 12 tests +test api::tests::test_xt_status_as_u8 ... ok +test api::tests::test_reached_xt_status_for_broadcast ... ok +test api::rpc_api::events::tests::filter_extrinsic_events_works ... ok +test api::rpc_api::events::tests::fetch_events_from_block_works ... ok +test api::tests::test_reached_xt_status_for_finalized ... ok +test api::tests::test_reached_xt_status_for_in_block ... ok +test api::tests::test_transaction_status_is_expected ... ok +test api::tests::test_transaction_status_as_u8 ... ok +test api::tests::test_reached_xt_status_for_ready ... ok +test api::rpc_api::events::tests::retrieve_extrinsic_index_from_block_works ... ok +test api::api_client::tests::api_extrinsic_params_works ... ok +test api::api_client::tests::api_runtime_update_works ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s + + Doc-tests substrate-api-client + +running 1 test +test src/api/api_client.rs - api::api_client::Api (line 35) - compile ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s +``` ## Evaluation V2 From 222e9d2506f2e531d7354e40f67ef3da3a92d164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 14 Jun 2023 22:50:20 +0200 Subject: [PATCH 137/253] ZeroPool M1 updated --- ...an.md => zeropool_1_mmagician-semuelle.md} | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) rename evaluations/{zeropool_1_mmagician.md => zeropool_1_mmagician-semuelle.md} (51%) diff --git a/evaluations/zeropool_1_mmagician.md b/evaluations/zeropool_1_mmagician-semuelle.md similarity index 51% rename from evaluations/zeropool_1_mmagician.md rename to evaluations/zeropool_1_mmagician-semuelle.md index 9338fe348..c55876f6f 100644 --- a/evaluations/zeropool_1_mmagician.md +++ b/evaluations/zeropool_1_mmagician-semuelle.md @@ -1,20 +1,26 @@ # Evaluation -* **Status:** In progress -* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md -* **Milestone:** 1 -* **Kusama Identity:** [H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85](https://polkascan.io/pre/kusama/account/H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85) -* **Previously successfully merged evaluation:** All by mmagician +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md +- **Milestone:** 1 +- **Kusama Identity:** [H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85](https://polkascan.io/pre/kusama/account/H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85) +- **Previously successfully merged evaluation:** All by mmagician | Number | Deliverable | Accepted | Link | Notes | | ------ | ----------- | ---- |----------------- | --------- | | 0a. | License |
  • [x]
| [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT), [LICENSE](https://github.com/zeropoolnetwork/libzeropool/blob/beae8527536bd03a22e4d110de10079d096f9b55/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT) | - | -| 0b. | Documentation |
  • [ ]
| [docs.rs](https://docs.rs/libzeropool/0.5.2/libzeropool/), [docs.rs](https://docs.rs/fawkes-crypto/4.3.0/fawkes_crypto/), [README](https://github.com/zeropoolnetwork/libzeropool/blob/beae8527536bd03a22e4d110de10079d096f9b55/README.md) [README](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/README.md) | Documentation is incomplete. | -| 0c. | Testing Guide |
  • [ ]
|[fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto), [libzeropool](https://github.com/zeropoolnetwork/libzeropool)| | +| 0b. | Documentation |
  • [x]
| [docs.rs](https://docs.rs/libzeropool/0.5.6/libzeropool/index.html), [docs.rs](https://docs.rs/fawkes-crypto/4.4.0/fawkes_crypto/index.html), [README](https://github.com/zeropoolnetwork/libzeropool/blob/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1/README.md) [README](https://github.com/zeropoolnetwork/fawkes-crypto/blob/5149f041ab7fa9b037cf104c8360360da66db427/README.md), [zeropool.network](https://zeropool.network/docs/implementation/contracts-and-circuits/substrate/) | Some docs added on request. | +| 0c. | Testing Guide |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md#run-the-full-test-environment), [zeropoolnetwork/fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto/tree/5149f041ab7fa9b037cf104c8360360da66db427/fawkes-crypto/tests), [zeropoolnetwork/libzeropool](https://github.com/zeropoolnetwork/libzeropool/tree/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1/tests)| | | 0d. | Article/Tutorial |
  • [ ]
| | No tutorial | -| 1. | zkSNARK circuit and cryptography library |
  • [ ]
| [fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto), [libzeropool](https://github.com/zeropoolnetwork/libzeropool) | Difficult to evaluate without any docs explaining what is what. | +| 1. | zkSNARK circuit and cryptography library |
  • [x]
| [fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto/tree/5149f041ab7fa9b037cf104c8360360da66db427), [libzeropool](https://github.com/zeropoolnetwork/libzeropool/tree/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1) | — | -### General notes +## General notes + +### Evaluation 04.07.2022 + +Tests are working. Some documentation added, article still missing. + +### Evaluation 04.07.2022 The documentation published to docs.rs have almost no doc comments, and thus are difficult to navigate. READMEs contain some selective information only but are equally unhelpful in understanding the project structure. From 93f5bdf0605f607be4442b9175a6ef3b5a522713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 14 Jun 2023 23:18:22 +0200 Subject: [PATCH 138/253] ZeroPool M2 started --- evaluations/zeropool_2_semuelle.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 evaluations/zeropool_2_semuelle.md diff --git a/evaluations/zeropool_2_semuelle.md b/evaluations/zeropool_2_semuelle.md new file mode 100755 index 000000000..3dbf5ef1d --- /dev/null +++ b/evaluations/zeropool_2_semuelle.md @@ -0,0 +1,22 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md +- **Milestone:** 2 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 0a. | License |
  • [x]
| [Apache](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/LICENSE-APACHE), [MIT](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/LICENSE-MIT) | zeropool-substrate under Apache 2.0 and MIT | +| 0b. | Documentation |
  • [x]
| [README](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md), [pallets/pallet-zeropool](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/pallets/pallet-zeropool/README.md) | Pallet docs minimal | +| 0c. | Testing Guide |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md#run-the-full-test-environment) | — | +| 0d. | Article/Tutorial |
  • [ ]
| link | We will write an article or tutorial that explains the work done as part of the grant. +| 1. | Substrate module: private transactions |
  • [x]
| [pallets/pallet-zeropool](https://github.com/zeropoolnetwork/zeropool-substrate/tree/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/pallets/pallet-zeropool) | — | +| 2. | Wallet library: |
  • [x]
| [zeropoolnetwork/zeropool-client-js](https://github.com/zeropoolnetwork/zeropool-client-js/tree/6ad5c9df144af5c2280aa4ab3e25fcd8ae4bbf73), [zeropoolnetwork/zeropool-support-js](https://github.com/zeropoolnetwork/zeropool-support-js/tree/f6b8a92e9ce9ea065caeb83186a1b3afdbcb731e) | — | +| 3. | Docker |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/docker-compose.full.yml) | Also on DockerHub [here](https://hub.docker.com/r/voidxnull/zeropool-relayer-polkadot) and [here](https://hub.docker.com/r/voidxnull/zeropool-substrate-node) | + + +## General Notes + +Demo video [here](https://www.youtube.com/watch?v=DQ8gbNTOP-g). From da10888f96a4be244234af5ea06f9991fdd20a04 Mon Sep 17 00:00:00 2001 From: "Thang X. Vu" Date: Thu, 15 Jun 2023 16:44:34 +0700 Subject: [PATCH 139/253] Create CoongWallet-Milestone_2.md --- deliveries/CoongWallet-Milestone_2.md | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 deliveries/CoongWallet-Milestone_2.md diff --git a/deliveries/CoongWallet-Milestone_2.md b/deliveries/CoongWallet-Milestone_2.md new file mode 100644 index 000000000..899f0f5b3 --- /dev/null +++ b/deliveries/CoongWallet-Milestone_2.md @@ -0,0 +1,37 @@ +# 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:** [Coong Wallet](https://github.com/w3f/Grants-Program/blob/master/applications/coong_wallet.md) +* **Milestone Number:** 2 + +**Deliverables** +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------------- | +| **0a.** | License | [Apache 2.0](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/LICENSE) | +| **0b.** | Documentation | - [README](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md)
- [Live Demo](https://app.coongwallet.io/)
- [Example Dapp](https://dapp.coongwallet.io) to demonstrate interactions
- [Integration instruction](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md#integrate-coong-wallet-into-your-dapps) | | +| **0c.** | Testing and Testing Guide | [How to run tests](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2#how-to-run-tests) | +| **0d.** | Docker | - [Dockerfile](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/Dockerfile)
- [How to run the app on Docker](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md#run-it-on-docker) | +| 0e. | Article | [Link](https://docs.google.com/document/d/1nZUzetDZvLReof3easrRvR5HQSpjags-XShYj55gJEo/edit?usp=sharing) | We'll publish this article after the milestone is accepted | +| 1. | Wallet App / Additional features | We've implemented the following features for the wallet app:
- [Sign raw message](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/pages/Request/RequestSigning/RequestSignRawMessage.tsx)
- [Import existing wallet](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2/packages/ui/src/components/pages/SetupWallet/RestoreWallet)
- [Forget wallet password / Reset wallet](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/buttons/ForgotPasswordButton.tsx)
- [Account controls](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2/packages/ui/src/components/pages/Accounts/AccountControls)
- [Export wallet](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/menu/ExportWalletDialog.tsx)
- [Import account from QR Code, JSON file](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/menu/ImportAccountDialog/index.tsx)
- [Manage Dapps Access](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/settings/ManageDappAccessDialog/index.tsx)
- [Settings](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/settings/SettingsWalletDialog/index.tsx)
| +| 2. | Demo Dapp | - [Source Code](https://github.com/CoongCrafts/playground-dapp)
- https://dapp.coongwallet.io | 🚀 Don't forget to try out the dapp on your mobile/tablet browsers to see the advantage of CoongWallet over extension-based wallets 😃 | + +**Additional Information** +- Known issues mentioned in [Milestone 1](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-1#known-issues) + - `Blocking third party cookie issue`: + - Requiring users to disable the "Block third-party cookies" setting in their browser would make the website-based wallet experience (UX, API) similar to extension-based wallets. But this approach poses certain tradeoffs. + + Firstly, it violates users' privacy as they likely might not want to disable this setting and be tracked by social media platforms and other services. + + Secondly, each browser (both on mobile and desktop) has its own unique method of enabling or disabling this setting. Consequently, providing custom instructions for each browser would complicate the user experience and onboarding process for new users. As our purpose is to create a more user-friendly onboarding experience, we strive to avoid complex instructions during this process. + - Therefore, we have decided to take a different approach to address this issue. + + We will no longer initiate or append an embedded iframe of the wallet within the dapp, eliminating the need to deal with the "Block third-party cookies" issue. + + Instead, we will utilize first-party localStorage (dapp's localStorage) to store granted information (connected accounts). Additionally, we will introduce extra APIs to (1) allow users to add or remove (update) their granted information within the dapp and (2) clear granted information when users want to sign out of the dapp. This alternative approach requires some additional handling for developers during the integration of Coong Wallet into the dapp. However, for users, they will no longer need to toggle browser settings, resulting in a seamless onboarding experience. + - `Blocking popups issue` when calling API that opens a Coong Wallet window/popup (asking for user's consent, signing transaction) + - This issue might happen for actions that are running asynchronously or take a bit of time to complete. + - To prevent this from happening, we introduce an API that allows developers to open a waiting wallet window/popup (`CoongSdk.newWaitingWalletInstance()`) ready to send messages to later, so developers can call this API first thing on users interaction (click/touch) before calling any asynchronous tasks. + - More on this can be found [here](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2#prevent-blocking-popups-issue) + - Example integration for [transfering balance](https://github.com/CoongCrafts/playground-dapp/blob/a6072c80fe5dfd263c1b4bcbe44423cdda9798b2/src/components/TransferBalanceButton.tsx#L93-L99), [demo dapp](https://dapp.coongwallet.io/) +- As for the `Manage & decode metadata feature` mentioned in [milestone 1 delivery](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/CoongWallet-Milestone_1.md), due to timing constraints as we're changing approach to solve the known issues mentioned above, we don't have any extra time left to address this. So we decided to working on this in the future outside the scope of this grant. +- As for the `Import account from Private Key`: This feature was mentioned in the proposal but make more senses to implement when we have support for EVM accounts to allow users transfering account using Private Key exported from MetaMask. So we decided to put this on hold until we implement EVM accounts support for the wallet. Let us know if we need to make an amendment PR to remove this from the proposal. +- Demo videos + - Dapp x Wallet Interaction on Desktop: https://youtu.be/9fIcAlpx_UI + - Dapp x Wallet Interaction on Mobile: https://youtu.be/F8S2fmQFRWQ From ce841d2dec75ba216583ccfb89825b2f6e753f9c Mon Sep 17 00:00:00 2001 From: "Thang X. Vu" Date: Thu, 15 Jun 2023 16:51:28 +0700 Subject: [PATCH 140/253] Update CoongWallet-Milestone_2.md --- deliveries/CoongWallet-Milestone_2.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deliveries/CoongWallet-Milestone_2.md b/deliveries/CoongWallet-Milestone_2.md index 899f0f5b3..07d29205f 100644 --- a/deliveries/CoongWallet-Milestone_2.md +++ b/deliveries/CoongWallet-Milestone_2.md @@ -9,16 +9,16 @@ | Number | Deliverable | Link | Notes | | -----: | ----------- | ------------- | ------------- | | **0a.** | License | [Apache 2.0](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/LICENSE) | -| **0b.** | Documentation | - [README](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md)
- [Live Demo](https://app.coongwallet.io/)
- [Example Dapp](https://dapp.coongwallet.io) to demonstrate interactions
- [Integration instruction](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md#integrate-coong-wallet-into-your-dapps) | | +| **0b.** | Documentation | - [README](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md)
- [Live Working Application](https://app.coongwallet.io/)
- [Example Dapp](https://dapp.coongwallet.io) to demonstrate interactions
- [Integration instruction](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md#integrate-coong-wallet-into-your-dapps) | | | **0c.** | Testing and Testing Guide | [How to run tests](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2#how-to-run-tests) | | **0d.** | Docker | - [Dockerfile](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/Dockerfile)
- [How to run the app on Docker](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md#run-it-on-docker) | -| 0e. | Article | [Link](https://docs.google.com/document/d/1nZUzetDZvLReof3easrRvR5HQSpjags-XShYj55gJEo/edit?usp=sharing) | We'll publish this article after the milestone is accepted | +| 0e. | Article | [Link](https://docs.google.com/document/d/1nZUzetDZvLReof3easrRvR5HQSpjags-XShYj55gJEo/edit?usp=sharing) | We are still polishing the content and will publish this article after the milestone is accepted | | 1. | Wallet App / Additional features | We've implemented the following features for the wallet app:
- [Sign raw message](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/pages/Request/RequestSigning/RequestSignRawMessage.tsx)
- [Import existing wallet](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2/packages/ui/src/components/pages/SetupWallet/RestoreWallet)
- [Forget wallet password / Reset wallet](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/buttons/ForgotPasswordButton.tsx)
- [Account controls](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2/packages/ui/src/components/pages/Accounts/AccountControls)
- [Export wallet](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/menu/ExportWalletDialog.tsx)
- [Import account from QR Code, JSON file](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/menu/ImportAccountDialog/index.tsx)
- [Manage Dapps Access](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/settings/ManageDappAccessDialog/index.tsx)
- [Settings](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/packages/ui/src/components/shared/settings/SettingsWalletDialog/index.tsx)
| | 2. | Demo Dapp | - [Source Code](https://github.com/CoongCrafts/playground-dapp)
- https://dapp.coongwallet.io | 🚀 Don't forget to try out the dapp on your mobile/tablet browsers to see the advantage of CoongWallet over extension-based wallets 😃 | **Additional Information** - Known issues mentioned in [Milestone 1](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-1#known-issues) - - `Blocking third party cookie issue`: + - `Blocking third party cookies issue`: - Requiring users to disable the "Block third-party cookies" setting in their browser would make the website-based wallet experience (UX, API) similar to extension-based wallets. But this approach poses certain tradeoffs. + Firstly, it violates users' privacy as they likely might not want to disable this setting and be tracked by social media platforms and other services. + Secondly, each browser (both on mobile and desktop) has its own unique method of enabling or disabling this setting. Consequently, providing custom instructions for each browser would complicate the user experience and onboarding process for new users. As our purpose is to create a more user-friendly onboarding experience, we strive to avoid complex instructions during this process. @@ -31,7 +31,7 @@ - More on this can be found [here](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2#prevent-blocking-popups-issue) - Example integration for [transfering balance](https://github.com/CoongCrafts/playground-dapp/blob/a6072c80fe5dfd263c1b4bcbe44423cdda9798b2/src/components/TransferBalanceButton.tsx#L93-L99), [demo dapp](https://dapp.coongwallet.io/) - As for the `Manage & decode metadata feature` mentioned in [milestone 1 delivery](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/CoongWallet-Milestone_1.md), due to timing constraints as we're changing approach to solve the known issues mentioned above, we don't have any extra time left to address this. So we decided to working on this in the future outside the scope of this grant. -- As for the `Import account from Private Key`: This feature was mentioned in the proposal but make more senses to implement when we have support for EVM accounts to allow users transfering account using Private Key exported from MetaMask. So we decided to put this on hold until we implement EVM accounts support for the wallet. Let us know if we need to make an amendment PR to remove this from the proposal. +- As for the `Import account from Private Key`: This feature was mentioned in the proposal but make more senses to implement when we have support for EVM accounts to allow users to transfering account using Private Key exported from MetaMask. So we decided to put this on hold until we implement EVM accounts support for the wallet. Let us know if we need to make an amendment PR to remove this from the proposal. - Demo videos - Dapp x Wallet Interaction on Desktop: https://youtu.be/9fIcAlpx_UI - Dapp x Wallet Interaction on Mobile: https://youtu.be/F8S2fmQFRWQ From 8debce8f12906465501d74bb24321b6e5a7be043 Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Thu, 15 Jun 2023 18:36:22 +0500 Subject: [PATCH 141/253] Hybrid Indexer Evaluation Milestone 2 (#879) --- evaluations/hybrid_2_ali-usama.md | 117 ++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 evaluations/hybrid_2_ali-usama.md diff --git a/evaluations/hybrid_2_ali-usama.md b/evaluations/hybrid_2_ali-usama.md new file mode 100644 index 000000000..9b909b6ec --- /dev/null +++ b/evaluations/hybrid_2_ali-usama.md @@ -0,0 +1,117 @@ +# Evaluation + + +- **Status:** Accepted +- **Application Document:** [hybrid](https://github.com/w3f/Grants-Program/blob/master/applications/hybrid.md). +- **Milestone:** 2 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** All evaluations by `ali-usama` + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|--------------------------------|------------------------|----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| +| 0a. | LICENCE |
  • [x]
| [Apache 2.0](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/LICENSE) | Correct Licence | +| 0b. | Documentation |
  • [x]
| [READMe](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md) | Well-structured & Well-explained docs | +| 0c. | Testing & Testing Guide |
  • [x]
| [Testing Guide](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md#testing-guide) | All tests passed. Output attached below | +| 0d. | Docker |
  • [x]
| [Docker](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md#docker) | Image built and ran successfully. Output attached below | +| 1. | Event subscription API |
  • [x]
| [WebSocket](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/websockets.rs#L415) | Working as expected | +| 2. | Live DApp |
  • [x]
| [IndexerClient](https://github.com/hybrid-explorer/hybrid-dapp/blob/milestone-2/src/lib/IndexerClient.ts#L112) | | +| 3. | Full polkadot Event Indexing |
  • [x]
| [substrate](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L377) | | +| 4. | Variant index |
  • [x]
| [substrate](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L235) | | +| 5. | Increased Decentralization |
  • [x]
| [IndexerClient](https://github.com/hybrid-explorer/hybrid-dapp/blob/milestone-2/src/lib/IndexerClient.ts#L12) | | +| 6. | Asynchronous block downloading |
  • [x]
| [substrate](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L536) | | + + +## General Notes + +The repository is well-structured and well-documented. The functionalities mentioned in the milestone are working fine, however, the only point that needs some attention is the code duplication in the `websocket.rs`. +The test cases are also well-written and cover most of the features delivered in the milestone. +## `cargo test` output +``` +running 45 tests +test tests::test_candidate_hash_key ... ok +test tests::test_account_id_key ... ok +test tests::test_index_event_message_id ... ok +test tests::test_index_event_auction_index ... ok +test tests::test_index_event_candidate_hash ... ok +test tests::test_index_event_era_index ... ok +test tests::test_index_event_account_index ... ok +test tests::test_index_event_para_id ... ok +test tests::test_index_event_account_id ... ok +test tests::test_index_event_bounty_index ... ok +test tests::test_index_event_pool_id ... ok +test tests::test_index_event_ref_index ... ok +test tests::test_index_event_session_index ... ok +test tests::test_index_event_preimage_hash ... ok +test tests::test_index_event_proposal_hash ... ok +test tests::test_index_event_registrar_index ... ok +test tests::test_index_event_proposal_index ... ok +test tests::test_message_id_key ... ok +test tests::test_preimage_hash_key ... ok +test tests::test_index_event_tip_hash ... ok +test tests::test_process_msg_account_id ... ok +test tests::test_index_event_variant ... ok +test tests::test_process_msg_auction_index ... ok +test tests::test_process_msg_account_index ... ok +test tests::test_process_msg_candidate_hash ... ok +test tests::test_process_msg_bounty_index ... ok +test tests::test_process_msg_message_id ... ok +test tests::test_process_msg_pool_id ... ok +test tests::test_process_msg_proposal_hash ... ok +test tests::test_process_msg_preimage_hash ... ok +test tests::test_process_msg_ref_index ... ok +test tests::test_process_msg_proposal_index ... ok +test tests::test_proposal_hash_key ... ok +test tests::test_tip_hash_key ... ok +test tests::test_u32_key ... ok +test tests::test_process_msg_era_index ... ok +test tests::test_process_msg_registrar_index ... ok +test tests::test_variant_key ... ok +test tests::test_process_msg_para_id ... ok +test tests::test_vector_as_u8_32_array ... ok +test tests::test_vector_as_u8_4_array ... ok +test tests::test_process_msg_variant ... ok +test tests::test_process_msg_session_index ... ok +test tests::test_process_msg_tip_hash ... ok +test tests::test_process_msg_status ... ok + +test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s +``` + +## `docker run` output +``` +$ docker run --rm -p 8172:8172 f022848a4bc322252fa95bfe6e0f02d0cd2c06f295838a7ff51ff55e7d1cb1e3 + Finished release [optimized] target(s) in 0.28s + Running `target/release/hybrid-indexer --block-height 15870000` +Opened database. +Connected to Substrate node. +Listening on: 0.0.0.0:8172 +Downloading metadata for spec version 9180 + ✨ #15920452 +Downloading metadata for spec version 9370 +Downloading metadata for spec version 9370 + ✨ #15920453 + ✨ #15920454 + ✨ #15920455 + ✨ #15920456 + ✨ #15920457 + 📚 #15870100, 8 blocks/sec + ✨ #15920458 + ✨ #15920459 + 📚 #15870200, 13 blocks/sec + ✨ #15920460 + 📚 #15870300, 10 blocks/sec + 📚 #15870400, 12 blocks/sec + ✨ #15920461 + 📚 #15870500, 19 blocks/sec + ✨ #15920462 + 📚 #15870600, 22 blocks/sec + ✨ #15920463 + 📚 #15870700, 21 blocks/sec + ✨ #15920464 + 📚 #15870800, 22 blocks/sec + ✨ #15920465 + 📚 #15870900, 30 blocks/sec + 📚 #15871000, 22 blocks/sec + ✨ #15920466 + +``` \ No newline at end of file From f9fb5e56779d2b4a87891d1e108ab341dcf04613 Mon Sep 17 00:00:00 2001 From: Jonathan Brown Date: Thu, 15 Jun 2023 20:46:41 +0700 Subject: [PATCH 142/253] Add Hybrid Block Explorer Milestone 2 (#878) --- deliveries/hybrid-2.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 deliveries/hybrid-2.md diff --git a/deliveries/hybrid-2.md b/deliveries/hybrid-2.md new file mode 100644 index 000000000..f6332ec0e --- /dev/null +++ b/deliveries/hybrid-2.md @@ -0,0 +1,25 @@ +# 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/hybrid.md +* **Milestone Number:** 2 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -------| ----------- | ---- | ----- | +| 0a. :heavy_check_mark: | License | [LICENSE](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/LICENSE) | Apache 2.0 | +| 0b. :heavy_check_mark: | Documentation | [README.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md) | | +| 0c. :heavy_check_mark: | Testing and Testing Guide | [README.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md#testing-guide) | | +| 0d. :heavy_check_mark: | Docker | [README.md](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/README.md#docker) | | +| 1. :heavy_check_mark: | Event subscription API | [websockets.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/websockets.rs#L415) | | +| 2. :heavy_check_mark: | Live dapp | [IndexerClient.ts](https://github.com/hybrid-explorer/hybrid-dapp/blob/milestone-2/src/lib/IndexerClient.ts#L112)| | +| 3. :heavy_check_mark: | Full Polkadot event indexing | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L377) | | +| 4. :heavy_check_mark: | Variant index | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L235) | | +| 5. :heavy_check_mark: | Increased decentralization | [IndexerClient.ts](https://github.com/hybrid-explorer/hybrid-dapp/blob/milestone-2/src/lib/IndexerClient.ts#L12) | | +| 6. :heavy_check_mark: | Asynchrous block downloading | [substrate.rs](https://github.com/hybrid-explorer/hybrid-indexer/blob/milestone-2/src/substrate.rs#L536) | | + +**Additional Information** + +This milestone still primarily focuses on the indexer. The Dapp in this milestone exists solely to demonstrate the functionality of the indexer. It will be further developed in milestones 3. From 8e41a4aedebe8b35aa0ab2ee51744a0cee66a19b Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:44:19 -0300 Subject: [PATCH 143/253] Update rv-kmir_2_dsm-w3f.md --- evaluations/rv-kmir_2_dsm-w3f.md | 37 ++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/evaluations/rv-kmir_2_dsm-w3f.md b/evaluations/rv-kmir_2_dsm-w3f.md index c34d0bc07..037eb1f1d 100644 --- a/evaluations/rv-kmir_2_dsm-w3f.md +++ b/evaluations/rv-kmir_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/rv-kmir.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -9,11 +9,36 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | **0a.** | License |
  • [x]
| [BSD-3](https://github.com/runtimeverification/mir-semantics/blob/master/LICENSE) | | -| **0b.** | Documentation |
  • [ ]
|[kmir CLI instructions](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md) | Not fully evaluated yet | -| **0c.** | Testing and Testing Guide |
  • [ ]
| [Testing Instructions with Docker](https://github.com/runtimeverification/mir-semantics/tree/milestone2-deliverable#running-integration-tests-with-docker) | Need explanation about skipped tests | -| **0d.** | Docker |
  • [ ]
| [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/Dockerfile) | Not fully evaluated yet -| 1. | KMIR syntax |
  • [ ]
| [mir-syntax.k](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/k-src/mir-syntax.k) | Tests passing but small problems to fix. | -| 2. | **kmir** executable extension |
  • [ ]
| [**kmir parse** implementation](https://github.com/runtimeverification/mir-semantics/blob/bd09e9d1716904afbbab2c0e27735202689d788e/kmir/src/kmir/__main__.py#L23), [**kmir parse** examples](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md#examples) | Command failing | +| **0b.** | Documentation |
  • [x]
|[kmir CLI instructions](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md) | | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Testing Instructions with Docker](https://github.com/runtimeverification/mir-semantics/tree/milestone2-deliverable#running-integration-tests-with-docker) | | +| **0d.** | Docker |
  • [x]
| [Dockerfile](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/Dockerfile) | +| 1. | KMIR syntax |
  • [x]
| [mir-syntax.k](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/k-src/mir-syntax.k) | | +| 2. | **kmir** executable extension |
  • [x]
| [**kmir parse** implementation](https://github.com/runtimeverification/mir-semantics/blob/bd09e9d1716904afbbab2c0e27735202689d788e/kmir/src/kmir/__main__.py#L23), [**kmir parse** examples](https://github.com/runtimeverification/mir-semantics/blob/milestone2-deliverable/kmir/README.md#examples) | | + +## Evaluation V3 + +### Docker + +The steps you sent me are missing the `make build` command, resulting in the path problem. The `kmir parse` doesn't result in this problem if I run `make build` before `poetry shell`. + + +kmir parse + +``` +(kmir-py3.10) user@7034ba919a44:~/kmir$ kmir parse --definition-dir $(kbuild which llvm) src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir +Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'Mir'Unds'MirComponent'Unds'Mir{}(inj{SortFunction{}, SortMirComponent{}}(Lbl'UndsLBraUndsRBraUnds'MIR-SYNTAX'Unds'Function'Unds'FunctionSignature'Unds'FunctionBody{}(Lblfn'UndsLParUndsRPar'-'-GT-UndsUnds'MIR-SYNTAX'Unds'FunctionSignature'Unds'FunctionPath'Unds'ParameterList'Unds'Type{}(Lbl'UndsColnColnUndsUnds'MIR-SYNTAX'Unds'FunctionPath'Unds'FunctionPathComponent'Unds'FunctionPath{}(inj{SortIdentifierToken{}, SortFunctionPathComponent{}}(\dv{SortIdentifierToken{}}("main")),Lbl'Stop'List'LBraQuotUndsColnColnUndsUnds'MIR-SYNTAX'Unds'FunctionPath'Unds'FunctionPathComponent'Unds'FunctionPath'QuotRBraUnds'FunctionPath{}()),Lbl'Stop'List'LBraQuotUndsCommUndsUnds'MIR-SYNTAX'Unds'ParameterList'Unds'Parameter'Unds'ParameterList'QuotRBraUnds'ParameterList{}(),inj{SortTupleType{}, SortType{}}(Lbl'LParRParUnds'MIR-SYNTAX'Unds'TupleType{}())),Lbl'UndsUndsUndsUndsUnds'MIR-SYNTAX'Unds'FunctionBody'Unds'DebugList'Unds'BindingList'Unds'ScopeList'Unds'BasicBlockList{}(Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'DebugList'Unds'Debug'Unds'DebugList'QuotRBraUnds'DebugList{}(),Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BindingList'Unds'Binding'Unds'BindingList{}(Lbllet'UndsUndsColnUndsSClnUnds'MIR-SYNTAX'Unds'Binding'Unds'OptMut'Unds'Local'Unds'Type{}(Lblmut'Unds'MIR-SYNTAX'Unds'OptMut{}(),inj{SortLocalToken{}, SortLocal{}}(\dv{SortLocalToken{}}("_0")),inj{SortTupleType{}, SortType{}}(Lbl'LParRParUnds'MIR-SYNTAX'Unds'TupleType{}())),Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BindingList'Unds'Binding'Unds'BindingList{}(Lbllet'UndsUndsColnUndsSClnUnds'MIR-SYNTAX'Unds'Binding'Unds'OptMut'Unds'Local'Unds'Type{}(Lblmut'Unds'MIR-SYNTAX'Unds'OptMut{}(),inj{SortLocalToken{}, SortLocal{}}(\dv{SortLocalToken{}}("_1")),inj{SortTypePathEndSegment{}, SortType{}}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'TypePathEndSegment'Unds'PathIdentSegment'Unds'PathIdentSegmentEndSuffix{}(inj{SortIdentifierToken{}, SortPathIdentSegment{}}(\dv{SortIdentifierToken{}}("bool")),inj{SortPathIdentSegmentSuffix{}, SortPathIdentSegmentEndSuffix{}}(Lbl'Unds'MIR-SYNTAX'Unds'PathIdentSegmentSuffix{}())))),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'BindingList'Unds'Binding'Unds'BindingList'QuotRBraUnds'BindingList{}())),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'ScopeList'Unds'Scope'Unds'ScopeList'QuotRBraUnds'ScopeList{}(),Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BasicBlockList'Unds'BasicBlock'Unds'BasicBlockList{}(Lbl'UndsColnUndsUnds'MIR-SYNTAX'Unds'BasicBlock'Unds'BB'Unds'BasicBlockBody{}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BB'Unds'BBName'Unds'MaybeBBCleanup{}(inj{SortBBToken{}, SortBBName{}}(\dv{SortBBToken{}}("bb0")),Lbl'Unds'MIR-SYNTAX'Unds'MaybeBBCleanup{}()),Lbl'LBraUndsUndsSClnRBraUnds'MIR-SYNTAX'Unds'BasicBlockBody'Unds'StatementList'Unds'Terminator{}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'StatementList'Unds'TerminatedStatement'Unds'StatementList{}(Lbl'UndsSClnUnds'MIR-SYNTAX'Unds'TerminatedStatement'Unds'Statement{}(Lbl'UndsEqlsUndsUnds'MIR-SYNTAX'Unds'Statement'Unds'Place'Unds'RValue{}(inj{SortLocalToken{}, SortPlace{}}(\dv{SortLocalToken{}}("_1")),inj{SortConstant{}, SortRValue{}}(Lblconst'UndsUnds'MIR-SYNTAX'Unds'Constant'Unds'ConstantValue{}(inj{SortBool{}, SortConstantValue{}}(\dv{SortBool{}}("true")))))),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'StatementList'Unds'TerminatedStatement'Unds'StatementList'QuotRBraUnds'StatementList{}()),Lbl'Unds'-'-GT-UndsUnds'MIR-SYNTAX'Unds'Terminator'Unds'CallLike'Unds'TerminatorDestination{}(inj{SortAssertCall{}, SortCallLike{}}(Lblassert'LParUndsRParUnds'MIR-SYNTAX'Unds'AssertCall'Unds'AssertArgumentList{}(Lbl'UndsCommUndsUnds'MIR-SYNTAX'Unds'AssertArgumentList'Unds'AssertArgument'Unds'AssertArgumentList{}(inj{SortLocalToken{}, SortAssertArgument{}}(\dv{SortLocalToken{}}("_1")),Lbl'Stop'List'LBraQuotUndsCommUndsUnds'MIR-SYNTAX'Unds'AssertArgumentList'Unds'AssertArgument'Unds'AssertArgumentList'QuotRBraUnds'AssertArgumentList{}()))),inj{SortBB{}, SortTerminatorDestination{}}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BB'Unds'BBName'Unds'MaybeBBCleanup{}(inj{SortBBToken{}, SortBBName{}}(\dv{SortBBToken{}}("bb1")),Lbl'Unds'MIR-SYNTAX'Unds'MaybeBBCleanup{}()))))),Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BasicBlockList'Unds'BasicBlock'Unds'BasicBlockList{}(Lbl'UndsColnUndsUnds'MIR-SYNTAX'Unds'BasicBlock'Unds'BB'Unds'BasicBlockBody{}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'BB'Unds'BBName'Unds'MaybeBBCleanup{}(inj{SortBBToken{}, SortBBName{}}(\dv{SortBBToken{}}("bb1")),Lbl'Unds'MIR-SYNTAX'Unds'MaybeBBCleanup{}()),Lbl'LBraUndsUndsSClnRBraUnds'MIR-SYNTAX'Unds'BasicBlockBody'Unds'StatementList'Unds'Terminator{}(Lbl'UndsUndsUnds'MIR-SYNTAX'Unds'StatementList'Unds'TerminatedStatement'Unds'StatementList{}(Lbl'UndsSClnUnds'MIR-SYNTAX'Unds'TerminatedStatement'Unds'Statement{}(Lbl'UndsEqlsUndsUnds'MIR-SYNTAX'Unds'Statement'Unds'Place'Unds'RValue{}(inj{SortLocalToken{}, SortPlace{}}(\dv{SortLocalToken{}}("_0")),inj{SortConstant{}, SortRValue{}}(Lblconst'UndsUnds'MIR-SYNTAX'Unds'Constant'Unds'ConstantValue{}(inj{SortTupleConstant{}, SortConstantValue{}}(Lbl'LParRParUnds'MIR-SYNTAX'Unds'TupleConstant{}()))))),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'StatementList'Unds'TerminatedStatement'Unds'StatementList'QuotRBraUnds'StatementList{}()),Lblreturn'Unds'MIR-SYNTAX'Unds'Terminator{}())),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'BasicBlockList'Unds'BasicBlock'Unds'BasicBlockList'QuotRBraUnds'BasicBlockList{}()))))),Lbl'Stop'List'LBraQuotUndsUndsUnds'MIR-SYNTAX'Unds'Mir'Unds'MirComponent'Unds'Mir'QuotRBraUnds'Mir{}()) +``` + +kmir parse --output pretty + +``` +(kmir-py3.10) user@7034ba919a44:~/kmir$ kmir parse --definition-dir $(kbuild which llvm) src/tests/integration/test-data/handwritten-mir/execution/assert-true.mir --output pretty +fn main :: .FunctionPath ( .ParameterList ) -> ( ) { .DebugList let mut _0 : ( ) ; let mut _1 : bool ; .BindingList .ScopeList bb0 : { _1 = const true ; .StatementList assert ( _1 , .AssertArgumentList ) -> bb1 ; } bb1 : { _0 = const ( ) ; .StatementList return ; } .BasicBlockList } .Mir +``` + +I got the same results without Docker. + +Please, adjust the documentation, adding the `make build` to the instructions. ## Evaluation V2 From cc8371410bce20b1ad551d103ddaf905f75f493d Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 16 Jun 2023 15:27:54 -0300 Subject: [PATCH 144/253] Update aurras_phase_2_2_dsm-w3f.md --- evaluations/aurras_phase_2_2_dsm-w3f.md | 36 ++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/evaluations/aurras_phase_2_2_dsm-w3f.md b/evaluations/aurras_phase_2_2_dsm-w3f.md index ede2347f5..33eb14145 100644 --- a/evaluations/aurras_phase_2_2_dsm-w3f.md +++ b/evaluations/aurras_phase_2_2_dsm-w3f.md @@ -9,12 +9,42 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
| https://github.com/HugoByte/aurras/blob/master/LICENSE | | -| 0b. | Documentation |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | Need better instructions how to run and how to test. | -| 0c. | Testing Guide |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | Need better instructions how to run and how to test. | +| 0b. | Documentation |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | Not fully evaluated yet | +| 0c. | Testing Guide |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | Need fix the tests | | 0d. | Docker File |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | | -| 1a. | Workflow Composer: Flow Macro |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | Not fully evaluated yet | +| 1a. | Workflow Composer: Flow Macro |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | Need fix the tests | | 1b. | staking and payout features for scs/substrate-api-client |
  • [x]
| https://github.com/scs/substrate-api-client/pull/294 | | +## Evaluation V4 + +### Test + +I tried again doing all the configuration, like in Milestone 1, to register the push notification token, but the test failed. + +``` +running 3 tests +test tests::send_notification_pass ... FAILED +test tests::send_notification_pass_main ... FAILED +test tests::send_notification_fail_main - should panic ... ok + +failures: + +---- tests::send_notification_pass stdout ---- +thread 'tests::send_notification_pass' panicked at 'called Result::unwrap() on an Err value: NotPresent', actions/push-notification/src/lib.rs:75:51 +note: run with RUST_BACKTRACE=1 environment variable to display a backtrace + +---- tests::send_notification_pass_main stdout ---- +thread 'tests::send_notification_pass_main' panicked at 'called Result::unwrap() on an Err value: NotPresent', actions/push-notification/src/lib.rs:102:53 + + +failures: + tests::send_notification_pass + tests::send_notification_pass_main + +test result: FAILED. 1 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s +``` + + ## Evaluation V3 ### Docker From 15a49f28c14632b96ace757dab88cc87630c949c Mon Sep 17 00:00:00 2001 From: kay404 Date: Sun, 18 Jun 2023 12:18:58 +0800 Subject: [PATCH 145/253] + Omniverse_DLT_milestone_2.md --- deliveries/Omniverse_DLT_milestone_2.md | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 deliveries/Omniverse_DLT_milestone_2.md diff --git a/deliveries/Omniverse_DLT_milestone_2.md b/deliveries/Omniverse_DLT_milestone_2.md new file mode 100644 index 000000000..7304e38b3 --- /dev/null +++ b/deliveries/Omniverse_DLT_milestone_2.md @@ -0,0 +1,57 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Omniverse DLT](https://github.com/w3f/Grants-Program/blob/master/applications/Omniverse%20DLT.md). +* **PR Link:** [Omniverse DLT](https://github.com/w3f/Grants-Program/pull/1431), [update proposal](https://github.com/w3f/Grants-Program/pull/1475) +* **Milestone Number:** 2 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. + +* In this milestone, we have finished create `Swap` pallet, user can add liquidity and make exchanges for two different o-tokens. +* In this milestone, we have finished the `Omniverse-DLT` protocol in `Ink!` technology stack for fungible token, it have the same functions as the `assets pallet` in milestone 1. +* We have enhanced the related off-chain tools to operate `o-tokens` both on the Parachain of Polkadot and EVM chains. +* We have provided incredibly convenient testing tools for deploying and testing the entire process. + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [GPLv3](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE) | GPLv3 | +| 0b. | Documentation | - [A high-level Introduction](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/README.md) - [Tutorial of how to use](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/README.md) | | +| 0c. | Testing Guide | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | We have provided a detailed introduction of [how to test](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/README.md), for this milestone we have provided incredibly convenient testing tools for deploying and testing the entire process in just a few steps. | +| 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We have provide a Dockerfile to run Synchronizers and [test tool](https://github.com/Omniverse-Web3-Labs/omniverse-system-test/blob/milestone-2/src/index.js#L120) launch Synchronizer| +| 0e. | Article | [link]() | | +| 1. | Substrate module: swap | [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap) | We made out Omniverse Swap which can exchanges two different omniverse fungible tokens| +| 2. | Substrate chain | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Bbuilding a Parachain is very easy. We have provided an implementation example mentioned in milestone 1 | +| 3. | Ink! smart contract implementation | [Ink! tech stacks](https://github.com/Omniverse-Web3-Labs/omniverse-ink) | We deploy the omniverse Ink! smart contract on [substrate-contracts-node-v0.25.1](https://github.com/paritytech/substrate-contracts-node/releases/tag/v0.25.1) | +| 4. | Off-Chain Synchronizer | [link](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2) | We have optimized the synchronizer, improving its efficiency, added support for ink! parachain, and provided deployment through Docker. | + +**Additional Information** +* Here is the [GitHub of O-DLT](https://github.com/Omniverse-Web3-Labs). + +#### **Works until now** + +Currently, we have finished the basic functions of `O-DLT` protocol, and provided four tech stack implementations: + +- [Ethereum (EVMs)](https://github.com/Omniverse-Web3-Labs/omniverse-evm/tree/web3-grant) +- Polkadot + - [Pallet](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant) + - [Ink!](https://github.com/Omniverse-Web3-Labs/omniverse-ink) + - [Flow](https://github.com/Omniverse-Web3-Labs/omniverse-flow) + +And an application of `O-DLT` protocol: + +- [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap) + +#### **Future Work** + +We will continue to dedicate ourselves to the improvement of `O-DLT` protocol and explore further applications based on it. From 8daabaa54153c3911aca123d45c7bc8b453cd5f0 Mon Sep 17 00:00:00 2001 From: Joseph Knecht <83087510+JosephKnecht-lab@users.noreply.github.com> Date: Sun, 18 Jun 2023 18:54:36 +0200 Subject: [PATCH 146/253] add external evaluation --- evaluations/coong_wallet_2_si.md | 96 ++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 evaluations/coong_wallet_2_si.md diff --git a/evaluations/coong_wallet_2_si.md b/evaluations/coong_wallet_2_si.md new file mode 100644 index 000000000..8baeec6e3 --- /dev/null +++ b/evaluations/coong_wallet_2_si.md @@ -0,0 +1,96 @@ +# Evaluation Coong Wallet + + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/coong_wallet.md +- **Milestone:** 2 +- **Kusama Identity:** Ha27MB4gKH36ieRPa1T1ASqhUz4sVxMoVmK7o5CS6tXDqjW +- **Previously successfully merged evaluation:** + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
  • [x]
|[Link](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/LICENSE)| License is Ok. Please add year and owner on line 189. | +| 0b. | Documentation |
  • [x]
|[Link](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/README.md)|Documentation is extensive. | +| 0c. | Testing Guide |
  • [x]
|[Link](https://github.com/CoongCrafts/coong-wallet/tree/w3f-milestone-2#how-to-run-tests)| Test run successfully. There are plenty of tests so coverage is fairly high.| +| 0d. | Docker |
  • [x]
|[Link](https://github.com/CoongCrafts/coong-wallet/blob/w3f-milestone-2/Dockerfile)| Good. Perhaps an improvement could be to add your images to DockerHub. | +| 0e. | Article |
  • [ ]
| [Link](https://docs.google.com/document/d/1nZUzetDZvLReof3easrRvR5HQSpjags-XShYj55gJEo/edit?usp=sharing)| Your google docs requires persmission to be accessed. Publish your article on Medium or other open platforms. | +| 1. | Wallet App |
  • [x]
|[Link](https://dapp.coongwallet.io/)| App implements the required features. | +| 2 | Demo App |
  • [x]
|[Link](https://www.youtube.com/watch?v=9fIcAlpx_UI)| Good demo videos that showcase implemented functionality. | + + + +## General Notes + +1. There are some warnings given by Yarn that are usually related to incompatible versions. + +``` +➤ YN0000: ┌ Resolution step +➤ YN0002: │ @coong/base@workspace:packages/base doesn't provide @polkadot/api (p65e43), requested by @polkadot/extension-inject +➤ YN0002: │ @coong/ui@workspace:packages/ui doesn't provide @testing-library/dom (pdd159), requested by @testing-library/user-event +➤ YN0060: │ @coong/ui@workspace:packages/ui provides react (pa7263) with version 18.2.0, which doesn't satisfy what react-qr-reader requests +➤ YN0060: │ @coong/ui@workspace:packages/ui provides react-dom (p8ec15) with version 18.2.0, which doesn't satisfy what react-qr-reader requests +➤ YN0002: │ @coong/ui@workspace:packages/ui doesn't provide react-is (p15b34), requested by @polkadot/react-identicon +➤ YN0002: │ @coong/ui@workspace:packages/ui doesn't provide redux (pd0ab5), requested by redux-persist +➤ YN0002: │ @coong/ui@workspace:packages/ui doesn't provide vite (p55931), requested by @vitejs/plugin-react +➤ YN0002: │ @nrwl/devkit@npm:15.7.0 [efc3e] doesn't provide typescript (p6bdc1), requested by @phenomnomnominal/tsquery +➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements for details, where is the six-letter p-prefixed code +➤ YN0000: └ Completed +➤ YN0000: ┌ Fetch step +➤ YN0000: └ Completed in 0s 280ms +➤ YN0000: ┌ Link step +➤ YN0000: └ Completed +``` + +2. Test are passing successfully. There are some warnings that might require attention. + +``` + Test Files 20 passed (20) + Tests 182 passed (182) + Start at 18:28:51 + Duration 29.18s (transform 642ms, setup 3.17s, collect 65.35s, tests 91.66s) +``` +3. Docker image build and run works correctly: + +``` +[+] Building 162.6s (12/12) FINISHED + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 168B 0.0s + => [internal] load .dockerignore 0.0s + => => transferring context: 199B 0.0s + => [internal] load metadata for docker.io/library/node:18 1.9s + => [auth] library/node:pull token for registry-1.docker.io 0.0s + => [internal] load build context 0.6s + => => transferring context: 3.17MB 0.1s + => [1/6] FROM docker.io/library/node:18@sha256:4a55308cc855cba1a925d19ae4e45838741dad2fd7bb8949a93b2a0f2ae339e3 65.2s + => => resolve docker.io/library/node:18@sha256:4a55308cc855cba1a925d19ae4e45838741dad2fd7bb8949a93b2a0f2ae339e3 0.0s + => => sha256:a31111d070044ed920abddebc16bfa67a69fb0e0e782b703073c93ec10dedf67 49.57MB / 49.57MB 32.3s + => => sha256:dd13397d6ccd754586b475131a51ebeb69394eb49de84b647f4fb6a38703da89 63.98MB / 63.98MB 52.7s + => => sha256:4a55308cc855cba1a925d19ae4e45838741dad2fd7bb8949a93b2a0f2ae339e3 1.21kB / 1.21kB 0.0s + => => sha256:5fea051bde96adaec8680ea3fcaff1168c955cc214609f3335c3c15fb21cafbf 2.00kB / 2.00kB 0.0s + => => sha256:1551e40cd9c28a1ba7a54fdcb22fae37696d2ed74d333bb433c5184f2c9971b4 7.26kB / 7.26kB 0.0s + => => sha256:2455b35210792787557bbd2b0b976aa27a8bd5931191be95c7291b93b9e38f6c 23.57MB / 23.57MB 4.0s + => => sha256:344a74fed6660540130e12445bb29d7201f3d591b13bfd5021d2517c2a5ed7bf 202.40MB / 202.40MB 58.3s + => => sha256:60b2c1a2936fca6d8e26d37e3399e436ddd9fd3d8cc845bfef21d16703cffb98 3.36kB / 3.36kB 33.3s + => => extracting sha256:a31111d070044ed920abddebc16bfa67a69fb0e0e782b703073c93ec10dedf67 1.4s + => => sha256:f3cb0cf1697ab893b4c718bf907613fade5463af153b7a257d0facf0024a0432 45.58MB / 45.58MB 49.7s + => => extracting sha256:2455b35210792787557bbd2b0b976aa27a8bd5931191be95c7291b93b9e38f6c 0.5s + => => sha256:88c3aa907dd4912b984c9d80421e4aa382ef592643430ab067e83c4d87250d13 2.28MB / 2.28MB 51.8s + => => sha256:6c7a1e104b90daed6eb2165584d1a8228b19baced180ae3023237d4fd6787a50 450B / 450B 52.0s + => => extracting sha256:dd13397d6ccd754586b475131a51ebeb69394eb49de84b647f4fb6a38703da89 1.9s + => => extracting sha256:344a74fed6660540130e12445bb29d7201f3d591b13bfd5021d2517c2a5ed7bf 5.0s + => => extracting sha256:60b2c1a2936fca6d8e26d37e3399e436ddd9fd3d8cc845bfef21d16703cffb98 0.0s + => => extracting sha256:f3cb0cf1697ab893b4c718bf907613fade5463af153b7a257d0facf0024a0432 1.3s + => => extracting sha256:88c3aa907dd4912b984c9d80421e4aa382ef592643430ab067e83c4d87250d13 0.1s + => => extracting sha256:6c7a1e104b90daed6eb2165584d1a8228b19baced180ae3023237d4fd6787a50 0.0s + => [2/6] WORKDIR /app 0.0s + => [3/6] COPY package.json . 0.0s + => [4/6] COPY yarn.lock . 0.0s + => [5/6] COPY . . 0.0s + => [6/6] RUN yarn install 83.0s + => exporting to image 12.4s + => => exporting layers 12.4s + => => writing image sha256:33964388f842d35758ec61ddf2f6b08e6a3992cb855a30cc7ddc330d566ae844 0.0s + => => naming to docker.io/library/coong-wallet +``` + +4. Creating a separate git branch for the delivery was a good idea to ensure that the functionality can be tested. Nice job! \ No newline at end of file From 266d3431bb1e06d051c212cf50fd13d508689400 Mon Sep 17 00:00:00 2001 From: xiyu1984 Date: Mon, 19 Jun 2023 13:42:16 +0800 Subject: [PATCH 147/253] update submission docs --- deliveries/Omniverse_DLT_milestone_2.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/deliveries/Omniverse_DLT_milestone_2.md b/deliveries/Omniverse_DLT_milestone_2.md index 7304e38b3..67d96c966 100644 --- a/deliveries/Omniverse_DLT_milestone_2.md +++ b/deliveries/Omniverse_DLT_milestone_2.md @@ -14,9 +14,9 @@ > Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. * In this milestone, we have finished create `Swap` pallet, user can add liquidity and make exchanges for two different o-tokens. -* In this milestone, we have finished the `Omniverse-DLT` protocol in `Ink!` technology stack for fungible token, it have the same functions as the `assets pallet` in milestone 1. +* In this milestone, we have finished the `Omniverse-DLT` protocol in `Ink!` technology stack, it have the same functions as the `assets pallet` in milestone 1. * We have enhanced the related off-chain tools to operate `o-tokens` both on the Parachain of Polkadot and EVM chains. -* We have provided incredibly convenient testing tools for deploying and testing the entire process. +* We have provided **incredibly convenient** **deployment** and **testing** tools for deploying and testing the entire process, which was complex and suffering in the previous milestone. **Deliverables** > Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. @@ -25,13 +25,13 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License | [GPLv3](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE) | GPLv3 | -| 0b. | Documentation | - [A high-level Introduction](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/README.md) - [Tutorial of how to use](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/README.md) | | -| 0c. | Testing Guide | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | We have provided a detailed introduction of [how to test](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/README.md), for this milestone we have provided incredibly convenient testing tools for deploying and testing the entire process in just a few steps. | -| 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We have provide a Dockerfile to run Synchronizers and [test tool](https://github.com/Omniverse-Web3-Labs/omniverse-system-test/blob/milestone-2/src/index.js#L120) launch Synchronizer| -| 0e. | Article | [link]() | | -| 1. | Substrate module: swap | [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap) | We made out Omniverse Swap which can exchanges two different omniverse fungible tokens| -| 2. | Substrate chain | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Bbuilding a Parachain is very easy. We have provided an implementation example mentioned in milestone 1 | +| 0a. | License | - [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE)
-[Omniverse Ink!]() | GPLv3 | +| 0b. | Documentation | - [A high-level Priciple of the Omniverse Swap](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/High-Level%20Principle%20of%20Omniverse%20Swap.md)
- [How to dev with `Ink!`](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/dev-for-Ink!.md)
- [Tutorial of how to auto-deploy](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md)
- [Tutorial of how to operate](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Tutorial.md) | The documentation for this milestone include the high-level introduction of the swap, how to dev with `Ink!`, and the tutorial of how to use. We provide the tutorial for two parts, the one is the deployment that is made **automatically**, and the other is the operation. | +| 0c. | Testing Guide | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | For this milestone we have provided incredibly convenient testing tools for testing the entire process in just a few steps. We think it brings much convenient and really makes sense. | +| 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We provide a Dockerfile to auto-run synchronizers. The related document can be found in the [Auto-Deployment]() | +| 0e. | Article | [link](https://medium.com/@xiyuzheng1984/the-ink-tech-stack-along-with-a-swap-for-o-dlt-tokens-be128bb955e6) | The Ink! Tech Stack along with a Swap for O-DLT Tokens | +| 1. | Substrate module: swap | - [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap)
-[the simulation of the o-amm](https://github.com/Omniverse-Web3-Labs/o-amm)
- [off-chain calc and on-chain verify](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main) | - We made out Omniverse Swap which can exchanges two different omniverse fungible tokens.
- Besides, to make a intuitive comprehension of the o-amm model, we provide a simulation based on python (not included in the milestone but makes sense).
- Also for intuitive understanding of the off-chain calc and on-chain verification mechanism, we provide a parachain to show the details, and developers can build their own mechanism based on it. | +| 2. | Substrate chain | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Building a Parachain is very easy. We have provided an implementation example mentioned in milestone 1 | | 3. | Ink! smart contract implementation | [Ink! tech stacks](https://github.com/Omniverse-Web3-Labs/omniverse-ink) | We deploy the omniverse Ink! smart contract on [substrate-contracts-node-v0.25.1](https://github.com/paritytech/substrate-contracts-node/releases/tag/v0.25.1) | | 4. | Off-Chain Synchronizer | [link](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2) | We have optimized the synchronizer, improving its efficiency, added support for ink! parachain, and provided deployment through Docker. | @@ -54,4 +54,4 @@ And an application of `O-DLT` protocol: #### **Future Work** -We will continue to dedicate ourselves to the improvement of `O-DLT` protocol and explore further applications based on it. +We will continue to dedicate ourselves to the improvement of `O-DLT` protocol and explore further applications based on it. Currently we just provide CLI tools, and the front-ui is on the way. Besides, a `zk-synchronization` platform rolluping the transactions will be made out to save most of the gas fees. From fe3aa7be03e75cd30a77ead213f91bca819c8b23 Mon Sep 17 00:00:00 2001 From: xiyu1984 Date: Mon, 19 Jun 2023 23:57:47 +0800 Subject: [PATCH 148/253] update auto-deployment --- deliveries/Omniverse_DLT_milestone_2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/Omniverse_DLT_milestone_2.md b/deliveries/Omniverse_DLT_milestone_2.md index 67d96c966..2c84aacd1 100644 --- a/deliveries/Omniverse_DLT_milestone_2.md +++ b/deliveries/Omniverse_DLT_milestone_2.md @@ -28,7 +28,7 @@ | 0a. | License | - [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE)
-[Omniverse Ink!]() | GPLv3 | | 0b. | Documentation | - [A high-level Priciple of the Omniverse Swap](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/High-Level%20Principle%20of%20Omniverse%20Swap.md)
- [How to dev with `Ink!`](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/dev-for-Ink!.md)
- [Tutorial of how to auto-deploy](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md)
- [Tutorial of how to operate](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Tutorial.md) | The documentation for this milestone include the high-level introduction of the swap, how to dev with `Ink!`, and the tutorial of how to use. We provide the tutorial for two parts, the one is the deployment that is made **automatically**, and the other is the operation. | | 0c. | Testing Guide | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | For this milestone we have provided incredibly convenient testing tools for testing the entire process in just a few steps. We think it brings much convenient and really makes sense. | -| 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We provide a Dockerfile to auto-run synchronizers. The related document can be found in the [Auto-Deployment]() | +| 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We provide a Dockerfile to auto-run synchronizers. The related document can be found in the [Auto-Deployment](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md#launch-the-auto-synchronizer) | | 0e. | Article | [link](https://medium.com/@xiyuzheng1984/the-ink-tech-stack-along-with-a-swap-for-o-dlt-tokens-be128bb955e6) | The Ink! Tech Stack along with a Swap for O-DLT Tokens | | 1. | Substrate module: swap | - [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap)
-[the simulation of the o-amm](https://github.com/Omniverse-Web3-Labs/o-amm)
- [off-chain calc and on-chain verify](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main) | - We made out Omniverse Swap which can exchanges two different omniverse fungible tokens.
- Besides, to make a intuitive comprehension of the o-amm model, we provide a simulation based on python (not included in the milestone but makes sense).
- Also for intuitive understanding of the off-chain calc and on-chain verification mechanism, we provide a parachain to show the details, and developers can build their own mechanism based on it. | | 2. | Substrate chain | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Building a Parachain is very easy. We have provided an implementation example mentioned in milestone 1 | From bbe2bbfdb5816ab1bc6839ab08cb64e24431b38d Mon Sep 17 00:00:00 2001 From: Niklas P Date: Mon, 19 Jun 2023 18:06:52 +0200 Subject: [PATCH 149/253] Update evaluation-template.md (#884) --- evaluations/evaluation-template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/evaluation-template.md b/evaluations/evaluation-template.md index f1e6d3f5e..7d832ca8f 100644 --- a/evaluations/evaluation-template.md +++ b/evaluations/evaluation-template.md @@ -1,7 +1,7 @@ # Evaluation > Don't remove any of the mandatory parts presented in bold letters or as headlines! -> When evaluating the last milestone of a grant, check if the finished grant refers to an [RFP](https://github.com/w3f/Grants-Program/blob/master/rfps/README.md) and move the corresponding RFP to [implemented](https://github.com/w3f/Grants-Program/tree/master/rfps/implemented). +> When evaluating the last milestone of a grant, check if the finished grant refers to an [RFP](https://github.com/w3f/Grants-Program/blob/master/rfps/README.md) and move the corresponding RFP to [Closed](https://github.com/w3f/Grants-Program/tree/master/docs/RFPs/Closed). > Lines starting with `>`, such as this one, can be removed. - **Status:** In Progress/Accepted/Rejected From 312299182dc421b7778ece43a97d1ce657279c77 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 19 Jun 2023 16:17:55 -0300 Subject: [PATCH 150/253] Update aurras_phase_2_2_dsm-w3f.md --- evaluations/aurras_phase_2_2_dsm-w3f.md | 114 +++++++++++++++++++++++- 1 file changed, 110 insertions(+), 4 deletions(-) diff --git a/evaluations/aurras_phase_2_2_dsm-w3f.md b/evaluations/aurras_phase_2_2_dsm-w3f.md index 33eb14145..f7e7fb6c4 100644 --- a/evaluations/aurras_phase_2_2_dsm-w3f.md +++ b/evaluations/aurras_phase_2_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/project_aurras_mvp_phase_2.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -9,12 +9,118 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
  • [x]
| https://github.com/HugoByte/aurras/blob/master/LICENSE | | -| 0b. | Documentation |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | Not fully evaluated yet | -| 0c. | Testing Guide |
  • [ ]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | Need fix the tests | +| 0b. | Documentation |
  • [x]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro | | +| 0c. | Testing Guide |
  • [x]
| https://github.com/HugoByte/aurras/tree/next/workflow/workflow_macro#testing | | | 0d. | Docker File |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/Dockerfile | | -| 1a. | Workflow Composer: Flow Macro |
  • [ ]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | Need fix the tests | +| 1a. | Workflow Composer: Flow Macro |
  • [x]
| https://github.com/HugoByte/aurras/blob/next/workflow/workflow_macro/src/lib.rs | | | 1b. | staking and payout features for scs/substrate-api-client |
  • [x]
| https://github.com/scs/substrate-api-client/pull/294 | | +## Evaluation V5 + +All Tests passed: + +``` +running 4 tests +test tests::invoke_trigger_fail - should panic ... ok +test tests::filter_address_pass ... ok +test tests::invoke_trigger_pass - should panic ... ok +test tests::filter_topics_pass ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.97s + + Running unittests src/lib.rs (target/debug/deps/action_balance_notification_registration-717f95e234253623) + +running 5 tests +test tests::get_event_sources_pass - should panic ... ok +test tests::get_event_sources_fail_getaddress - should panic ... ok +test tests::get_event_sources_invalid_method - should panic ... ok +test tests::add_address_pass ... ok +test tests::get_event_sources_fail ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.50s + + Running unittests src/lib.rs (target/debug/deps/action_event_receiver-89cca91ba018fa92) + +running 2 tests +test tests::parse_event_pass ... ok +test tests::parse_event_fail - should panic ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/action_event_registration-5be9e8ae1b8f8cec) + +running 1 test +test tests::register_source_pass ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.67s + + Running unittests src/lib.rs (target/debug/deps/action_push_notification-c0f8885b8c948840) + +running 3 tests +test tests::send_notification_pass_main ... ok +test tests::send_notification_pass ... ok +test tests::send_notification_fail_main - should panic ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s + + Running unittests src/lib.rs (target/debug/deps/action_substrate_event_processor-860a7d9001f2b178) + +running 5 tests +test tests::parse_staking_event_data_pass ... ok +test tests::parse_event_data_pass ... ok +test tests::parse_staking_event_data_method_exception - should panic ... ok +test tests::parse_staking_event_data_fail_invalid_category - should panic ... ok +test tests::parse_event_data_fail - should panic ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/actions_common-5e4714479145d33b) + +running 6 tests +test types::context::tests::invoke_trigger_pass ... ok +test types::context::tests::invoke_action_pass ... ok +test types::context::tests::create_rule_pass ... ok +test types::context::tests::get_list_pass ... ok +test types::context::tests::create_trigger_pass ... ok +test types::context::tests::update_document_pass ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.85s + + Running unittests src/main.rs (target/debug/deps/test_util-af63a880229f6cc9) + +running 6 tests +test tests::flow_macro_tests::test_flow_macro_add_node ... ok +test tests::flow_macro_tests::test_macro ... ok +test wasi_http::test_allowed_domains ... ok +test tests::test_car_market_place ... ok +test tests::test_map_operator ... ok +test tests::test_employee_salary_with_concat_operator ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.77s + + +Jun 19 07:48:16.693 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| actions/balance-filter/src/lib.rs: 32/41 +|| actions/balance-filter/src/types/message.rs: 2/2 +|| actions/balance-notification-registration/src/lib.rs: 42/47 +|| actions/common/src/mock/couchdb_test_container.rs: 18/18 +|| actions/common/src/types/context.rs: 74/103 +|| actions/common/src/types/trigger.rs: 1/1 +|| actions/event-receiver/src/lib.rs: 16/23 +|| actions/event-registration/src/lib.rs: 20/39 +|| actions/event-registration/src/types/source.rs: 1/1 +|| actions/push-notification/src/lib.rs: 12/12 +|| actions/substrate-event-processor/src/lib.rs: 26/35 +|| workflow/boilerplate/src/common.rs: 0/6 +|| workflow/test_util/src/helper.rs: 66/66 +|| workflow/test_util/src/main.rs: 0/1 +|| workflow/workflow_apis/src/errors/mod.rs: 0/1 +|| +78.28% coverage, 310/396 lines covered +``` + + ## Evaluation V4 ### Test From 2196d68f6c6d0ded84f66376e1e4b615ebc87d30 Mon Sep 17 00:00:00 2001 From: Sergej Sakac Date: Tue, 20 Jun 2023 16:35:26 +0200 Subject: [PATCH 151/253] Dotflow Milestone 1 delivery --- deliveries/dotflow-1.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 deliveries/dotflow-1.md diff --git a/deliveries/dotflow-1.md b/deliveries/dotflow-1.md new file mode 100644 index 000000000..0599d4f45 --- /dev/null +++ b/deliveries/dotflow-1.md @@ -0,0 +1,27 @@ +# 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:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) +* **Milestone Number:** 1 + +**Context** + +We are submitting the delivery of all the functionality specified in the grant application for the first milestone. +The list of things we implemented in this milestone: +- Identity contract with all the functionality we promised to do in the grant application. +- Tests for identity contract. We covered every part of the contract code with ink! integration tests to ensure everything works as supposed. +- Contract documentation. We have added a lot of comments in the code, as well as in the test to make sure everything is easy to understand. +- My Identity UI with all the functionality we promised to do in the grant application. +- Address encryption. As promised in the grant application we encrypt addresses before storing them in the identity contract to ensure privacy. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/LICENSE) [Frontend](https://github.com/TheDotflow/dotflow-ui/blob/main/LICENSE) | MIT license | +| 0b. | Documentation | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/README.md) | | +| 0c. | Testing and Testing Guide | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/tests.rs) [Guide](https://github.com/TheDotflow/dotflow-ink#build--test-locally) [Identity Key](https://github.com/TheDotflow/dotflow-ui/blob/main/__tests__/identityKey.test.ts) [Guide](https://github.com/TheDotflow/dotflow-ui#set-up-development-environment) | Tests for the identity contract and the Identity Key | +| 0d. | Docker | [Contract]() [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | | +| 1. | Identity Contract | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/lib.rs) | The Identity contract code | +| 2. | My Identity page | [Frontend code](https://github.com/TheDotflow/dotflow-ui/tree/main/src) [Identity Key](https://github.com/TheDotflow/dotflow-ui/pull/15) [Address Encryption](https://github.com/TheDotflow/dotflow-ui/pull/21) | The frontend code | From 1cc06d2e0054ae6ffe9bb0fc5ad66d02a29c4140 Mon Sep 17 00:00:00 2001 From: dastansam Date: Tue, 20 Jun 2023 20:01:45 +0300 Subject: [PATCH 152/253] push --- evaluations/dotflow_1-dastansam.md | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 evaluations/dotflow_1-dastansam.md diff --git a/evaluations/dotflow_1-dastansam.md b/evaluations/dotflow_1-dastansam.md new file mode 100644 index 000000000..10f4b641f --- /dev/null +++ b/evaluations/dotflow_1-dastansam.md @@ -0,0 +1,32 @@ +# Evaluation + +> Don't remove any of the mandatory parts presented in bold letters or as headlines! +> When evaluating the last milestone of a grant, check if the finished grant refers to an [RFP](https://github.com/w3f/Grants-Program/blob/master/rfps/README.md) and move the corresponding RFP to [Closed](https://github.com/w3f/Grants-Program/tree/master/docs/RFPs/Closed). +> Lines starting with `>`, such as this one, can be removed. + +- **Status:** In Progress +- **Application Document:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) +- **Milestone:** 1 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** N/A + +**Deliverables** + +| Number | Deliverable | Link | Evaluation Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/LICENSE) [Frontend](https://github.com/TheDotflow/dotflow-ui/blob/main/LICENSE) | MIT license | +| 0b. | Documentation | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/README.md) | | +| 0c. | Testing and Testing Guide | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/tests.rs) [Guide](https://github.com/TheDotflow/dotflow-ink#build--test-locally) [Identity Key](https://github.com/TheDotflow/dotflow-ui/blob/main/__tests__/identityKey.test.ts) [Guide](https://github.com/TheDotflow/dotflow-ui#set-up-development-environment) | Tests for the identity contract and the Identity Key | +| 0d. | Docker | [Contract]() [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | | +| 1. | Identity Contract | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/lib.rs) | The Identity contract code | +| 2. | My Identity page | [Frontend code](https://github.com/TheDotflow/dotflow-ui/tree/main/src) [Identity Key](https://github.com/TheDotflow/dotflow-ui/pull/15) [Address Encryption](https://github.com/TheDotflow/dotflow-ui/pull/21) | The frontend code | + +Ideally all links inside the above table should include the commit hash, +which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. + +## General Notes + +### Basic Functionality + +- Documentation: The documentation is detailed and easy to follow. +- Testing: Unit tests are present and are passing. From a1cd4a973bdf238f10da8c883e04f4799f16f9d6 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:04:23 -0300 Subject: [PATCH 153/253] Update saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 72 ++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md index 543440dc4..f9bb6292c 100644 --- a/evaluations/saas3_2_dsm-w3f.md +++ b/evaluations/saas3_2_dsm-w3f.md @@ -23,6 +23,78 @@ | | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | | 3. | UI & Frontend |
  • [ ]
| https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | + +## Evaluation V3 + +### Manual Test + +I tried again to use these pallets, I followed the [guide](https://github.com/SaaS3-Foundation/saas3-dao/blob/main/Tutorial.md), and I could vote using the Charlie, Eve, Ferdie, and Dave address. + +``` +court.proposals: Option +{ + plaintiff: 5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty + value: 50 + defendent: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + statement: I demand compensation for damages. + voters: [ + 5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y + 5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy + 5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw + 5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL + ] + votes: [ + true + true + true + true + ] + approved: false +} +``` + +I got the same error, BadOrigin, when trying to Process a Lawsuit using any of the jury member's addresses. + +I changed the unit test code to check if the pallet works with a signature from the jury. + +Original Test +``` +#[test] +fn process_sue_works() { + new_test_ext().execute_with(|| { + Balances::make_free_balance_be(&0, 101); + assert_ok!(Court::submit_sue(RuntimeOrigin::signed(1), 100, 0, vec![])); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(2), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(3), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(4), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(5), 0, true)); + assert_ok!(Court::process_sue(RuntimeOrigin::root(), 0)); + assert_eq!(Court::approvals().len(), 1); + assert_eq!(Court::proposal_count(), 1); + }); +} +``` + +Modified Test +``` +#[test] +fn process_sue_works() { + new_test_ext().execute_with(|| { + Balances::make_free_balance_be(&0, 101); + assert_ok!(Court::submit_sue(RuntimeOrigin::signed(1), 100, 0, vec![])); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(2), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(3), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(4), 0, true)); + assert_ok!(Court::vote_sue(RuntimeOrigin::signed(5), 0, true)); + assert_ok!(Court::process_sue(RuntimeOrigin::signed(2), 0)); + assert_eq!(Court::approvals().len(), 1); + assert_eq!(Court::proposal_count(), 1); + }); +} +``` + +This test passed, so I don't know why this isn't working using polkadot.js. It is working for you? Did you tried it using polkadot.js? + ## Evaluation V2 ### Automated Test From fcfe9c0ce62554fbcaa01c18275af99aeb6bf9d2 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:34:02 -0300 Subject: [PATCH 154/253] Update genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md index 4843ac04c..325ab8217 100644 --- a/evaluations/genesisdao_3_dsm-w3f.md +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -17,6 +17,20 @@ | 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | | 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | +## Evaluation V5 + +I ran the docker to set up all components. I was creating the DAO like before, and after the governance configuration, I received this screen. + +![pasted image 0 (5)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/4fd6b17a-d1ce-4b21-955f-49d44d195f0c) + + +I checked the console and viewed this error. + +![pasted image 0 (6)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/38a1eeb1-a8f7-4a4e-8043-93ced6786878) + + +I checked this using Firefox and Chrome. This error prevented me to continue the evaluation. + ## Evaluation V4 ### Testing From 8ef208279b0c8ae05235ef542ffef046919dcdb8 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Tue, 20 Jun 2023 21:51:31 +0300 Subject: [PATCH 155/253] Update dotflow_1-dastansam.md --- evaluations/dotflow_1-dastansam.md | 132 +++++++++++++++++++++++++---- 1 file changed, 116 insertions(+), 16 deletions(-) diff --git a/evaluations/dotflow_1-dastansam.md b/evaluations/dotflow_1-dastansam.md index 10f4b641f..fa258aba0 100644 --- a/evaluations/dotflow_1-dastansam.md +++ b/evaluations/dotflow_1-dastansam.md @@ -1,9 +1,5 @@ # Evaluation -> Don't remove any of the mandatory parts presented in bold letters or as headlines! -> When evaluating the last milestone of a grant, check if the finished grant refers to an [RFP](https://github.com/w3f/Grants-Program/blob/master/rfps/README.md) and move the corresponding RFP to [Closed](https://github.com/w3f/Grants-Program/tree/master/docs/RFPs/Closed). -> Lines starting with `>`, such as this one, can be removed. - - **Status:** In Progress - **Application Document:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) - **Milestone:** 1 @@ -14,19 +10,123 @@ | Number | Deliverable | Link | Evaluation Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/LICENSE) [Frontend](https://github.com/TheDotflow/dotflow-ui/blob/main/LICENSE) | MIT license | -| 0b. | Documentation | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/README.md) | | -| 0c. | Testing and Testing Guide | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/tests.rs) [Guide](https://github.com/TheDotflow/dotflow-ink#build--test-locally) [Identity Key](https://github.com/TheDotflow/dotflow-ui/blob/main/__tests__/identityKey.test.ts) [Guide](https://github.com/TheDotflow/dotflow-ui#set-up-development-environment) | Tests for the identity contract and the Identity Key | -| 0d. | Docker | [Contract]() [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | | -| 1. | Identity Contract | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/lib.rs) | The Identity contract code | -| 2. | My Identity page | [Frontend code](https://github.com/TheDotflow/dotflow-ui/tree/main/src) [Identity Key](https://github.com/TheDotflow/dotflow-ui/pull/15) [Address Encryption](https://github.com/TheDotflow/dotflow-ui/pull/21) | The frontend code | - -Ideally all links inside the above table should include the commit hash, -which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. +| 0a. | License | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/LICENSE) [Frontend](https://github.com/TheDotflow/dotflow-ui/blob/main/LICENSE) | Correct licenses | +| 0b. | Documentation | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/README.md) | Well documented and easy to follow. There are only some minor improvements that I suggest below | +| 0c. | Testing and Testing Guide | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/tests.rs) [Guide](https://github.com/TheDotflow/dotflow-ink#build--test-locally) [Identity Key](https://github.com/TheDotflow/dotflow-ui/blob/main/__tests__/identityKey.test.ts) [Guide](https://github.com/TheDotflow/dotflow-ui#set-up-development-environment) | All unit tests are passing and there is a minor issue with `e2e-tests`. Output and additional notes below | +| 0d. | Docker | [Contract]() [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | Was able to build the image and run it successfully. Output attached below | +| 1. | Identity Contract | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/lib.rs) | Well structured code. Contract compiles fine. I only have some non-critical code suggestions below. | +| 2. | My Identity page | [Frontend code](https://github.com/TheDotflow/dotflow-ui/tree/main/src) [Identity Key](https://github.com/TheDotflow/dotflow-ui/pull/15) [Address Encryption](https://github.com/TheDotflow/dotflow-ui/pull/21) | Was able to build and run both Docker and native version of the frontend. Everything looks smooth, intuitive and user-friendly. | ## General Notes -### Basic Functionality +In general, it's very well done. I haven't found any critical issues and was able to complete all the instructions successfully. Code coverage reports `93.37%` and all tests are passing. I only have some minor improvements I can suggest, which are listed below. + +### Missing documentation for contract deployment + +I see that you have deployed the contract to `Astar Shibuya` at this address `Yib3XD3rkKWstaCB6P3FYCuWu2gZ4nwLoi6x9w8e9UoLNjh`, which is great. Maybe you can also highlight this somewhere in your documentation and mention that someone can test the DotFlow UI provided that they have `Astar Shibuya` testnet funds? + +I think it would also be nice to have the process of deploying the contract on the local testnet documented in your main README file. Or at least leave a link to some other resource that explains it. Especially, since we need `CONTRACT_IDENTITY` env variable for frontend. This will ease testing it since local testnet has development accounts. + +### No `e2e-tests` + +There is a [section](https://github.com/TheDotflow/dotflow-ink/blob/3ec6be1712b8074352277ee2f23e0d3c6faa0196/README.md#L47-L48) in documentation about running `e2e-tests` but there are [no](https://github.com/TheDotflow/dotflow-ink/blob/3ec6be1712b8074352277ee2f23e0d3c6faa0196/contracts/identity/lib.rs#L518-L519) tests defined under `e2e-tests` feature, so it simply runs the same tests as `cargo test`. + +I assume, you are going to be adding end-to-end tests when you complete the second milestone, and when you have all the pieces of the project together, so this is not a critical issue. + +### Code suggestions + +#### Avoid `unwrap` and `assert`: + +Try to avoid using `unwrap` and `assert` in the non-test environment, although it is not that critical in the contract execution environment, it still makes it easier to debug and find out more about the error when the contract execution panics. + +Opt for using `unwrap_err`, `unwrap_or_default`, `map_err`, etc. methods which softly handle the case when `unwrap` panics. You can define `Error` variants for each possible panic case and propogate it from the top level (you already have most of them covered). And in a similar fashion, use `ensure!` instead of `assert!` when validating something in the non-test environment. You are already using it in most of the places, so it just needs to be consistent. + +Here are some examples of using `unwrap` and `assert` in your contract code: [1](https://github.com/TheDotflow/dotflow-ink/blob/3ec6be1712b8074352277ee2f23e0d3c6faa0196/contracts/identity/lib.rs#L203-L204), [2](https://github.com/TheDotflow/dotflow-ink/blob/3ec6be1712b8074352277ee2f23e0d3c6faa0196/contracts/identity/lib.rs#L256-L257), [3](https://github.com/TheDotflow/dotflow-ink/blob/3ec6be1712b8074352277ee2f23e0d3c6faa0196/contracts/identity/lib.rs#L328) + +#### Clippy + +Running `cargo clippy --no-deps --all-targets --workspace` on the project suggests some fixes, mostly related to unnecessary usage of `clone()`: + +```sh +warning: using `clone` on type `u32` which implements the `Copy` trait + --> contracts/identity/tests.rs:637:35 + | +637 | IdentityInfo { addresses: vec![(polkadot_id.clone(), encoded_address.clone())] } + | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `polkadot_id` +``` + +### Outputs + +
+ + Docker outputs + + ```sh + => [2/3] WORKDIR /app 0.3s + => [3/3] COPY . . 12.6s + => exporting to image 9.8s + => => exporting layers 9.8s + => => writing image sha256:af791be5603993712f6d271193d4124e150d121b6528f1f53fa56374200810fc 0.0s + => => naming to docker.io/library/dotflow-ink + ``` +
+ +
+ + Docker frontend outputs + ```sh + => exporting to image 4.1s + => => exporting layers 4.1s + => => writing image sha256:e511287bc4938167e369582af397819c6ac8d954e615f1c3a5fca53a17625a2f 0.0s + => => naming to docker.io/library/dotflow-ui +``` +
+ +
+ + Test outputs + +```sh +running 17 tests +test tests::add_network_works ... ok +test tests::address_size_limit_works ... ok +test tests::constructor_works ... ok +test tests::add_address_to_identity_works ... ok +test tests::create_identity_works ... ok +test tests::create_identity_already_exist ... ok +test tests::init_with_networks_fail - should panic ... ok +test tests::getting_transaction_destination_works ... ok +test tests::init_with_networks_works ... ok +test tests::remove_address_works ... ok +test tests::remove_network_works ... ok +test tests::set_recovery_account_works ... ok +test tests::transfer_ownership_fails_when_new_owner_has_an_identity ... ok +test tests::remove_identity_works ... ok +test tests::update_network_works ... ok +test tests::transfer_ownership_works ... ok +test tests::update_address_works ... ok + +test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Doc-tests identity + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` +
+ +
+ + Code coverage -- Documentation: The documentation is detailed and easy to follow. -- Testing: Unit tests are present and are passing. + ```sh +|| Uncovered Lines: +|| lib.rs: 175-176, 223-225, 384, 411, 415, 422, 425, 444, 488-489 +|| Tested/Total Lines: +|| lib.rs: 162/175 +|| types.rs: 21/21 +|| +93.37% coverage, 183/196 lines covered +``` +
From d90b471c38b39a7ac47077ecff482517c6c96518 Mon Sep 17 00:00:00 2001 From: xiyu1984 Date: Wed, 21 Jun 2023 21:35:07 +0800 Subject: [PATCH 156/253] update delivery --- deliveries/Omniverse_DLT_milestone_2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deliveries/Omniverse_DLT_milestone_2.md b/deliveries/Omniverse_DLT_milestone_2.md index 2c84aacd1..5a80d3f38 100644 --- a/deliveries/Omniverse_DLT_milestone_2.md +++ b/deliveries/Omniverse_DLT_milestone_2.md @@ -25,7 +25,7 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License | - [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE)
-[Omniverse Ink!]() | GPLv3 | +| 0a. | License | - [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE)
-[Omniverse Ink!](https://github.com/Omniverse-Web3-Labs/omniverse-ink/blob/main/LICENSE) | GPLv3 | | 0b. | Documentation | - [A high-level Priciple of the Omniverse Swap](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/High-Level%20Principle%20of%20Omniverse%20Swap.md)
- [How to dev with `Ink!`](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/dev-for-Ink!.md)
- [Tutorial of how to auto-deploy](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md)
- [Tutorial of how to operate](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Tutorial.md) | The documentation for this milestone include the high-level introduction of the swap, how to dev with `Ink!`, and the tutorial of how to use. We provide the tutorial for two parts, the one is the deployment that is made **automatically**, and the other is the operation. | | 0c. | Testing Guide | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | For this milestone we have provided incredibly convenient testing tools for testing the entire process in just a few steps. We think it brings much convenient and really makes sense. | | 0d. | Docker | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| We provide a Dockerfile to auto-run synchronizers. The related document can be found in the [Auto-Deployment](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md#launch-the-auto-synchronizer) | @@ -42,9 +42,9 @@ Currently, we have finished the basic functions of `O-DLT` protocol, and provided four tech stack implementations: -- [Ethereum (EVMs)](https://github.com/Omniverse-Web3-Labs/omniverse-evm/tree/web3-grant) +- [Ethereum (EVMs)](https://github.com/Omniverse-Web3-Labs/omniverse-evm/tree/main) - Polkadot - - [Pallet](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/web3-grant) + - [Pallet](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets) - [Ink!](https://github.com/Omniverse-Web3-Labs/omniverse-ink) - [Flow](https://github.com/Omniverse-Web3-Labs/omniverse-flow) From f15564cf473aa9ac1aa4c4326f8a66c0466480a4 Mon Sep 17 00:00:00 2001 From: xiyu1984 Date: Wed, 21 Jun 2023 21:57:12 +0800 Subject: [PATCH 157/253] update the delivery --- deliveries/Omniverse_DLT_milestone_2.md | 1 + 1 file changed, 1 insertion(+) diff --git a/deliveries/Omniverse_DLT_milestone_2.md b/deliveries/Omniverse_DLT_milestone_2.md index 5a80d3f38..9cd905355 100644 --- a/deliveries/Omniverse_DLT_milestone_2.md +++ b/deliveries/Omniverse_DLT_milestone_2.md @@ -17,6 +17,7 @@ * In this milestone, we have finished the `Omniverse-DLT` protocol in `Ink!` technology stack, it have the same functions as the `assets pallet` in milestone 1. * We have enhanced the related off-chain tools to operate `o-tokens` both on the Parachain of Polkadot and EVM chains. * We have provided **incredibly convenient** **deployment** and **testing** tools for deploying and testing the entire process, which was complex and suffering in the previous milestone. +* In addition, thanks to the suggestions by the [reviewers](https://github.com/w3f/Grant-Milestone-Delivery/pull/800#issuecomment-1502611594), according to previous experience, we provide **videos** for [auto-testing for basic points of `Ink!`](https://omniversedlt.s3.amazonaws.com/token-swap-test/token-test.mp4), [auto-testing for swap](https://omniversedlt.s3.amazonaws.com/token-swap-test/swap-test.mp4), [auto-deployment](https://omniversedlt.s3.amazonaws.com/auto-deploy-tutorial/Auto-Deployment.mp4), and [operations](https://omniversedlt.s3.amazonaws.com/auto-deploy-tutorial/Auto-Tutorial.mp4) to improve efficiency. **Deliverables** > Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. From 8b4d88c9e690cf05d3d7a51f8382276ade7910aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 22 Jun 2023 12:08:43 +0200 Subject: [PATCH 158/253] ZeroPool M1 and M2 accepted --- evaluations/zeropool_1_mmagician-semuelle.md | 12 ++++++++---- evaluations/zeropool_2_semuelle.md | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/evaluations/zeropool_1_mmagician-semuelle.md b/evaluations/zeropool_1_mmagician-semuelle.md index c55876f6f..f45cb0c18 100644 --- a/evaluations/zeropool_1_mmagician-semuelle.md +++ b/evaluations/zeropool_1_mmagician-semuelle.md @@ -1,9 +1,9 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md - **Milestone:** 1 -- **Kusama Identity:** [H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85](https://polkascan.io/pre/kusama/account/H9M22FTqs1kKRAUiEk1BCVNQfWdMzVV3HbHuMwkirirxk85) +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) - **Previously successfully merged evaluation:** All by mmagician | Number | Deliverable | Accepted | Link | Notes | @@ -11,12 +11,16 @@ | 0a. | License |
  • [x]
| [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT), [LICENSE](https://github.com/zeropoolnetwork/libzeropool/blob/beae8527536bd03a22e4d110de10079d096f9b55/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT) | - | | 0b. | Documentation |
  • [x]
| [docs.rs](https://docs.rs/libzeropool/0.5.6/libzeropool/index.html), [docs.rs](https://docs.rs/fawkes-crypto/4.4.0/fawkes_crypto/index.html), [README](https://github.com/zeropoolnetwork/libzeropool/blob/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1/README.md) [README](https://github.com/zeropoolnetwork/fawkes-crypto/blob/5149f041ab7fa9b037cf104c8360360da66db427/README.md), [zeropool.network](https://zeropool.network/docs/implementation/contracts-and-circuits/substrate/) | Some docs added on request. | | 0c. | Testing Guide |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md#run-the-full-test-environment), [zeropoolnetwork/fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto/tree/5149f041ab7fa9b037cf104c8360360da66db427/fawkes-crypto/tests), [zeropoolnetwork/libzeropool](https://github.com/zeropoolnetwork/libzeropool/tree/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1/tests)| | -| 0d. | Article/Tutorial |
  • [ ]
| | No tutorial | +| 0d. | Article/Tutorial |
  • [x]
| [medium.com](https://medium.com/zeropool/zeropool-implementing-privacy-preserving-transactions-with-zksnarks-and-substrate-1bd060505166) | Overview of project, developments and future plans | | 1. | zkSNARK circuit and cryptography library |
  • [x]
| [fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto/tree/5149f041ab7fa9b037cf104c8360360da66db427), [libzeropool](https://github.com/zeropoolnetwork/libzeropool/tree/0f406f4947bbd1abd3bfd0731c0128d3ac015ab1) | — | ## General notes -### Evaluation 04.07.2022 +### Evaluation 22.06.2023 + +Article provided, milestone accepted. + +### Evaluation 14.06.2023 Tests are working. Some documentation added, article still missing. diff --git a/evaluations/zeropool_2_semuelle.md b/evaluations/zeropool_2_semuelle.md index 3dbf5ef1d..8ba590a7c 100755 --- a/evaluations/zeropool_2_semuelle.md +++ b/evaluations/zeropool_2_semuelle.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md - **Milestone:** 2 - **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) @@ -11,7 +11,7 @@ | 0a. | License |
  • [x]
| [Apache](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/LICENSE-APACHE), [MIT](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/LICENSE-MIT) | zeropool-substrate under Apache 2.0 and MIT | | 0b. | Documentation |
  • [x]
| [README](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md), [pallets/pallet-zeropool](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/pallets/pallet-zeropool/README.md) | Pallet docs minimal | | 0c. | Testing Guide |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/README.md#run-the-full-test-environment) | — | -| 0d. | Article/Tutorial |
  • [ ]
| link | We will write an article or tutorial that explains the work done as part of the grant. +| 0d. | Article/Tutorial |
  • [x]
| [medium.com](https://medium.com/zeropool/zeropool-implementing-privacy-preserving-transactions-with-zksnarks-and-substrate-1bd060505166) | Same as M1 | 1. | Substrate module: private transactions |
  • [x]
| [pallets/pallet-zeropool](https://github.com/zeropoolnetwork/zeropool-substrate/tree/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/pallets/pallet-zeropool) | — | | 2. | Wallet library: |
  • [x]
| [zeropoolnetwork/zeropool-client-js](https://github.com/zeropoolnetwork/zeropool-client-js/tree/6ad5c9df144af5c2280aa4ab3e25fcd8ae4bbf73), [zeropoolnetwork/zeropool-support-js](https://github.com/zeropoolnetwork/zeropool-support-js/tree/f6b8a92e9ce9ea065caeb83186a1b3afdbcb731e) | — | | 3. | Docker |
  • [x]
| [zeropoolnetwork/zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate/blob/f13adb61ae2720f8703311f1ae5a6c2d85c8b4ca/docker-compose.full.yml) | Also on DockerHub [here](https://hub.docker.com/r/voidxnull/zeropool-relayer-polkadot) and [here](https://hub.docker.com/r/voidxnull/zeropool-substrate-node) | From a5f918d9de7c6567b05a75d6bf0c9e47e9d0461e Mon Sep 17 00:00:00 2001 From: Igor Gulamov Date: Thu, 22 Jun 2023 14:18:23 +0400 Subject: [PATCH 159/253] zeropool-2-snjax (#316) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sebastian Müller --- deliveries/zeropool-2-snjax.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deliveries/zeropool-2-snjax.md diff --git a/deliveries/zeropool-2-snjax.md b/deliveries/zeropool-2-snjax.md new file mode 100644 index 000000000..a2bb61048 --- /dev/null +++ b/deliveries/zeropool-2-snjax.md @@ -0,0 +1,31 @@ +# Milestone Delivery :mailbox: + + +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ZeroPool.md +- **Milestone Number:** 1 + + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------ | ----------- | ---- |----------------- | +| 0a. | License |[LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT), [LICENSE](https://github.com/zeropoolnetwork/libzeropool/blob/beae8527536bd03a22e4d110de10079d096f9b55/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/LICENSE-MIT)| fawkes-crypto and libzeropool are published with MIT and APACHE 2.0 licenses| +| 0b. | Documentation | [docs.rs](https://docs.rs/libzeropool/0.5.2/libzeropool/), [docs.rs](https://docs.rs/fawkes-crypto/4.3.0/fawkes_crypto/), [README](https://github.com/zeropoolnetwork/libzeropool/blob/beae8527536bd03a22e4d110de10079d096f9b55/README.md) [README](https://github.com/zeropoolnetwork/fawkes-crypto/blob/190c1541de416ca4b634a54b555cd3f23f3a20e5/README.md) | the documentation is partially WIP, partially available | +| 0c. | Testing Guide |[fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto), [libzeropool](https://github.com/zeropoolnetwork/libzeropool)| we have implemented cargo tests for our crates | +| 0d. | Article/Tutorial | | In progress | +| 1. | zkSNARK circuit and cryptography library | [fawkes-crypto](https://github.com/zeropoolnetwork/fawkes-crypto), [libzeropool](https://github.com/zeropoolnetwork/libzeropool) | Implemented | + +- **Milestone Number:** 2 + + +| Number | Deliverable | Link | Notes | +| ------ | ----------- | ---- |----------------- | +| 0a. | License |[LICENSE](https://github.com/zeropoolnetwork/zeropool-substrate/blob/main/LICENSE-APACHE), [LICENSE](https://github.com/zeropoolnetwork/zeropool-substrate/blob/main/LICENSE-MIT)| zeropool-substrate is published with MIT and APACHE 2.0 licenses| +| 0b. | Documentation | [README](https://github.com/zeropoolnetwork/zeropool-substrate/blob/main/README.md) [README](https://github.com/zeropoolnetwork/zeropool-substrate/blob/main/pallets/pallet-zeropool/README.md) | the documentation is partially WIP, partially available | +| 0c. | Testing Guide |[zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate)| we have implemented cargo tests for our crates | +| 0d. | Article/Tutorial | | In progress | +| 1. | Substrate module private transactions | [zeropool-substrate](https://github.com/zeropoolnetwork/zeropool-substrate) | Implemented | +| 2. | Wallet library | [zeropool-client-js](https://github.com/zeropoolnetwork/zeropool-client-js) [zeropool-support-js](https://github.com/zeropoolnetwork/zeropool-support-js) | Implemented | +| 3. | Docker | [zeropool-relayer-polkadot](https://hub.docker.com/r/voidxnull/zeropool-relayer-polkadot), [zeropool-substrate-node](https://hub.docker.com/r/voidxnull/zeropool-substrate-node) | Implemented | + +Also, we deployed the testnet at https://substrate.testnet.console.v2.zeropool.network/ and published the screencast https://www.youtube.com/watch?v=DQ8gbNTOP-g From 760bfe456fabc14d67589b7711489a93e3b4e49e Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:54:01 -0300 Subject: [PATCH 160/253] Update saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md index f9bb6292c..f3c5f3847 100644 --- a/evaluations/saas3_2_dsm-w3f.md +++ b/evaluations/saas3_2_dsm-w3f.md @@ -23,6 +23,26 @@ | | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | | 3. | UI & Frontend |
  • [ ]
| https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | +## Evaluation V4 + +I tried to use the frontend in the Evaluation V3, but I tested again to provide some prints. I created a lawsuit and voted with four different accounts. + +![Screenshot 2023-06-22 at 08-00-49 SaaS3 DAO Pallets](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/8e023ec3-7947-499e-ba0c-5e84e224bc1c) + +With any of the jury accounts, I tried to approve the lawsuit. The frontend showed a success message but wasn't added new events in the polkadot.js. + +![image (22)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/bfa1e372-047e-4140-bbb0-c883b034d07d) + +![Screenshot 2023-06-22 at 08-49-23 Polkadot_Substrate Portal](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/919e448e-ee37-4b80-a019-a4780a2c14dc) + +I found another problem. I created another lawsuit, but when I voted in the second lawsuit, the frontend has sent the transaction with id 0, seeding the vote to the first lawsuit. + +![Screenshot 2023-06-22 at 08-55-02 SaaS3 DAO Pallets](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/75d37c52-9673-4545-b272-1c970518078c) + +![image (23)](https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/925e0e2e-25ee-475a-b3d7-ef6f8c92b331) + +The last vote was trying to vote on the first lawsuit, but it seeded to the second one. The order of the list seems to be inverted, showing the second lawsuit on top of the list, but on top of the list, the id is 0. + ## Evaluation V3 From 0ff27610f39a30dfe7e27bdbc18a70ced73b546e Mon Sep 17 00:00:00 2001 From: Taehoon Kim Date: Thu, 22 Jun 2023 21:19:29 +0200 Subject: [PATCH 161/253] External evaluation of validated-streams milestone 2 (#886) --- evaluations/validated-streams_2_arahangua.md | 501 +++++++++++++++++++ 1 file changed, 501 insertions(+) create mode 100755 evaluations/validated-streams_2_arahangua.md diff --git a/evaluations/validated-streams_2_arahangua.md b/evaluations/validated-streams_2_arahangua.md new file mode 100755 index 000000000..d91408e3a --- /dev/null +++ b/evaluations/validated-streams_2_arahangua.md @@ -0,0 +1,501 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/validated-streams.md +- **Milestone:** 2 +- **Kusama Identity:** [HZrUkonEQc9tReQNndBTML5NbYWBaj8KGaHUGGxwq3jP9PY](https://explorer.polkascan.io/kusama/account/HZrUkonEQc9tReQNndBTML5NbYWBaj8KGaHUGGxwq3jP9PY) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | License |
  • [x]
| [LICENSE](https://github.com/comrade-coop/validated-streams/blob/5dc862fc2fe3cab7e8b6e2272b89ff21607a4038/LICENSE) | MIT | +| **0b.** | Documentation |
  • [x]
| [README](https://github.com/comrade-coop/validated-streams/blob/feed169d51143e1fd303a14a9aaaaaddb6f2a831/README.md) | easy to follow description with a schematic | +| **0c.** | Testing and Testing Guide |
  • [ ]
| [Running tests](https://github.com/comrade-coop/validated-streams/blob/feed169d51143e1fd303a14a9aaaaaddb6f2a831/README.md#testing)
[proofs](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/proofs/tests.rs)
[events](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/events/tests.rs)
[pallet](https://github.com/comrade-coop/validated-streams/blob/a8a55ab7f2f16401c8aefefccdcdfa4638ddb39a/pallet/src/tests.rs) |
  • With 'on-chain proofs' : the project could be built successfully with ```cargo build --release --no-default-features```. However, the tests for 'on-chain proofs' cases failed (see Outstanding Issues below)
  • Without 'on-chain proofs' : `cargo tarpaulin` reports ~33% test coverage for the 'consensus' crate with 19 tests and ~7% coverage for the 'pallet' with 3 tests. The links provided for ['proofs'](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/proofs/tests.rs) and ['events'](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/events/tests.rs) seem to point at invalid urls. Presumably these links are outdated with the recent changes (i.e., renaming 'vstream' to 'consensus_validated_streams', integration of 'proof'/'event' to the 'consensus' crate).
  • Could not build benchmarks following the instruction (see Outstanding Issues).
| +| **0d.** | Docker |
  • [ ]
| [Main](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/Dockerfile)
[IRC](https://github.com/comrade-coop/validated-streams/blob/beb99456091f33f1f1b3cf6a555ff656c107e9cf/samples/irc/Dockerfile)
[Test script](https://github.com/comrade-coop/validated-streams/blob/main/scripts/run-example.sh)
[Benchmark](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/samples/tps-benchmark/Dockerfile) |
  • Again, [Test script](https://github.com/comrade-coop/validated-streams/blob/main/scripts/run-example.sh) seems to point at the old url. Shouldn't it be https://github.com/comrade-coop/validated-streams/tree/main/samples/basic/run_example.sh ?
  • Also path to the stream.proto should be corrected (in run_example.sh) if we intend to use the same sample solution as in M1 for the integration test
| +| **0e.** | Article |
  • [x]
|[Google Docs link](https://docs.google.com/document/u/1/d/12EsVUDydsDWfngQP6-zYRiC-dFbn696Evr3VSxgcpjU/edit) | -- +| 1. | Substrate module: Witnessed events block import |
  • [x]
|[Old](https://github.com/comrade-coop/validated-streams/blob/fa7e20c5f0bf34cd8b89f975eceb6e29955202ab/node/src/streams/services/witness_block_import.rs)

[New](https://github.com/comrade-coop/validated-streams/blob/9d1dd933395f9cca69834ccb43b3330922d531c4/consensus/src/block_import.rs) | The new implementation matches the description in delivery documentation. | +| 2. | Real-life testing |
  • [x]
| [TPS benchmark](https://github.com/comrade-coop/validated-streams/tree/c083a83ad497dcb338501c66691680b1acfc29f0/samples/tps-benchmark) | With the use of Docker, the benchmark runs smoothly. However, I was unable to test the benchmark that didn't use Docker. (I didn't have access to multiple hardwares to test it.) | +| 3. | .NET client sample |
  • [x]
| [IRC sample](https://github.com/comrade-coop/validated-streams/tree/5dc862fc2fe3cab7e8b6e2272b89ff21607a4038/samples/irc) | IRC sample worked nicely + + +
+ +## General Notes +- **19.06.23** : + + - The main delta of M2 compared to M1 seemed to be 1) implementation of a substrate module for importing witnessed events and 2) devising a practical benchmark/application sample. + - Inconsistent paths/urls should be corrected to confirm the full functionality of the contribution. + +
+ +## Outstanding Issues +- **19.06.23** : + + **1. Problems with tests ('on-chain proofs')(rustc = 1.68.0)** + + - `cargo test -p consensus-validated-streams --no-default-features` + + -
+ error output (click to expand) + + ```rust + error[E0432]: unresolved import `super::RocksDbEventProofs` + --> consensus/src/proofs/tests.rs:2:69 + | + 2 | EventProofsTrait, InMemoryEventProofs, OffchainStorageEventProofs, RocksDbEventProofs, + | ^^^^^^^^^^^^^^^^^^ no `RocksDbEventProofs` in `proofs` + + warning: function `verify_events_validity` is never used + --> consensus/src/events/mod.rs:99:15 + | + 99 | pub(crate) fn verify_events_validity( + | ^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(dead_code)]` on by default + + For more information about this error, try `rustc --explain E0432`. + error: could not compile `consensus-validated-streams` due to previous error + warning: build failed, waiting for other jobs to finish... + warning: `consensus-validated-streams` (lib) generated 1 warning + ``` + +
+
+ + - `cargo test -p pallet-validated-streams --no-default-features` + + -
+ error output (click to expand) + + ```rust + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/metadata.rs:87:17 + | + 87 | let mut res = vec![]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/misc.rs:1089:17 + | + 1089 | .type_params(vec![TypeParameter::new("T", Some(meta_type::()))]) + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/misc.rs:1002:17 + | + 1002 | .type_params(vec![TypeParameter::new("T", Some(meta_type::()))]) + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:268:3 + | + 268 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:248:3 + | + 248 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:225:54 + | + 225 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:609:3 + | + 609 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:583:3 + | + 583 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:554:54 + | + 554 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:471:3 + | + 471 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:443:3 + | + 443 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:419:14 + | + 419 | hashers: vec![Hasher::METADATA], + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:413:54 + | + 413 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:724:3 + | + 724 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:693:3 + | + 693 | vec![StorageInfo { + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:666:14 + | + 666 | hashers: vec![Hasher1::METADATA, Hasher2::METADATA], + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:660:54 + | + 660 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/counted_map.rs:468:5 + | + 468 | vec!["Counter for the related counted storage map"] + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/counted_map.rs:466:5 + | + 466 | vec![] + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:291:16 + | + 291 | let mut key = vec![0u8; 32 + hash.len()]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:261:16 + | + 261 | let mut key = vec![0u8; 32 + hash.len()]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:250:16 + | + 250 | let mut key = vec![0u8; 32 + hash.len()]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:241:16 + | + 241 | let mut key = vec![0u8; 32 + hash.len()]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `vec` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:232:16 + | + 232 | let mut key = vec![0u8; 32 + hash.len()]; + | ^^^ + | + = note: consider importing one of these items: + codec::alloc::vec + crate::sp_std::vec + scale_info::prelude::vec + sp_std::vec + + error: cannot find macro `thread_local` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/dispatch_context.rs:90:1 + | + 90 | environmental::environmental!(DISPATCH_CONTEXT: BTreeMap>); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `thread_local` is in scope, but it is an attribute: `#[thread_local]` + = note: this error originates in the macro `$crate::thread_local_impl` which comes from the expansion of the macro `environmental::environmental` (in Nightly builds, run with -Z macro-backtrace for more info) + + error[E0425]: cannot find value `GLOBAL` in this scope + --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/dispatch_context.rs:90:1 + | + 90 | environmental::environmental!(DISPATCH_CONTEXT: BTreeMap>); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope + | + = note: this error originates in the macro `environmental::environmental` (in Nightly builds, run with -Z macro-backtrace for more info) + + For more information about this error, try `rustc --explain E0425`. + error: could not compile `frame-support` due to 29 previous errors + + ``` +
+ +
+ + **2. Outdated urls?** + - links for 'proofs' and 'events' in deliverable 0c are not valid. + - link 'Test_script' in deliverable 0d is not valid + +
+ + **3. Problems with building benchmarks** + + + + - `cargo build --release --no-default-features --features runtime-benchmarks` + - we get the same error for both with/without `--no-default-features` + + -
+ error output (click to expand) + + ```rust + Compiling pallet-validated-streams v0.1.0 (/home/takim/work/grant_projects/validated-streams/pallet) + Compiling vstreams-node-runtime v0.1.0 (/home/takim/work/grant_projects/validated-streams/runtime) + error[E0308]: mismatched types + --> pallet/src/benchmarking.rs:18:24 + | + 15 | / benchmarks! { + 16 | | validate_event { + 17 | | let event_id: T::Hash = T::Hash::default(); + 18 | | }: _(RawOrigin::None, event_id, None) + | | ^^^^^^^^ expected struct `H256`, found associated type + ... | + 26 | | ) + 27 | | } + | |_- arguments to this function are incorrect + | + = note: expected struct `sp_core::H256` + found associated type `::Hash` + = help: consider constraining the associated type `::Hash` to `sp_core::H256` + = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html + note: associated function defined here + --> pallet/src/lib.rs:95:10 + | + 95 | pub fn validate_event( + | ^^^^^^^^^^^^^^ + 96 | origin: OriginFor, + 97 | event_id: H256, + | -------------- + + error[E0599]: no function or associated item named `verify_event` found for struct `Pallet` in the current scope + --> pallet/src/benchmarking.rs:20:42 + | + 20 | assert!(pallet_validated_streams::::verify_event(event_id)); + | ^^^^^^^^^^^^ function or associated item not found in `Pallet` + | + ::: pallet/src/lib.rs:43:5 + | + 43 | pub struct Pallet(_); + | -------------------- function or associated item `verify_event` not found for this struct + + Some errors have detailed explanations: E0308, E0599. + For more information about an error, try `rustc --explain E0308`. + error: could not compile `pallet-validated-streams` due to 2 previous errors + warning: build failed, waiting for other jobs to finish... + error: failed to run custom build command for `vstreams-node-runtime v0.1.0 (/home/takim/work/grant_projects/validated-streams/runtime)` + + Caused by: + process didn't exit successfully: `/home/takim/work/grant_projects/validated-streams/target/release/build/vstreams-node-runtime-263ed3eed4608505/build-script-build` (exit status: 1) + --- stdout + Information that should be included in a bug report. + Executing build command: RUSTFLAGS="-C link-arg=--export-table -Clink-arg=--export=__heap_base -C link-arg=--import-memory " SKIP_WASM_BUILD="" "/home/takim/.rustup/toolchains/nightly-2023-01-01-x86_64-unknown-linux-gnu/bin/cargo" "rustc" "--target=wasm32-unknown-unknown" "--manifest-path=/home/takim/work/grant_projects/validated-streams/target/release/wbuild/vstreams-node-runtime/Cargo.toml" "--color=always" "--profile" "release" + Using rustc version: rustc 1.68.0-nightly (574b64a97 2022-12-31) + + + --- stderr + Compiling pallet-validated-streams v0.1.0 (/home/takim/work/grant_projects/validated-streams/pallet) + Compiling pallet-grandpa v4.0.0-dev (https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.40#98f2e345) + error[E0308]: mismatched types + --> /home/takim/work/grant_projects/validated-streams/pallet/src/benchmarking.rs:18:24 + | + 15 | / benchmarks! { + 16 | | validate_event { + 17 | | let event_id: T::Hash = T::Hash::default(); + 18 | | }: _(RawOrigin::None, event_id, None) + | | ^^^^^^^^ expected struct `H256`, found associated type + ... | + 26 | | ) + 27 | | } + | |_- arguments to this function are incorrect + | + = note: expected struct `sp_core::H256` + found associated type `::Hash` + = help: consider constraining the associated type `::Hash` to `sp_core::H256` + = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html + note: associated function defined here + --> /home/takim/work/grant_projects/validated-streams/pallet/src/lib.rs:95:10 + | + 95 | pub fn validate_event( + | ^^^^^^^^^^^^^^ + 96 | origin: OriginFor, + 97 | event_id: H256, + | -------------- + + error[E0599]: no function or associated item named `verify_event` found for struct `Pallet` in the current scope + --> /home/takim/work/grant_projects/validated-streams/pallet/src/benchmarking.rs:20:42 + | + 20 | assert!(pallet_validated_streams::::verify_event(event_id)); + | ^^^^^^^^^^^^ function or associated item not found in `Pallet` + | + ::: /home/takim/work/grant_projects/validated-streams/pallet/src/lib.rs:43:5 + | + 43 | pub struct Pallet(_); + | -------------------- function or associated item `verify_event` not found for this struct + + Some errors have detailed explanations: E0308, E0599. + For more information about an error, try `rustc --explain E0308`. + error: could not compile `pallet-validated-streams` due to 2 previous errors + warning: build failed, waiting for other jobs to finish... + ``` +
+ + \ No newline at end of file From 6eec2143fd78082f8c7f66ddde1bcfb0832fdadd Mon Sep 17 00:00:00 2001 From: Niklas P Date: Thu, 22 Jun 2023 21:26:14 +0200 Subject: [PATCH 162/253] Evaluate: SARP - A Static Analysis Tool for Runtime Pallets (#885) --- evaluations/sarp_1_niklasp.md | 173 ++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 evaluations/sarp_1_niklasp.md diff --git a/evaluations/sarp_1_niklasp.md b/evaluations/sarp_1_niklasp.md new file mode 100644 index 000000000..410357967 --- /dev/null +++ b/evaluations/sarp_1_niklasp.md @@ -0,0 +1,173 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** + https://github.com/w3f/Grants-Program/blob/master/applications/sarp-basic-functionality.md +- **Milestone:** + [1](https://github.com/w3f/Grant-Milestone-Delivery/blob/70250f0f8d90c3143294e1ec7a25c0c89133a481/deliveries/sarp-basic-functionality-milestone-1.md) +- **Kusama Identity:** + [DT7kRjGFvRKxGSx5CPUCA1pazj6gzJ6Db11xmkX4yYSNK7m](https://sub.id/5CwW67PPdZQQCcdWJVaRJCepSQSrtKUumDAGa7UZbBKwd9R2) +- **Previously successfully merged evaluation:** None yet + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0a. | License |
  • [x]
| [MIRAI MIT License](https://github.com/scs/MIRAI/blob/8afab5db34fb7330789e3765c3adf460ed72ed05/LICENSE) | MIT license file for the MIRAI package is provided in a forked repo. | +| 0b. | User Documentation |
  • [ ]
| [Proof of Concept: Tag Analysis on Origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/README.md) -- [Proof of Concept: Tag Analysis for validation of unsigned transactions](https://github.com/scs/MIRAI/tree/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker) | See [User Documentation Feedback](#user-documentation-feedback). _Spec: "We will provide a basic tutorial that explains how to use the tool on a substrate pallet."_ | +| 0c. | Testing and Testing Guide |
  • [ ]
| see 0b. | The User Documentation contains incomplete guides to running the supplied Prototype Code. _Spec: "A first set of tests will be provided, together with a testing guide, that describes how to run them."_ | +| 1. | Prototype Code |
  • [ ]
| [origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/), [unsigned transaction](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/) | Prototype code was submitted, that approaches the two stated vulnerabilty classes. See [Prototype Code Feedback](#prototype-code-feedback) for open issues / questions. _Spec: "Prototype code to approach the above two stated vulnerability classes."_ | +| 2. | Documentation |
  • [ ]
| [Tag Analysis on Substrate Pallets](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/README.md) | See [Documentation Feedback](#documentation-feedback). _Spec: "Technical documentation: a) describing the approach we plan to implement in milestone 2, incl. its limitations. b) with (interesting) examples of the vulnerability classes."_ | +| 3. | Engagement |
  • [ ]
| [Github Comment](https://github.com/w3f/Grants-Program/pull/1706#issuecomment-1564312572) | See [Engagement Feedback](#engagement-feedback). _Spec: "Engage with teams at Web3 Foundation and Parity for prioritization._ | + +## General Notes + +Two code prototype examples alongside its documentation were submitted by the +grantee that address the two vulnerability classes: _Incorrect Origin_ and +_Unsigned Transaction_. Also a brief research documentation was submitted. + +Based on my evaluation, you can improve the submitted documentation and +engagement (see below). I would like to see more progress in solving the major +issues with MIRAI as stated in your +[Findings](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/README.md#findings) +and Open Issues +[1](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/README.md#open-issues), +[2](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/README.md#open-issues) +before accepting the deliverable. As I understand your granted application, the +overall idea was to find if MIRAI is a suitable tool for statically analysing +substrate code. By providing more details (with code examples and error outputs) +it would be easier to evualuate your findings. + +Thus I have to reject this delivery at its current state but will continue the +evaluation / accept the delivery when the points stated below are resolved / +commented on. + +_Note that this evaluation is not binding since I do not currently work for the +Web3Foundation. The w3f grants team can still accept your delivery in its +current state._ + +## Prototype Code Feedback + +The applicants [forked the MIRIA repository](https://github.com/scs/MIRAI). I am +evaluating the `Milestone1_Research` branch. The code has relevant comments and +is easy to understand. For existing comments / questions, see below. + +### Running the Prototype Code + +1. Install MIRAI as per + [Instructions](https://github.com/facebookexperimental/MIRAI/blob/main/documentation/InstallationGuide.md) - + _this is documented_ +1. clone the forked repo (where the substrate-examples folder contains the + pallet template) `git clone https://github.com/scs/MIRAI.git` - _not + documented_ +1. Checkout the correct branch (linked from the documentation) + `git checkout Milestone1_Research` - _this step is not documented. At the + time of evaluation there is an + [open PR to `main`](https://github.com/scs/MIRAI/pull/1) that would merge the + `pallet_template`/ Tag Analysis part of the example._ +1. Then I tested both supplied static analysis examples: + +### Origin Check + +- `cd substrate-examples/pallet_template` and then run `cargo mirai` +- Altering the two lines of code works as described in the documentation and + outputs a warning when the `ensure_signed` is used instead of the + `sarp_ensure_signed`. + +➡️ The supplied example is adding the tags in a correct way, as far as I can +tell, but differs from the vulnarability class raised in the RFP. The provided +code is testing +[`ensure_signed`](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/src/lib.rs#L135) +instead of additionally testing +[`ensure_origin`](https://github.com/bhargavbh/MIRAI/blob/5646e7e2775f1b59bed74285ab1c0a8397218fc5/substrate_examples/incorrect-origin/wrong-origin.rs#L49) +is called correctly. I understand, that tag analysis is also verified to work in +the code submitted, but is there a reason why you are testing `ensure_signed` is +called instead? Does it have to do with your Finding #1 that states: "Certain +pieces of substrate code lead to crashes of MIRAI." + +➡️ The output from running `cargo mirai` is not very descriptive, +[a descriptive message can be added to the `precondition!` macro](https://github.com/facebookexperimental/MIRAI/blob/957af25ce6cc109093cec369c70fe90a1e2544f9/annotations/src/lib.rs#L625). + +### Offchain Worker / Unsigned Transaction Validation + +- `cd substrate-examples/offchain_worker` and then run `cargo mirai` +- Running the above results in the same warning as + [shown in the documentation](https://github.com/scs/MIRAI/raw/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/mirai-warning.png). +- [Uncommenting the lines in `lib.rs` as stated](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/src/lib.rs#L355) + omits the warning +- In `substrate-examples/offchain-worker/src/lib.rs` you have the following + lines. + + ```rust + // For some reason MIRAI crashes with this code + /*let avg_price = Self::average_price() + .map(|price| if &price > new_price { price - new_price } else { new_price - price }) + .unwrap_or(0);*/ + let avg_price = 0; + ``` + + I tried uncommenting the commented `avg_price` definition and `cargo mirai` + did not "crash" but did not output the expected warning. Before moving on it + would be fundamental to understand why that happens and I would not + [postpone it to the next grant](https://github.com/scs/MIRAI/tree/Milestone1_Research/substrate-examples#next-steps). + You picked two vulnerability classes to demonstrate the possibilities to move + on with MIRAI. I would then expect that the research goes as deep as needed to + answer the above (at least for the classes you picked). + +### Repository Structure + +- It would be more clear for me if the work was in its own repository to follow + the development easier and separate concerns of the testing tool from the + development of MIRAI (at least at the current stage until maintainers give + their go to merge to MIRAI). + +- In MIRAI as well as + [@bhargavbh fork](https://github.com/bhargavbh/MIRAI/tree/main/substrate_examples), + example folders are named by functionality / vulnarability class. In the + milestone 1 fork, your naming convention differs. It would be clearer to stick + the the former in my opinion. + +## User Documentation Feedback + +- The instructions on running the code are missing some parts, see + [Running the Prototype Code](#running-the-prototype-code) + +- The documentation is repetitve in both files in the Beginning ('##Running') + submitted as "User Documentation". An ideal solution would have a + documentation in one file, stating how to run the examples step by step. + +## Documentation Feedback + +The documentation is short of detail but covers the aspects stated in the +application. + +### Research / Findings + +- [@bhargavbh mentioned](https://github.com/w3f/Grants-Program/pull/1706#issuecomment-1535936716) + that it would be relevant to "document interesting vulnarability classes + (which you may find in research phase)". The Documentation Delivery + specification is: "b) with (interesting) examples of the vulnerability + classes." I cannot find that in the M1 delivery, where the focus is only on + the "incorrect origin" and "unsigned transaction" vulnerability classes. The + [RFP](https://github.com/w3f/Grants-Program/blob/master/docs/RFPs/Open/Static-Analysis-for-Runtime-Pallets.md#project-description-page_facing_up) + mentions 3 more classes, the RFP repo has a + [description and example for the "arithmetic-overflow" vulnarability class](https://github.com/bhargavbh/MIRAI/tree/main/substrate_examples/arithmetic-overflow) + and I assume more could be found in engaging with pallet developers. + +- You + [identified several **major** issues with MIRAI + substrate](https://github.com/scs/MIRAI/tree/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples#findings)): + + 1. crashes and timeouts + 2. invasiveness on code (=> adoption is hard) + 3. [problem with nesting `precondition!` and `verify!`](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/README.md#open-issues) + + To me, those issues sound severe. Are you confident that you will be able to + fix them in a next step? What is your approach? + +In general, I would welcome a more detailed description of the errors / crashes +you got with MIRAI, so others can evaluate on their systems and build upon your +work and findings with MIRAI. + +## Engagement Feedback + +The linked github comment is hidden inside the w3f grants repository. I would +consider a post in the polkadot forum or some other way to reach pallet +developers directly in order to find priorities / new vulnerability classes. From 4e3c70e20d8205c0067c25f78053501dcb404649 Mon Sep 17 00:00:00 2001 From: abhi Date: Fri, 23 Jun 2023 22:36:13 +0530 Subject: [PATCH 163/253] Sirato substrate base data display (#1) --- ...to-substrate-explorer-phase3-milestone1.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 deliveries/sirato-substrate-explorer-phase3-milestone1.md diff --git a/deliveries/sirato-substrate-explorer-phase3-milestone1.md b/deliveries/sirato-substrate-explorer-phase3-milestone1.md new file mode 100644 index 000000000..22044c409 --- /dev/null +++ b/deliveries/sirato-substrate-explorer-phase3-milestone1.md @@ -0,0 +1,20 @@ +# Milestone Delivery + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/sirato_substrate_phase3.md +* **Milestone Number:** 1 + +**Context** + +In this milestone we are delivering the functionality to view blocks, extrinsics and events information. + +To test out the feature, please follow the simple steps in this [tutorial](https://github.com/web3labs/epirus-substrate/blob/main/explorer-ui/docs/blocks-exploration.md). + +**Deliverables** +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/web3labs/epirus-substrate/blob/main/LICENSE | Apache 2.0 | +| 0b. | Documentation | Project README: https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui#readme
Video demo: https://www.loom.com/share/85fb7a8cbe6e40ba9bcadd804b7e6bc5 | | +| 0c. | Testing Guide | UI unit tests: https://github.com/web3labs/epirus-substrate/blob/main/explorer-ui/README.md#testing | | +| 0d. | Docker | UI Docker image: [ghcr.io/web3labs/epirus-substrate-ui:latest](https://github.com/web3labs/epirus-substrate/pkgs/container/epirus-substrate-ui)
Docker compose for running all explorer components locally: https://github.com/web3labs/epirus-substrate/tree/main/local-testnet | | +| 1. | Updated Explorer UI | https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui | Source code for the blocks, extrinsics data display can be found in the `./src/components/blocks/` and `./src/components/extrinsics/` folders.| +| 2. | Public explorer instance | https://substrate.sirato.xyz | Public explorer instance for Rococo-Contracts. A new menu item `Blocks` has been added to the side navbar | From 3098a25c9066ae322d0a6b1e34c0b5d1f2fe8865 Mon Sep 17 00:00:00 2001 From: Xavier Lau Date: Sat, 24 Jun 2023 02:59:48 +0800 Subject: [PATCH 164/253] Slothunter milestone 1 --- deliveries/slothunter-milestone_1.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 deliveries/slothunter-milestone_1.md diff --git a/deliveries/slothunter-milestone_1.md b/deliveries/slothunter-milestone_1.md new file mode 100644 index 000000000..24b861db8 --- /dev/null +++ b/deliveries/slothunter-milestone_1.md @@ -0,0 +1,21 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Slothunter](https://github.com/w3f/Grants-Program/blob/master/applications/slothunter.md) +* **Milestone Number:** 1 + +**Deliverables** +| Number | Deliverable | Specification | +| -----: | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0a. | License | GPLv3 | +| 0b. | Documentation | There will be a guide to tell people how to use this. | +| 0c. | Testing guide | There will be a docker file and a guide to tell the auditor how to run the tests. It will guide you how to setup an auction and do the tests. | +| 1. | Auction winner calculator | Based on the 0c., run the binary, you should see the current winner from the terminal log. | +| 2. | Notification component | Based on the 0c., run the binary, you should receive these notification correctly. | +| 3. | Auto bidding/contributing component | Based on the 0c., run the binary, you should see you are bidding/contributing your parathread from the Polkadot Apps. | +| 4. | Slothunter configuration component | Based on the 3., you can customize your bidding/contributing strategy in a toml file, you should see your bidding/contributing behavior works the same as the strategy defined. | +| 5. | Releases | Linux, macOS, Windows prebuilt binaries, and crates.io release. | + +**Additional Information** +Please follow the [guide](https://github.com/hack-ink/slothunter/blob/main/test/guide.md) to test Slothunter. From e0264d6b3b7f173422ce63038a8af7fa85ceb345 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Sat, 24 Jun 2023 01:16:24 +0600 Subject: [PATCH 165/253] Update dotflow_1-dastansam.md --- evaluations/dotflow_1-dastansam.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/dotflow_1-dastansam.md b/evaluations/dotflow_1-dastansam.md index fa258aba0..3c44be851 100644 --- a/evaluations/dotflow_1-dastansam.md +++ b/evaluations/dotflow_1-dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) - **Milestone:** 1 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) From 0ad50284abeff81a7bbba0c7f7a18586e134ce35 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Fri, 23 Jun 2023 15:51:00 -0400 Subject: [PATCH 166/253] Rename dotflow_1-dastansam.md to dotflow_1_dastansam.md --- evaluations/{dotflow_1-dastansam.md => dotflow_1_dastansam.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename evaluations/{dotflow_1-dastansam.md => dotflow_1_dastansam.md} (100%) diff --git a/evaluations/dotflow_1-dastansam.md b/evaluations/dotflow_1_dastansam.md similarity index 100% rename from evaluations/dotflow_1-dastansam.md rename to evaluations/dotflow_1_dastansam.md From 7275e1b82cb7aae0bc86583fda27c0e9fa5834bc Mon Sep 17 00:00:00 2001 From: Sergej Sakac <73715684+Szegoo@users.noreply.github.com> Date: Fri, 23 Jun 2023 22:07:46 +0200 Subject: [PATCH 167/253] Update dotflow-1.md --- deliveries/dotflow-1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/dotflow-1.md b/deliveries/dotflow-1.md index 0599d4f45..f32f15400 100644 --- a/deliveries/dotflow-1.md +++ b/deliveries/dotflow-1.md @@ -22,6 +22,6 @@ The list of things we implemented in this milestone: | 0a. | License | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/LICENSE) [Frontend](https://github.com/TheDotflow/dotflow-ui/blob/main/LICENSE) | MIT license | | 0b. | Documentation | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/README.md) | | | 0c. | Testing and Testing Guide | [Contract](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/tests.rs) [Guide](https://github.com/TheDotflow/dotflow-ink#build--test-locally) [Identity Key](https://github.com/TheDotflow/dotflow-ui/blob/main/__tests__/identityKey.test.ts) [Guide](https://github.com/TheDotflow/dotflow-ui#set-up-development-environment) | Tests for the identity contract and the Identity Key | -| 0d. | Docker | [Contract]() [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | | +| 0d. | Docker | [Contract](https://github.com/TheDotflow/dotflow-ink#docker) [Frontend](https://github.com/TheDotflow/dotflow-ui#run-with-docker) | | | 1. | Identity Contract | [Link](https://github.com/TheDotflow/dotflow-ink/blob/main/contracts/identity/lib.rs) | The Identity contract code | | 2. | My Identity page | [Frontend code](https://github.com/TheDotflow/dotflow-ui/tree/main/src) [Identity Key](https://github.com/TheDotflow/dotflow-ui/pull/15) [Address Encryption](https://github.com/TheDotflow/dotflow-ui/pull/21) | The frontend code | From 3cc34cd3fbf9d80ec096c87f9d1b9e45925ade25 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Fri, 23 Jun 2023 16:19:59 -0400 Subject: [PATCH 168/253] Update dotflow-1.md --- deliveries/dotflow-1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/dotflow-1.md b/deliveries/dotflow-1.md index f32f15400..8f8d819b4 100644 --- a/deliveries/dotflow-1.md +++ b/deliveries/dotflow-1.md @@ -2,7 +2,7 @@ **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:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) +* **Application Document:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/Dotflow.md) * **Milestone Number:** 1 **Context** From 6f42ef0dddbf64d7a00e8aeb69ee2586eadc6164 Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Sun, 25 Jun 2023 14:53:20 +0500 Subject: [PATCH 169/253] slothunter evaluation --- evaluations/slothunter_1_ali-usama.md | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 evaluations/slothunter_1_ali-usama.md diff --git a/evaluations/slothunter_1_ali-usama.md b/evaluations/slothunter_1_ali-usama.md new file mode 100644 index 000000000..468240be3 --- /dev/null +++ b/evaluations/slothunter_1_ali-usama.md @@ -0,0 +1,60 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** [slothunter](https://github.com/w3f/Grants-Program/blob/master/applications/slothunter.md) +- **Milestone:** 1 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** All evaluations by ali-usama + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|-------------------------------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| +| 0a. | Licence |
  • [x]
| [GPLv3](https://github.com/hack-ink/slothunter/blob/main/LICENSE) | Correct Licence | +| 0b. | Documentation |
  • [x]
| [Guide](https://github.com/hack-ink/slothunter/blob/main/test/guide.md),
[ReadMe](https://github.com/hack-ink/slothunter/tree/main#readme) | Well-structured docs | +| 0c. | Testing guide |
  • [x]
| [Test guide](https://github.com/hack-ink/slothunter/blob/main/test/guide.md#test-guide) | All test cases passing successfully. Outputs are attached. | +| 1. | Auction winner calculator |
  • [x]
| [result](https://github.com/hack-ink/slothunter/blob/main/src/primitive.rs#L104) | Working as per application | +| 2. | Notification component |
  • [x]
| [notifications](https://github.com/hack-ink/slothunter/blob/main/src/hunter.rs#L162) | Working as per application | +| 3. | Auto bidding/contributing component |
  • [x]
| | Working as per application | +| 4. | Slothunter configuration component |
  • [x]
| [config file](https://github.com/hack-ink/slothunter/blob/main/test/integration/rococo.toml) | Working as per application | +| 5. | Releases |
  • [x]
| [build](https://github.com/hack-ink/slothunter/blob/main/build.rs) | Working as per application | + + +## General Notes + +The delivery repo is well-structured and well-documented. The test cases most of the edge-cases and are passing successfully, without showing any issues with the docker files as well. + +The [Advance testing](https://github.com/hack-ink/slothunter/blob/main/test/guide.md#advance-test), mentioned in the testing guide, was also performed and all the features mentioned in the delivery found to be working great. +### `cargo test` +``` +running 10 tests +test hunter::util::blocks2time_should_work ... ok +test hunter::graphql::query_string_should_work ... ok +test hunter::util::crowdloan_id_of_should_work ... ok +test hunter::util::combinations_should_work ... ok +test hunter::util::position_in_ranges_should_work ... ok +test hunter::util::ranges_are_intersecting_should_work ... ok +test hunter::util::winning_offset_of_should_work ... ok +test primitive::winning_result_should_work ... ok +test primitive::minimum_bid_to_win_should_work ... ok +test hunter::util::check_uri_should_work ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s +``` + +### `cargo test --features node-test` +``` +running 11 tests +test hunter::util::blocks2time_should_work ... ok +test hunter::graphql::query_string_should_work ... ok +test hunter::util::combinations_should_work ... ok +test hunter::util::crowdloan_id_of_should_work ... ok +test hunter::util::position_in_ranges_should_work ... ok +test hunter::util::ranges_are_intersecting_should_work ... ok +test hunter::util::winning_offset_of_should_work ... ok +test primitive::winning_result_should_work ... ok +test primitive::minimum_bid_to_win_should_work ... ok +test hunter::util::check_uri_should_work ... ok +test hunter::tx::tx_should_work ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.82s + +``` \ No newline at end of file From eb38d2bd0ce7e86fb4c66e972ad23817a4d7375a Mon Sep 17 00:00:00 2001 From: dastansam Date: Sun, 25 Jun 2023 23:41:12 +0300 Subject: [PATCH 170/253] Add evaluation --- evaluations/sirato_1_dastansam.md | 277 ++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 evaluations/sirato_1_dastansam.md diff --git a/evaluations/sirato_1_dastansam.md b/evaluations/sirato_1_dastansam.md new file mode 100644 index 000000000..ca425ce9a --- /dev/null +++ b/evaluations/sirato_1_dastansam.md @@ -0,0 +1,277 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/pull/1608 +- **Milestone:** 1 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** N/A + +**Deliverables** +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/web3labs/epirus-substrate/blob/main/LICENSE | Correct license | +| 0b. | Documentation | Project README: https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui#readme
Video demo: https://www.loom.com/share/85fb7a8cbe6e40ba9bcadd804b7e6bc5 | Well documented | +| 0c. | Testing Guide | UI unit tests: https://github.com/web3labs/epirus-substrate/blob/main/explorer-ui/README.md#testing | UI, coverage, analysis tests and linting are passing. Logs attached below. | +| 0d. | Docker | UI Docker image: [ghcr.io/web3labs/epirus-substrate-ui:latest](https://github.com/web3labs/epirus-substrate/pkgs/container/epirus-substrate-ui)
Docker compose for running all explorer components locally: https://github.com/web3labs/epirus-substrate/tree/main/local-testnet | Was able to compile and run the docker image. When running the local testnet with docker compose, UI is not running (logs below) | +| 1. | Updated Explorer UI | https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui | Source code for the blocks, extrinsics data display can be found in the `./src/components/blocks/` and `./src/components/extrinsics/` folders. | Can confirm the new files are present and changes have been made acoording to the application. Explorer compiles and runs successfully. | +| 2. | Public explorer instance | https://substrate.sirato.xyz | Public explorer instance for Rococo-Contracts. A new menu item `Blocks` has been added to the side navbar | New navbar is present and the explorer is running | + +## General Notes + +In general, it's documented well and majority of the instructions are clear. Code is well written and structured. The only issue I had was with running the local testnet with docker compose. The UI container is not running, I attached the logs related to `explorer-ui` container [below](#logs). + +When installing the dependencies, I couldn't do it with simple `npm install` command, I had to force install the dependencies with `npm install --force`. I am not completely sure if it's because of some upstream issues with npm or dependencies, but I think it should either be fixed to work with `npm install` or documented that it should be installed with `npm install --force`. + +### Code suggestions + +I noticed that `.env` file is not gitignored. It's not a big deal, but it's better to keep it out of the repository. You can set the environment variables in the `.env` file in `.env.example` and use it as a fallback file. + +### Logs + +
+ + Test outputs + +```sh +npm test + +Test Suites: 68 passed, 68 total +Tests: 187 passed, 187 total +Snapshots: 0 total +Time: 6.56 s +Ran all test suites. +``` + +
+ +
+ + Test coverage + +```sh +File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s +---------------------------------|---------|----------|---------|---------|--------------------------------- +All files | 86.67 | 77.41 | 84.22 | 86.74 | + src | 100 | 66.66 | 100 | 100 | + App.tsx | 100 | 66.66 | 100 | 100 | 28-34 + src/components | 50 | 100 | 50 | 50 | + BlocksHomePage.tsx | 0 | 100 | 0 | 0 | 8 + HomePage.tsx | 100 | 100 | 100 | 100 | + src/components/accounts | 94.44 | 92.5 | 90 | 94.44 | + AccountAddress.tsx | 100 | 100 | 100 | 100 | + AccountLink.tsx | 100 | 100 | 100 | 100 | + AccountList.tsx | 100 | 100 | 100 | 100 | + AccountPage.tsx | 93.33 | 70 | 100 | 93.33 | 93 + AccountRow.tsx | 100 | 100 | 100 | 100 | + AccountsPage.tsx | 50 | 100 | 50 | 50 | 29 + src/components/activities | 81.39 | 74.28 | 75 | 81.39 | + ActivitiesPage.tsx | 75 | 83.33 | 50 | 75 | 25,50-60 + ActivityList.tsx | 100 | 100 | 100 | 100 | + ActivityRow.tsx | 76.19 | 65.21 | 66.66 | 76.19 | 27-34,71 + ActivityTab.tsx | 100 | 100 | 100 | 100 | + src/components/badges | 100 | 100 | 100 | 100 | + BlockBadge.tsx | 100 | 100 | 100 | 100 | + CheckBadge.tsx | 100 | 100 | 100 | 100 | + CodeBadge.tsx | 100 | 100 | 100 | 100 | + CrossBadge.tsx | 100 | 100 | 100 | 100 | + src/components/blocks | 93.54 | 66.66 | 100 | 93.54 | + BlockId.tsx | 66.66 | 62.5 | 100 | 66.66 | 49 + BlockLink.tsx | 100 | 83.33 | 100 | 100 | 24 + BlockList.tsx | 100 | 66.66 | 100 | 100 | 82-88 + BlockPage.tsx | 92.85 | 75 | 100 | 92.85 | 78 + BlockRow.tsx | 100 | 40 | 100 | 100 | 13-38 + BlocksPage.tsx | 100 | 100 | 100 | 100 | + src/components/blocks/events | 100 | 83.33 | 100 | 100 | + EventList.tsx | 100 | 83.33 | 100 | 100 | 72 + EventRow.tsx | 100 | 100 | 100 | 100 | + EventsTab.tsx | 100 | 100 | 100 | 100 | + src/components/codes | 90.62 | 77.77 | 80.95 | 91.8 | + BinaryTab.tsx | 88.88 | 75 | 100 | 100 | 24 + CodeHash.tsx | 100 | 100 | 100 | 100 | + CodeLink.tsx | 100 | 100 | 100 | 100 | + CodeList.tsx | 100 | 50 | 100 | 100 | 57,71-77 + CodePage.tsx | 95.23 | 73.33 | 100 | 95.23 | 106 + CodeRow.tsx | 100 | 100 | 100 | 100 | + CodeTab.tsx | 33.33 | 100 | 33.33 | 33.33 | 16-30 + CodesPage.tsx | 33.33 | 100 | 33.33 | 33.33 | 29-37 + HexView.tsx | 100 | 100 | 100 | 100 | + src/components/codes/sources | 88.18 | 84.5 | 87.14 | 89.03 | + ErrorView.tsx | 100 | 100 | 100 | 100 | + FileBox.tsx | 100 | 100 | 100 | 100 | + FileList.tsx | 81.81 | 75 | 66.66 | 90 | 40 + FileView.tsx | 95.45 | 91.66 | 100 | 95.45 | 53 + FilesNavigation.tsx | 87.8 | 91.3 | 86.66 | 86.84 | 33,44,109,118,123 + MetadataView.tsx | 86.36 | 80 | 100 | 86.36 | 80-83,95 + ProcessingView.tsx | 100 | 85.71 | 100 | 100 | 24-30 + SourceCode.tsx | 100 | 100 | 100 | 100 | + SourceTab.tsx | 96.55 | 86.2 | 100 | 96.55 | 45 + UnverifiedView.tsx | 76.47 | 77.5 | 72.22 | 78.46 | 39-40,44-47,111-112,163-169,284 + VerifiedView.tsx | 100 | 100 | 100 | 100 | + src/components/commons | 82.35 | 75.24 | 86.11 | 82.35 | + Alert.tsx | 100 | 100 | 100 | 100 | + Box.tsx | 100 | 100 | 100 | 100 | + Copy.tsx | 83.33 | 100 | 66.66 | 83.33 | 14 + Definitions.tsx | 75 | 80 | 100 | 75 | 14 + ExtrinsicSummary.tsx | 100 | 61.53 | 100 | 100 | 11,47-49 + Label.tsx | 100 | 100 | 100 | 100 | + Lane.tsx | 100 | 100 | 100 | 100 | + List.tsx | 83.33 | 80 | 80 | 83.33 | 37 + Segment.tsx | 100 | 92.3 | 100 | 100 | 37 + Select.tsx | 85.71 | 69.23 | 75 | 85.71 | 122-129 + Tag.tsx | 100 | 100 | 100 | 100 | + Text.tsx | 58.82 | 57.14 | 75 | 58.82 | 10,26-33,51 + Toast.tsx | 100 | 100 | 100 | 100 | + Tooltip.tsx | 100 | 100 | 100 | 100 | + src/components/contracts | 89.39 | 71.92 | 84 | 89.39 | + ContractList.tsx | 100 | 66.66 | 100 | 100 | 79-85 + ContractPage.tsx | 94.44 | 61.9 | 100 | 94.44 | 137 + ContractRow.tsx | 100 | 0 | 100 | 100 | 13 + ContractTab.tsx | 75 | 100 | 75 | 75 | 38 + ContractTermination.tsx | 100 | 100 | 100 | 100 | + ContractUpgrade.tsx | 100 | 100 | 100 | 100 | + ContractsPage.tsx | 33.33 | 100 | 33.33 | 33.33 | 28-36 + DataView.tsx | 88 | 80 | 87.5 | 88 | 44,116,121 + src/components/contracts/events | 84.61 | 50 | 71.42 | 84.61 | + EventList.tsx | 100 | 50 | 100 | 100 | 63,77-83 + EventRow.tsx | 100 | 100 | 100 | 100 | + EventTab.tsx | 33.33 | 100 | 33.33 | 33.33 | 24-27 + src/components/extrinsics | 93.02 | 61.11 | 100 | 93.02 | + EventList.tsx | 100 | 66.66 | 100 | 100 | 60-66 + EventRow.tsx | 100 | 100 | 100 | 100 | + EventsTab.tsx | 100 | 100 | 100 | 100 | + ExtrinsicId.tsx | 66.66 | 50 | 100 | 66.66 | 36 + ExtrinsicLink.tsx | 75 | 66.66 | 100 | 75 | 22 + ExtrinsicPage.tsx | 92.85 | 64.28 | 100 | 92.85 | 86 + ExtrinsicRow.tsx | 100 | 33.33 | 100 | 100 | 13-29 + ExtrinsicsList.tsx | 100 | 66.66 | 100 | 100 | 49-55 + ExtrinsicsTab.tsx | 100 | 100 | 100 | 100 | + src/components/loading | 93.33 | 100 | 88.88 | 93.33 | + Loading.tsx | 93.33 | 100 | 88.88 | 93.33 | 29 + src/components/navigation | 70 | 55.55 | 55 | 69.23 | + Breadcrumbs.tsx | 100 | 100 | 100 | 100 | + MainNav.tsx | 36.36 | 18.18 | 14.28 | 36.36 | 71-118,268-282 + Pagination.tsx | 58.33 | 60 | 25 | 58.33 | 9,17-18,31-47 + SideBar.tsx | 100 | 87.5 | 100 | 100 | 22 + Tabs.tsx | 100 | 100 | 100 | 100 | + src/components/query | 89.55 | 75.67 | 86.95 | 89.39 | + Filters.tsx | 86.84 | 58.33 | 92.85 | 86.48 | 31,127-131 + ListQuery.tsx | 96.15 | 83.33 | 83.33 | 96.15 | 56 + SortBy.tsx | 66.66 | 100 | 66.66 | 66.66 | 22 + src/components/query/filters | 63.04 | 66.66 | 72.22 | 63.04 | + Chip.tsx | 100 | 100 | 100 | 100 | + DateRangeFilter.tsx | 17.64 | 22.22 | 25 | 17.64 | 9-15,35-59 + EnumTypeFilter.tsx | 92.3 | 90.9 | 100 | 92.3 | 58 + TextFilter.tsx | 86.66 | 85.71 | 66.66 | 86.66 | 10-13 + src/components/query/search | 72.61 | 61.53 | 61.9 | 72.28 | + SearchBox.tsx | 72.36 | 60.6 | 61.11 | 72 | 66-67,79-80,114,131-153,229-238 + SearchResults.tsx | 75 | 66.66 | 66.66 | 75 | 32,57 + src/components/responsive | 100 | 87.5 | 100 | 100 | + Media.tsx | 100 | 87.5 | 100 | 100 | 10 + src/contexts | 100 | 100 | 100 | 100 | + ChainContext.tsx | 100 | 100 | 100 | 100 | + chainNames.ts | 100 | 100 | 100 | 100 | + src/formats | 100 | 100 | 100 | 100 | + bytes.ts | 100 | 100 | 100 | 100 | + text.ts | 100 | 100 | 100 | 100 | + time.ts | 100 | 100 | 100 | 100 | + units.ts | 100 | 100 | 100 | 100 | + src/highlight | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/hooks | 72.22 | 75 | 80 | 68.75 | + useSquid.ts | 72.22 | 75 | 80 | 68.75 | 41-44,51-52,61 + src/utils | 100 | 100 | 100 | 100 | + args.ts | 100 | 100 | 100 | 100 | + errors.ts | 100 | 100 | 100 | 100 | + hashcode.ts | 100 | 100 | 100 | 100 | + hex.ts | 100 | 100 | 100 | 100 | + strings.ts | 100 | 100 | 100 | 100 | +---------------------------------|---------|----------|---------|---------|--------------------------------- + +Test Suites: 68 passed, 68 total +Tests: 187 passed, 187 total +Snapshots: 0 total +Time: 6.152 s +Ran all test suites. +``` + +
+ +
+ +Linting + +```sh + +> explorer-ui@0.1.0 lint:fix +> eslint --fix 'src/**/*.{js,jsx,ts,tsx}' + + +/Users/dastan@enjin.io/Documents/dastan/evaluations/epirus-substrate/explorer-ui/src/components/blocks/BlockList.test.tsx + 6:10 error 'contractByDeployer' is defined but never used no-unused-vars + +/Users/dastan@enjin.io/Documents/dastan/evaluations/epirus-substrate/explorer-ui/src/components/blocks/BlocksPage.test.tsx + 8:10 error 'Edge' is defined but never used no-unused-vars + 9:10 error 'LightBlock' is defined but never used no-unused-vars + +/Users/dastan@enjin.io/Documents/dastan/evaluations/epirus-substrate/explorer-ui/src/components/blocks/events/EventRow.test.tsx + 6:10 error 'LightExtrinsic' is defined but never used no-unused-vars + +/Users/dastan@enjin.io/Documents/dastan/evaluations/epirus-substrate/explorer-ui/src/components/extrinsics/EventRow.test.tsx + 6:10 error 'LightExtrinsic' is defined but never used no-unused-vars + +✖ 5 problems (5 errors, 0 warnings) +``` + +
+ +
+ +Docker + +```sh +> docker build -t epirus-substrate-ui:develop . + + => exporting to image 0.1s + => => exporting layers 0.1s + => => writing image sha256:ca85d4c333e5bd81318c475e69a740e0ce3d59df4707f1cdd1282a39ce053320 0.0s + => => naming to docker.io/library/epirus-substrate-ui:develop +``` + +
+ +
+ +Local testnet docker compose + +```sh +explorer-ui | +explorer-ui | Provided flags: +explorer-ui | --config-name = ./runtime-env.js +explorer-ui | --env-file = ./.env +explorer-ui | +explorer-ui | Your environment variables will be available on 'window.__RUNTIME_CONFIG__' +explorer-ui | +explorer-ui | Successfully generated your runtime-env config! +explorer-ui | Result: window.__RUNTIME_CONFIG__ = {"REACT_APP_SQUID_ENDPOINT":"http://localhost:4000/graphql","REACT_APP_SQUID_ARCHIVE_ENDPOINT":"http://localhost:4444/graphql","REACT_APP_SOURCE_CODE_ENABLED":"true","REACT_APP_VERIFIER_ENDPOINT":"http://127.0.0.1:3001","REACT_APP_VERIFIER_WS_ENDPOINT":"ws://127.0.0.1:3001"}; +explorer-ui | +explorer-ui | Thank you for using runtime-env-cra! +explorer-ui | +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: using the "epoll" event method +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: nginx/1.24.0 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4) +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: OS: Linux 5.15.49-linuxkit +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker processes +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker process 24 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker process 25 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker process 26 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker process 27 +explorer-ui | 2023/06/25 20:24:49 [notice] 1#1: start worker process 30 +explorer-ui | 2023/06/25 20:24:49 [emerg] 26#26: io_setup() failed (38: Function not implemented) +explorer-ui | 2023/06/25 20:24:49 [emerg] 25#25: io_setup() failed (38: Function not implemented) +explorer-ui | 2023/06/25 20:24:49 [emerg] 27#27: io_setup() failed (38: Function not implemented) +explorer-ui | 2023/06/25 20:24:49 [emerg] 30#30: io_setup() failed (38: Function not implemented) +explorer-ui | 2023/06/25 20:24:49 [emerg] 24#24: io_setup() failed (38: Function not implemented) +``` + +
\ No newline at end of file From 8297f7808da67fe8e19ad06ef2e82d1e271b0b9a Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Sun, 25 Jun 2023 23:45:54 +0300 Subject: [PATCH 171/253] Update sirato_1_dastansam.md --- evaluations/sirato_1_dastansam.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/evaluations/sirato_1_dastansam.md b/evaluations/sirato_1_dastansam.md index ca425ce9a..12eeed0e6 100644 --- a/evaluations/sirato_1_dastansam.md +++ b/evaluations/sirato_1_dastansam.md @@ -22,9 +22,13 @@ In general, it's documented well and majority of the instructions are clear. Cod When installing the dependencies, I couldn't do it with simple `npm install` command, I had to force install the dependencies with `npm install --force`. I am not completely sure if it's because of some upstream issues with npm or dependencies, but I think it should either be fixed to work with `npm install` or documented that it should be installed with `npm install --force`. +### Explorer running locally + +Explorer local run + ### Code suggestions -I noticed that `.env` file is not gitignored. It's not a big deal, but it's better to keep it out of the repository. You can set the environment variables in the `.env` file in `.env.example` and use it as a fallback file. +I noticed that `.env` file is not gitignored. It's not a big deal, but it's better to keep it out of the repository. You can set the environment variables in the `.env` file in `.env.example` and use it as a fallback file to `.env`. `.env` should be used for production variables, I think. ### Logs @@ -274,4 +278,4 @@ explorer-ui | 2023/06/25 20:24:49 [emerg] 30#30: io_setup() faile explorer-ui | 2023/06/25 20:24:49 [emerg] 24#24: io_setup() failed (38: Function not implemented) ``` - \ No newline at end of file + From 309e4a7116767e76f7787b241ab187bc14f66e3f Mon Sep 17 00:00:00 2001 From: dastansam Date: Sun, 25 Jun 2023 23:47:49 +0300 Subject: [PATCH 172/253] Update table --- evaluations/sirato_1_dastansam.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/sirato_1_dastansam.md b/evaluations/sirato_1_dastansam.md index ca425ce9a..d067cba14 100644 --- a/evaluations/sirato_1_dastansam.md +++ b/evaluations/sirato_1_dastansam.md @@ -13,7 +13,7 @@ | 0b. | Documentation | Project README: https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui#readme
Video demo: https://www.loom.com/share/85fb7a8cbe6e40ba9bcadd804b7e6bc5 | Well documented | | 0c. | Testing Guide | UI unit tests: https://github.com/web3labs/epirus-substrate/blob/main/explorer-ui/README.md#testing | UI, coverage, analysis tests and linting are passing. Logs attached below. | | 0d. | Docker | UI Docker image: [ghcr.io/web3labs/epirus-substrate-ui:latest](https://github.com/web3labs/epirus-substrate/pkgs/container/epirus-substrate-ui)
Docker compose for running all explorer components locally: https://github.com/web3labs/epirus-substrate/tree/main/local-testnet | Was able to compile and run the docker image. When running the local testnet with docker compose, UI is not running (logs below) | -| 1. | Updated Explorer UI | https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui | Source code for the blocks, extrinsics data display can be found in the `./src/components/blocks/` and `./src/components/extrinsics/` folders. | Can confirm the new files are present and changes have been made acoording to the application. Explorer compiles and runs successfully. | +| 1. | Updated Explorer UI | https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui | Can confirm the new folders (`./src/components/blocks/` and `./src/components/extrinsics/`) are present and changes have been made acoording to the application. Explorer compiles and runs successfully. | | 2. | Public explorer instance | https://substrate.sirato.xyz | Public explorer instance for Rococo-Contracts. A new menu item `Blocks` has been added to the side navbar | New navbar is present and the explorer is running | ## General Notes From 9718a04c30f60b558f53e0ea57efbc2f0736aaf9 Mon Sep 17 00:00:00 2001 From: dastansam Date: Sun, 25 Jun 2023 23:48:47 +0300 Subject: [PATCH 173/253] Update table again --- evaluations/sirato_1_dastansam.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/sirato_1_dastansam.md b/evaluations/sirato_1_dastansam.md index fbd940f1c..072c7a80f 100644 --- a/evaluations/sirato_1_dastansam.md +++ b/evaluations/sirato_1_dastansam.md @@ -14,7 +14,7 @@ | 0c. | Testing Guide | UI unit tests: https://github.com/web3labs/epirus-substrate/blob/main/explorer-ui/README.md#testing | UI, coverage, analysis tests and linting are passing. Logs attached below. | | 0d. | Docker | UI Docker image: [ghcr.io/web3labs/epirus-substrate-ui:latest](https://github.com/web3labs/epirus-substrate/pkgs/container/epirus-substrate-ui)
Docker compose for running all explorer components locally: https://github.com/web3labs/epirus-substrate/tree/main/local-testnet | Was able to compile and run the docker image. When running the local testnet with docker compose, UI is not running (logs below) | | 1. | Updated Explorer UI | https://github.com/web3labs/epirus-substrate/tree/main/explorer-ui | Can confirm the new folders (`./src/components/blocks/` and `./src/components/extrinsics/`) are present and changes have been made acoording to the application. Explorer compiles and runs successfully. | -| 2. | Public explorer instance | https://substrate.sirato.xyz | Public explorer instance for Rococo-Contracts. A new menu item `Blocks` has been added to the side navbar | New navbar is present and the explorer is running | +| 2. | Public explorer instance | https://substrate.sirato.xyz | A new menu item `Blocks` has been added to the side navbar. New navbar is present and the explorer is running | ## General Notes From b472a71cd7016fb9657e8a8225d1e0bea05d8b49 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:08:11 -0300 Subject: [PATCH 174/253] Update genesisdao_3_dsm-w3f.md --- evaluations/genesisdao_3_dsm-w3f.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/evaluations/genesisdao_3_dsm-w3f.md b/evaluations/genesisdao_3_dsm-w3f.md index 325ab8217..c7de7e9ce 100644 --- a/evaluations/genesisdao_3_dsm-w3f.md +++ b/evaluations/genesisdao_3_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/GenesisDAO.md - **Milestone:** 3 - **Kusama Identity:** Address @@ -9,13 +9,28 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | Licence |
  • [x]
| n/a | | -| 0b. | Documentation |
  • [ ]
| n/a | Not fully evaluated yet. | -| 0c. | Testing and Testing Guide |
  • [ ]
| https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/docs/testing.md | Not fully evaluated yet. | -| 0d. | Docker |
  • [ ]
| [node Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/Dockerfile), [frontend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-frontend/blob/main/Dockerfile), [backend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-service/blob/main/Dockerfile) | Not fully evaluated yet. | +| 0b. | Documentation |
  • [x]
| n/a | | +| 0c. | Testing and Testing Guide |
  • [x]
| | +| 0d. | Docker |
  • [x]
| [node Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-node/blob/main/Dockerfile), [frontend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-frontend/blob/main/Dockerfile), [backend Dockerfile](https://github.com/deep-ink-ventures/genesis-dao-service/blob/main/Dockerfile) | | | 0e. | Article |
  • [x]
| [Link](https://docs.google.com/document/d/1c3B9iyoHE7cP5a5qYwa-A_0Vy5zo1uAo-S1vcZ5h_B4/edit#heading=h.obore8uev3ox) | | -| 1. | Substrate module: pallet_dao_vote |
  • [ ]
| [Link](https://github.com/deep-ink-ventures/genesis-dao-node/tree/main/pallets/dao-votes) | Not fully evaluated yet. | -| 2. | Frontend Implementation |
  • [ ]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | Not fully evaluated yet. | -| 3. | Product Touches |
  • [ ]
| n/a | Not fully evaluated yet. | +| 1. | Substrate module: pallet_dao_vote |
  • [x]
| [Link](https://github.com/deep-ink-ventures/genesis-dao-node/tree/main/pallets/dao-votes) | | +| 2. | Frontend Implementation |
  • [x]
| [Website](https://genesis-dao.org). [Repo](https://github.com/deep-ink-ventures/genesis-dao-frontend) | | +| 3. | Product Touches |
  • [x]
| n/a | | + +## Evaluation V6 + +The problem reported in Evaluation V5 was fixed. But I have a similar problem from Evaluation V4. Probably is a small problem in the frontend of the application, and this do not prevent the acceptions of the milestone since it is mostly working. I recorded the problem to help to fix it. + +In this video, I show the creation of the DAO with 1,000,000 tokens, the pop-up error, and the frontend didn't update the voting count, but the voting is registered in the pokadot.js. + +https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/266c7475-801d-451d-9ccc-f72b83fd4c84 + +In this other video, I show the application working fine when I created the DAO with 100,000 tokens. + + +https://github.com/w3f/Grant-Milestone-Delivery/assets/112647953/67d1a362-9f9a-4665-8c77-30b46ef06f2f + + ## Evaluation V5 From eeee5847ae15dba72db392a55679e53c9a0dbe2a Mon Sep 17 00:00:00 2001 From: dastansam Date: Tue, 27 Jun 2023 00:40:16 +0300 Subject: [PATCH 175/253] Change delivery status --- evaluations/sirato_1_dastansam.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/sirato_1_dastansam.md b/evaluations/sirato_1_dastansam.md index 072c7a80f..f998b77fe 100644 --- a/evaluations/sirato_1_dastansam.md +++ b/evaluations/sirato_1_dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/pull/1608 - **Milestone:** 1 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) From 8e77371abebd366efffd6a90efbc4e095ecd3165 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:29:28 -0300 Subject: [PATCH 176/253] Update ismp_2_dsm-w3f.md --- evaluations/ismp_2_dsm-w3f.md | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/evaluations/ismp_2_dsm-w3f.md b/evaluations/ismp_2_dsm-w3f.md index 40e78e002..a55dfd82a 100644 --- a/evaluations/ismp_2_dsm-w3f.md +++ b/evaluations/ismp_2_dsm-w3f.md @@ -21,6 +21,85 @@ | 1e. | Runtime-APIs |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| Not fully evaluated yet | | 1f. | Bechmarks |
  • [ ]
|[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| Not fully evaluated yet | +## Evaluation V3 + +While running [these instructions for integration test](https://github.com/polytope-labs/tesseract/tree/blake2b#integration-test-guide) (private repo) I had some problems: + +In Step 3, to spin-up the network, I used the polkadot-lauch specification from [here](https://github.com/polytope-labs/hyperbridge/tree/blake2b/scripts/polkadot-launch) to spin-up the parachains, but the script was not able to run the relaychain. I tried first starting manually Polkadot version 0.9.43 but this caused a problem with the metadata version in the step 4 of the tutorial, see the error below. + +``` +subxt codegen --url=ws://localhost:9944 | rustfmt --edition=2018 --emit=stdout > /home/user/workspace/tesseract-blake2b/parachain/src/codegen/relay_chain.rs +error: unknown start of token: \u{1b} + --> :1:1 + | +1 | Could not decode metadata, only V14 metadata is supported: Cannot try_into() to Metadata: unsupported metadata version + | ^ + +error: unknown start of token: \u{1b} + --> :1:124 + | +1 | Could not decode metadata, only V14 metadata is supported: Cannot try_into() to Metadata: unsupported metadata version + | ^ + +error: this file contains an unclosed delimiter + --> :1:130 + | +1 | Could not decode metadata, only V14 metadata is supported: Cannot try_into() to Metadata: unsupported metadata version + | - - ^ + | | | + | unclosed delimiter unclosed delimiter +``` + +Then I changed to version 0.9.42 and the metadata problem was solved, being able to run `subxt codegen`. However, in step 5, there are some compilation errors in the code generated in step 4. See below: + +``` +error[E0405]: cannot find trait `StaticExtrinsic` in module `subxt::blocks` + --> parachain/src/codegen/relay_chain.rs:21013:39 + | +21013 | impl ::subxt::blocks::StaticExtrinsic for ForceSubscribeVersionNotify { + | ^^^^^^^^^^^^^^^ not found in `subxt::blocks` + +error[E0405]: cannot find trait `StaticExtrinsic` in module `subxt::blocks` + --> parachain/src/codegen/relay_chain.rs:21030:39 + | +21030 | impl ::subxt::blocks::StaticExtrinsic for ForceUnsubscribeVersionNotify { + | ^^^^^^^^^^^^^^^ not found in `subxt::blocks` + +error[E0405]: cannot find trait `StaticExtrinsic` in module `subxt::blocks` + --> parachain/src/codegen/relay_chain.rs:21051:39 + | +21051 | impl ::subxt::blocks::StaticExtrinsic for LimitedReserveTransferAssets { + | ^^^^^^^^^^^^^^^ not found in `subxt::blocks` + +error[E0405]: cannot find trait `StaticExtrinsic` in module `subxt::blocks` + --> parachain/src/codegen/relay_chain.rs:21072:39 + | +21072 | impl ::subxt::blocks::StaticExtrinsic for LimitedTeleportAssets { + | ^^^^^^^^^^^^^^^ not found in `subxt::blocks` + +For more information about this error, try `rustc --explain E0405`. +``` + +I changed back the code generated for the parachain and relaychain to the ones available in the repository. However, using this way the test runs but stay stuck and don't complete. + +``` +cargo +nightly test -p tesseract-integration-tests test_messaging_relay -- --nocapture +⚡ Found 3 strongly connected components which includes at least one cycle each +cycle(001) ∈ α: ApprovalVoting ~~{"DisputeCoordinatorMessage"}~~> DisputeCoordinator ~~{"ApprovalVotingMessage"}~~> * +cycle(002) ∈ β: CandidateBacking ~~{"StatementDistributionMessage"}~~> StatementDistribution ~~{"CandidateBackingMessage"}~~> * +cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~> * + Compiling tesseract-parachain v0.1.0 (/home/diogo/workspace/w3f/tesseract-blake2b/parachain) + Compiling tesseract-integration-tests v0.1.0 (/home/diogo/workspace/w3f/tesseract-blake2b/integration-tests) + Finished test [unoptimized + debuginfo] target(s) in 3m 30s + Running unittests src/lib.rs (target/debug/deps/tesseract_integration_tests-452855ab9d4ed01a) + +running 1 test +test test_messaging_relay has been running for over 60 seconds +``` + +I think we could have a problem with the version of the relaychain. What is the exact version you are using? Any other configuration that I need to perform to run these tests? + + ## Evaluation V2 ### Documentation From 56f78401f6f51cd303e8a9cfb9a7c65845d326c2 Mon Sep 17 00:00:00 2001 From: Taehoon Kim Date: Tue, 27 Jun 2023 21:26:09 +0200 Subject: [PATCH 177/253] Update: external evaluation of Validated Streams milestone 2 (#896) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sebastian Müller --- evaluations/validated-streams_2_arahangua.md | 489 +------------------ 1 file changed, 11 insertions(+), 478 deletions(-) diff --git a/evaluations/validated-streams_2_arahangua.md b/evaluations/validated-streams_2_arahangua.md index d91408e3a..fcc90c374 100755 --- a/evaluations/validated-streams_2_arahangua.md +++ b/evaluations/validated-streams_2_arahangua.md @@ -1,19 +1,19 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/validated-streams.md - **Milestone:** 2 - **Kusama Identity:** [HZrUkonEQc9tReQNndBTML5NbYWBaj8KGaHUGGxwq3jP9PY](https://explorer.polkascan.io/kusama/account/HZrUkonEQc9tReQNndBTML5NbYWBaj8KGaHUGGxwq3jP9PY) -- **Previously successfully merged evaluation:** All by semuelle +- **Previously successfully merged evaluation:** none | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | :------: | ---- |----------------- | -| **0a.** | License |
  • [x]
| [LICENSE](https://github.com/comrade-coop/validated-streams/blob/5dc862fc2fe3cab7e8b6e2272b89ff21607a4038/LICENSE) | MIT | -| **0b.** | Documentation |
  • [x]
| [README](https://github.com/comrade-coop/validated-streams/blob/feed169d51143e1fd303a14a9aaaaaddb6f2a831/README.md) | easy to follow description with a schematic | -| **0c.** | Testing and Testing Guide |
  • [ ]
| [Running tests](https://github.com/comrade-coop/validated-streams/blob/feed169d51143e1fd303a14a9aaaaaddb6f2a831/README.md#testing)
[proofs](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/proofs/tests.rs)
[events](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/events/tests.rs)
[pallet](https://github.com/comrade-coop/validated-streams/blob/a8a55ab7f2f16401c8aefefccdcdfa4638ddb39a/pallet/src/tests.rs) |
  • With 'on-chain proofs' : the project could be built successfully with ```cargo build --release --no-default-features```. However, the tests for 'on-chain proofs' cases failed (see Outstanding Issues below)
  • Without 'on-chain proofs' : `cargo tarpaulin` reports ~33% test coverage for the 'consensus' crate with 19 tests and ~7% coverage for the 'pallet' with 3 tests. The links provided for ['proofs'](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/proofs/tests.rs) and ['events'](https://github.com/comrade-coop/validated-streams/blob/main/vstreams/src/events/tests.rs) seem to point at invalid urls. Presumably these links are outdated with the recent changes (i.e., renaming 'vstream' to 'consensus_validated_streams', integration of 'proof'/'event' to the 'consensus' crate).
  • Could not build benchmarks following the instruction (see Outstanding Issues).
| -| **0d.** | Docker |
  • [ ]
| [Main](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/Dockerfile)
[IRC](https://github.com/comrade-coop/validated-streams/blob/beb99456091f33f1f1b3cf6a555ff656c107e9cf/samples/irc/Dockerfile)
[Test script](https://github.com/comrade-coop/validated-streams/blob/main/scripts/run-example.sh)
[Benchmark](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/samples/tps-benchmark/Dockerfile) |
  • Again, [Test script](https://github.com/comrade-coop/validated-streams/blob/main/scripts/run-example.sh) seems to point at the old url. Shouldn't it be https://github.com/comrade-coop/validated-streams/tree/main/samples/basic/run_example.sh ?
  • Also path to the stream.proto should be corrected (in run_example.sh) if we intend to use the same sample solution as in M1 for the integration test
| +| **0a.** | License |
  • [x]
| [LICENSE](https://github.com/comrade-coop/validated-streams/blob/6f9478b84ea5730fceaae50c04b62e1ecee88fed/LICENSE) | MIT | +| **0b.** | Documentation |
  • [x]
| [README](https://github.com/comrade-coop/validated-streams/blob/6f9478b84ea5730fceaae50c04b62e1ecee88fed/README.md) | easy to follow description with a schematic. | +| **0c.** | Testing and Testing Guide |
  • [x]
| [Running tests](https://github.com/comrade-coop/validated-streams/blob/6f9478b84ea5730fceaae50c04b62e1ecee88fed/README.md#testing)
[proofs](https://github.com/comrade-coop/validated-streams/blob/6f9478b84ea5730fceaae50c04b62e1ecee88fed/consensus/src/proofs/tests.rs)
[events](https://github.com/comrade-coop/validated-streams/blob/b5a9437b2e59881a64c63596ded9144f72a39ad5/consensus/src/events/tests.rs)
[pallet](https://github.com/comrade-coop/validated-streams/blob/a8a55ab7f2f16401c8aefefccdcdfa4638ddb39a/pallet/src/tests.rs) |
  • with 'on-chain proofs' : `cargo tarpaulin` reports ~60% test coverage for 'consensus' crate with 19 tests and ~70% coverage for 'pallet' crate with 8 tests.
  • Without 'on-chain proofs': `cargo tarpaulin` reports ~60% test coverage for the 'consensus' crate with 19 tests and ~50% coverage for the 'pallet' with 3 tests. | +| **0d.** | Docker |
    • [x]
    | [Main](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/Dockerfile)
    [IRC](https://github.com/comrade-coop/validated-streams/blob/beb99456091f33f1f1b3cf6a555ff656c107e9cf/samples/irc/Dockerfile)
    [Test script](https://github.com/comrade-coop/validated-streams/blob/f0acdceb66846ab001e652a14a38a71a7ec6b05c/samples/basic/run-example.sh)
    [Benchmark](https://github.com/comrade-coop/validated-streams/blob/64db1c20f561115f807f41c5da58bca7b3325d5a/samples/tps-benchmark/Dockerfile) | Docker examples are working as intended. | | **0e.** | Article |
    • [x]
    |[Google Docs link](https://docs.google.com/document/u/1/d/12EsVUDydsDWfngQP6-zYRiC-dFbn696Evr3VSxgcpjU/edit) | -- -| 1. | Substrate module: Witnessed events block import |
    • [x]
    |[Old](https://github.com/comrade-coop/validated-streams/blob/fa7e20c5f0bf34cd8b89f975eceb6e29955202ab/node/src/streams/services/witness_block_import.rs)

    [New](https://github.com/comrade-coop/validated-streams/blob/9d1dd933395f9cca69834ccb43b3330922d531c4/consensus/src/block_import.rs) | The new implementation matches the description in delivery documentation. | +| 1. | Substrate module: Witnessed events block import |
    • [x]
    |[Old](https://github.com/comrade-coop/validated-streams/blob/fa7e20c5f0bf34cd8b89f975eceb6e29955202ab/node/src/streams/services/witness_block_import.rs)

    [New](https://github.com/comrade-coop/validated-streams/blob/9d1dd933395f9cca69834ccb43b3330922d531c4/consensus/src/block_import.rs) | The new implementation matches the description in the delivery documentation. | | 2. | Real-life testing |
    • [x]
    | [TPS benchmark](https://github.com/comrade-coop/validated-streams/tree/c083a83ad497dcb338501c66691680b1acfc29f0/samples/tps-benchmark) | With the use of Docker, the benchmark runs smoothly. However, I was unable to test the benchmark that didn't use Docker. (I didn't have access to multiple hardwares to test it.) | | 3. | .NET client sample |
    • [x]
    | [IRC sample](https://github.com/comrade-coop/validated-streams/tree/5dc862fc2fe3cab7e8b6e2272b89ff21607a4038/samples/irc) | IRC sample worked nicely @@ -21,481 +21,14 @@
    ## General Notes -- **19.06.23** : +- **26.06.23** : - The main delta of M2 compared to M1 seemed to be 1) implementation of a substrate module for importing witnessed events and 2) devising a practical benchmark/application sample. - - Inconsistent paths/urls should be corrected to confirm the full functionality of the contribution. + - As stated by the grantee, quantitative reporting of the TPS benchmark is still pending. However, considering that the assessment of performance is context-dependent and there are no specific hard requirements for evaluation, I consider the current contribution acceptable.
    ## Outstanding Issues -- **19.06.23** : +- **26.06.23** : - **1. Problems with tests ('on-chain proofs')(rustc = 1.68.0)** - - - `cargo test -p consensus-validated-streams --no-default-features` - - -
    - error output (click to expand) - - ```rust - error[E0432]: unresolved import `super::RocksDbEventProofs` - --> consensus/src/proofs/tests.rs:2:69 - | - 2 | EventProofsTrait, InMemoryEventProofs, OffchainStorageEventProofs, RocksDbEventProofs, - | ^^^^^^^^^^^^^^^^^^ no `RocksDbEventProofs` in `proofs` - - warning: function `verify_events_validity` is never used - --> consensus/src/events/mod.rs:99:15 - | - 99 | pub(crate) fn verify_events_validity( - | ^^^^^^^^^^^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` on by default - - For more information about this error, try `rustc --explain E0432`. - error: could not compile `consensus-validated-streams` due to previous error - warning: build failed, waiting for other jobs to finish... - warning: `consensus-validated-streams` (lib) generated 1 warning - ``` - -
    -
    - - - `cargo test -p pallet-validated-streams --no-default-features` - - -
    - error output (click to expand) - - ```rust - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/metadata.rs:87:17 - | - 87 | let mut res = vec![]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/misc.rs:1089:17 - | - 1089 | .type_params(vec![TypeParameter::new("T", Some(meta_type::()))]) - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/traits/misc.rs:1002:17 - | - 1002 | .type_params(vec![TypeParameter::new("T", Some(meta_type::()))]) - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:268:3 - | - 268 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:248:3 - | - 248 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/value.rs:225:54 - | - 225 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:609:3 - | - 609 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:583:3 - | - 583 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/nmap.rs:554:54 - | - 554 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:471:3 - | - 471 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:443:3 - | - 443 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:419:14 - | - 419 | hashers: vec![Hasher::METADATA], - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/map.rs:413:54 - | - 413 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:724:3 - | - 724 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:693:3 - | - 693 | vec![StorageInfo { - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:666:14 - | - 666 | hashers: vec![Hasher1::METADATA, Hasher2::METADATA], - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/double_map.rs:660:54 - | - 660 | let docs = if cfg!(feature = "no-metadata-docs") { vec![] } else { docs }; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/counted_map.rs:468:5 - | - 468 | vec!["Counter for the related counted storage map"] - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/types/counted_map.rs:466:5 - | - 466 | vec![] - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:291:16 - | - 291 | let mut key = vec![0u8; 32 + hash.len()]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:261:16 - | - 261 | let mut key = vec![0u8; 32 + hash.len()]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:250:16 - | - 250 | let mut key = vec![0u8; 32 + hash.len()]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:241:16 - | - 241 | let mut key = vec![0u8; 32 + hash.len()]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `vec` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/storage/migration.rs:232:16 - | - 232 | let mut key = vec![0u8; 32 + hash.len()]; - | ^^^ - | - = note: consider importing one of these items: - codec::alloc::vec - crate::sp_std::vec - scale_info::prelude::vec - sp_std::vec - - error: cannot find macro `thread_local` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/dispatch_context.rs:90:1 - | - 90 | environmental::environmental!(DISPATCH_CONTEXT: BTreeMap>); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: `thread_local` is in scope, but it is an attribute: `#[thread_local]` - = note: this error originates in the macro `$crate::thread_local_impl` which comes from the expansion of the macro `environmental::environmental` (in Nightly builds, run with -Z macro-backtrace for more info) - - error[E0425]: cannot find value `GLOBAL` in this scope - --> /home/takim/.cargo/git/checkouts/substrate-7e08433d4c370a21/98f2e34/frame/support/src/dispatch_context.rs:90:1 - | - 90 | environmental::environmental!(DISPATCH_CONTEXT: BTreeMap>); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope - | - = note: this error originates in the macro `environmental::environmental` (in Nightly builds, run with -Z macro-backtrace for more info) - - For more information about this error, try `rustc --explain E0425`. - error: could not compile `frame-support` due to 29 previous errors - - ``` -
    - -
    - - **2. Outdated urls?** - - links for 'proofs' and 'events' in deliverable 0c are not valid. - - link 'Test_script' in deliverable 0d is not valid - -
    - - **3. Problems with building benchmarks** - - - - - `cargo build --release --no-default-features --features runtime-benchmarks` - - we get the same error for both with/without `--no-default-features` - - -
    - error output (click to expand) - - ```rust - Compiling pallet-validated-streams v0.1.0 (/home/takim/work/grant_projects/validated-streams/pallet) - Compiling vstreams-node-runtime v0.1.0 (/home/takim/work/grant_projects/validated-streams/runtime) - error[E0308]: mismatched types - --> pallet/src/benchmarking.rs:18:24 - | - 15 | / benchmarks! { - 16 | | validate_event { - 17 | | let event_id: T::Hash = T::Hash::default(); - 18 | | }: _(RawOrigin::None, event_id, None) - | | ^^^^^^^^ expected struct `H256`, found associated type - ... | - 26 | | ) - 27 | | } - | |_- arguments to this function are incorrect - | - = note: expected struct `sp_core::H256` - found associated type `::Hash` - = help: consider constraining the associated type `::Hash` to `sp_core::H256` - = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html - note: associated function defined here - --> pallet/src/lib.rs:95:10 - | - 95 | pub fn validate_event( - | ^^^^^^^^^^^^^^ - 96 | origin: OriginFor, - 97 | event_id: H256, - | -------------- - - error[E0599]: no function or associated item named `verify_event` found for struct `Pallet` in the current scope - --> pallet/src/benchmarking.rs:20:42 - | - 20 | assert!(pallet_validated_streams::::verify_event(event_id)); - | ^^^^^^^^^^^^ function or associated item not found in `Pallet` - | - ::: pallet/src/lib.rs:43:5 - | - 43 | pub struct Pallet(_); - | -------------------- function or associated item `verify_event` not found for this struct - - Some errors have detailed explanations: E0308, E0599. - For more information about an error, try `rustc --explain E0308`. - error: could not compile `pallet-validated-streams` due to 2 previous errors - warning: build failed, waiting for other jobs to finish... - error: failed to run custom build command for `vstreams-node-runtime v0.1.0 (/home/takim/work/grant_projects/validated-streams/runtime)` - - Caused by: - process didn't exit successfully: `/home/takim/work/grant_projects/validated-streams/target/release/build/vstreams-node-runtime-263ed3eed4608505/build-script-build` (exit status: 1) - --- stdout - Information that should be included in a bug report. - Executing build command: RUSTFLAGS="-C link-arg=--export-table -Clink-arg=--export=__heap_base -C link-arg=--import-memory " SKIP_WASM_BUILD="" "/home/takim/.rustup/toolchains/nightly-2023-01-01-x86_64-unknown-linux-gnu/bin/cargo" "rustc" "--target=wasm32-unknown-unknown" "--manifest-path=/home/takim/work/grant_projects/validated-streams/target/release/wbuild/vstreams-node-runtime/Cargo.toml" "--color=always" "--profile" "release" - Using rustc version: rustc 1.68.0-nightly (574b64a97 2022-12-31) - - - --- stderr - Compiling pallet-validated-streams v0.1.0 (/home/takim/work/grant_projects/validated-streams/pallet) - Compiling pallet-grandpa v4.0.0-dev (https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.40#98f2e345) - error[E0308]: mismatched types - --> /home/takim/work/grant_projects/validated-streams/pallet/src/benchmarking.rs:18:24 - | - 15 | / benchmarks! { - 16 | | validate_event { - 17 | | let event_id: T::Hash = T::Hash::default(); - 18 | | }: _(RawOrigin::None, event_id, None) - | | ^^^^^^^^ expected struct `H256`, found associated type - ... | - 26 | | ) - 27 | | } - | |_- arguments to this function are incorrect - | - = note: expected struct `sp_core::H256` - found associated type `::Hash` - = help: consider constraining the associated type `::Hash` to `sp_core::H256` - = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html - note: associated function defined here - --> /home/takim/work/grant_projects/validated-streams/pallet/src/lib.rs:95:10 - | - 95 | pub fn validate_event( - | ^^^^^^^^^^^^^^ - 96 | origin: OriginFor, - 97 | event_id: H256, - | -------------- - - error[E0599]: no function or associated item named `verify_event` found for struct `Pallet` in the current scope - --> /home/takim/work/grant_projects/validated-streams/pallet/src/benchmarking.rs:20:42 - | - 20 | assert!(pallet_validated_streams::::verify_event(event_id)); - | ^^^^^^^^^^^^ function or associated item not found in `Pallet` - | - ::: /home/takim/work/grant_projects/validated-streams/pallet/src/lib.rs:43:5 - | - 43 | pub struct Pallet(_); - | -------------------- function or associated item `verify_event` not found for this struct - - Some errors have detailed explanations: E0308, E0599. - For more information about an error, try `rustc --explain E0308`. - error: could not compile `pallet-validated-streams` due to 2 previous errors - warning: build failed, waiting for other jobs to finish... - ``` -
    - - \ No newline at end of file + - All outstanding issues were resolved. Please check the previous evaluation in case of need: [link](https://github.com/w3f/Grant-Milestone-Delivery/blob/0ff27610f39a30dfe7e27bdbc18a70ced73b546e/evaluations/validated-streams_2_arahangua.md) \ No newline at end of file From 8bbba3b726f80b7a3baca5450e6564148ae00767 Mon Sep 17 00:00:00 2001 From: Bojidar Marinov Date: Tue, 27 Jun 2023 22:27:17 +0300 Subject: [PATCH 178/253] Validated Streams milestone 2 delivery (#881) --- deliveries/validated_streams-milestone_2.md | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deliveries/validated_streams-milestone_2.md diff --git a/deliveries/validated_streams-milestone_2.md b/deliveries/validated_streams-milestone_2.md new file mode 100644 index 000000000..1f63a9bea --- /dev/null +++ b/deliveries/validated_streams-milestone_2.md @@ -0,0 +1,31 @@ +# 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:** [Validated Streams](https://github.com/w3f/Grants-Program/blob/master/applications/validated-streams.md) +* **Milestone Number:** 2 + +**Context** + +We are delighted to announce the completion of the second and last milestone, marking the availability of the beta version of our project. This achievement includes a range of deliverables aimed at bringing all features to completion, enhancing functionality, testing, and documentation, and providing valuable insights through benchmarking. + +In addition to refining the code from the previous milestone, we have also developed a .NET Client IRC usage sample, with validators that witnessing and validating events happening in an IRC chat room, giving users a way to interact with the projects. Additionally, a network resilience example was been developed to examine the recovery mechanism employed by our custom block import for nodes that face networking failures, with a particular focus on handling unwitnessed events. Finally, we are about to run a benchmark on real hardware, testing our network's overall performance and will document the results in [the respective folder of the repository](https://github.com/comrade-coop/validated-streams/tree/main/samples/tps-benchmark/README.md). + +Plenty of integration and unit testing has been conducted, ensuring that core functions are thoroughly tested and robust under a variety of conditions. Furthermore, we have included Dockerfiles and a convenient test script, enabling the testing of all delivered functionalities. + +With this first beta version of our project, we think it is ready to be integrated into other projects. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| **0a.** | License | [LICENSE](https://github.com/comrade-coop/validated-streams/blob/main/LICENSE) | MIT License | +| **0b.** | Documentation | [README](https://github.com/comrade-coop/validated-streams/blob/main/README.md) | Made sure inline documentation covers all the code delivered. Also, created and documented a few additional samples (all linked from the root README). | +| **0c.** | Testing and Testing Guide | [Running tests](https://github.com/comrade-coop/validated-streams/blob/main/README.md#testing)
    [proofs/](https://github.com/comrade-coop/validated-streams/blob/main/consensus/src/proofs/tests.rs)
    [events/](https://github.com/comrade-coop/validated-streams/blob/main/consensus/src/events/tests.rs)
    [pallet/](https://github.com/comrade-coop/validated-streams/blob/main/pallet/src/tests.rs) | Core functions are fully covered by unit tests to ensure functionality and robustness. The guide describes how to run these tests. | +| **0d.** | Docker | [Main](https://github.com/comrade-coop/validated-streams/blob/main/Dockerfile)
    [IRC](https://github.com/comrade-coop/validated-streams/blob/main/samples/irc/Dockerfile)
    [Test script](https://github.com/comrade-coop/validated-streams/blob/main/samples/basic/run-example.sh)
    [Benchmark](https://github.com/comrade-coop/validated-streams/blob/main/samples/tps-benchmark/Dockerfile) | Docker files and shell scripts can be used to test all the functionality delivered with this milestone. That includes scripts for simulating poor network conditions to facilitate an examination of the recovery mechanisms, specifically focusing on the handling of unwitnessed events | +| **0e.** | Article | [Google Docs link](https://docs.google.com/document/u/1/d/12EsVUDydsDWfngQP6-zYRiC-dFbn696Evr3VSxgcpjU/edit) | An article was drafted up and submitted to the grants/grantsPR email for review, as per the announcement guidelines. | +| 1. | Substrate module: Witnessed events block import |[Old](https://github.com/comrade-coop/validated-streams/blob/fa7e20c5f0bf34cd8b89f975eceb6e29955202ab/node/src/streams/services/witness_block_import.rs)

    [New](https://github.com/comrade-coop/validated-streams/blob/main/consensus/src/block_import.rs) | A major question was how to allow syncing blocks when gossip delays/drops signatures. At first, we tried using DHT to provide event proofs for blocks. However, we realized that this approach would impose a substantial bandwidth consumption, and all we need is to enable faster syncing to the current finalized tip. We ended up deciding to make nodes experiencing networking failures invoke grandpa block import directly whenever they fall behind (is_major_syncing). As a result of this we have **departed** from the original solution of deferring events that was described in the grant proposal, hence the "old" and "new" links on the left. | +| 2. | Real-life testing | [TPS benchmark](https://github.com/comrade-coop/validated-streams/tree/main/samples/tps-benchmark) | *Work-in-progress.* While all the real-life benchmark code is there, we are still in the process of running it on real hardware, and will report the results once it's done. | +| 3. | .NET client sample | [IRC sample](https://github.com/comrade-coop/validated-streams/tree/main/samples/irc) | In this example we created trusted client IRC bots running alongside the validators to witnesses events happening in an IRC chat room and forward messages for validation to the validated streams chain. | + +**Additional Information** From 1da209c199470dd4ff4c488eb58abac3eebeecf1 Mon Sep 17 00:00:00 2001 From: Seraya Date: Tue, 27 Jun 2023 22:10:00 +0200 Subject: [PATCH 179/253] update patron m1 eval --- evaluations/patron_1_takahser.md | 303 ++++++++++--------------------- 1 file changed, 96 insertions(+), 207 deletions(-) diff --git a/evaluations/patron_1_takahser.md b/evaluations/patron_1_takahser.md index df285464b..1c3e5f9be 100644 --- a/evaluations/patron_1_takahser.md +++ b/evaluations/patron_1_takahser.md @@ -9,17 +9,17 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
    • [x]
    | [MIT](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/LICENSE) | - | -| 0b. | Documentation |
    • [ ]
    | [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/cli.md), [self-hosting instructions](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md) | See [documentation feedback](#documentation-feedback). | -| 0c. | Testing guidelines |
    • [ ]
    | [Instructions in Delivery](https://github.com/w3f/Grant-Milestone-Delivery/pull/871/files#diff-c6776ce4032fba925481b56ba22f31870e3afd145b38a80d8854ab970066986bR25-R167) | See [testing guidelines feedback](#testing-guidelines-feedback). | -| 0d. | Docker |
    • [ ]
    | [containers.rs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/builder/src/process/container.rs) | Please add install instructions for nix. | -| 0e. | Article |
    • [ ]
    | [Medium Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) | Rather poorly written. I assume there hasn't been any proof-reading process. Given the price tag of this grant I think it'd be fair to expect a higher quality here. | +| 0b. | Documentation |
    • [x]
    | [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/cli.md), [self-hosting instructions](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md), [API docs](https://api.patron.works/docs) | See [documentation feedback](#documentation-feedback). | +| 0c. | Testing guidelines |
    • [x]
    | [Instructions in Delivery](https://github.com/w3f/Grant-Milestone-Delivery/pull/871/files#diff-c6776ce4032fba925481b56ba22f31870e3afd145b38a80d8854ab970066986bR25-R167) | See [testing guidelines feedback](#testing-guidelines-feedback). | +| 0d. | Docker |
    • [ ]
    | [containers.rs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/builder/src/process/container.rs) | See [Docker Feedback](#docker-feedback) | +| 0e. | Article |
    • [x]
    | [Medium Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) | ~~Rather poorly written. I assume there hasn't been any proof-reading process. Given the price tag of this grant I think it'd be fair to expect a higher quality here.~~ Still not perfect, but drastically improved from the earlier version. I'm willing to accept it at this stage, however, feel free to further improve it. | | 1a. | Backend storage |
    • [ ]
    | [db crate](https://github.com/Brushfam/patron-backend/tree/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/db) | See [backend storage feedback](#backend-storage-feedback). | -| 1b. | Sync server |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A separate server that catches new contract deployments and events will be implemented. | -| 1c. | Smart contract builder |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | -| 2a. | Web UI |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A simple web UI will be implemented to expose Patron functionality. | -| 2b. | Detailed contract information |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: Frontend to display detailed contract info (as well as verification status) will be implemented. | -| 2c. | User authentication |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: We will implement a web3-oriented authentication solution | -| 3a. | Developer CLI utility |
    • [ ]
    | (will review after 0b., 0c., 0d. 1b. are fixed) | Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | +| 1b. | Sync server |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A separate server that catches new contract deployments and events will be implemented. | +| 1c. | Smart contract builder |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | +| 2a. | Web UI |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A simple web UI will be implemented to expose Patron functionality. | +| 2b. | Detailed contract information |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: Frontend to display detailed contract info (as well as verification status) will be implemented. | +| 2c. | User authentication |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: We will implement a web3-oriented authentication solution | +| 3a. | Developer CLI utility |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | Ideally all links inside the above table should include the commit hash, @@ -33,263 +33,152 @@ The spec in the proposal reads: > We will provide API documentation for contributors to get along with the codebase, as well as a detailed self-hosting instructions for users to create their own nodes. -However, I couldn't find an "API documentation for contributors". -Also, the code has almost no inline comments, which makes it harder for contributers to understand the code. For reference you can have a look at some of parity pallets, e.g. the [assets pallet](https://github.com/paritytech/substrate/blob/e434882d5dbf3f3f6085cb7f1d017dbc4ac11f0a/frame/assets/src/lib.rs) for some inspiration on inline-comments. In a second step, you could use `rustdoc` to generate the documentation based on the inline comments you provided. +~~However, I couldn't find an "API documentation for contributors". +Also, the code has almost no inline comments, which makes it harder for contributers to understand the code. For reference you can have a look at some of parity pallets, e.g. the [assets pallet](https://github.com/paritytech/substrate/blob/e434882d5dbf3f3f6085cb7f1d017dbc4ac11f0a/frame/assets/src/lib.rs) for some inspiration on inline-comments. In a second step, you could use `rustdoc` to generate the documentation based on the inline comments you provided.~~ + +Update: inline-comments and [API docs](https://api.patron.works/docs) have been added ### Testing Guidelines Feedback -- tests currently fail: +- [x] tests ~~currently fail~~ have been fixed: ``` patron-backend % cargo test - Finished test [unoptimized + debuginfo] target(s) in 0.89s - Running unittests src/main.rs (target/debug/deps/builder-28b73d84909f3efc) + Compiling event_client v0.1.0 (/Users/seraya/repos/patron-backend/crates/event_client) + Finished test [unoptimized + debuginfo] target(s) in 2m 52s + Running unittests src/main.rs (target/debug/deps/builder-761d50c22f6d842b) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/common-fbbf3295f160301d) + Running unittests src/lib.rs (target/debug/deps/common-e50cefc8408d0d31) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/db-ed64b4571b071d85) + Running unittests src/lib.rs (target/debug/deps/db-5a50e7f8e8a774ec) running 1 test test tests::exists ... ok -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - Running unittests src/main.rs (target/debug/deps/event_client-752971dcc25eef01) + Running unittests src/main.rs (target/debug/deps/event_client-39f93758411ef1f8) -running 0 tests +running 2 tests +test utils::tests::extract_code_hash ... ok +test utils::tests::extract_twox_account_id ... ok -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/migration-ebad0d10a57af4a4) + Running unittests src/lib.rs (target/debug/deps/migration-32a0379cff62aa67) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/migration-6c190ff85e487d47) + Running unittests src/main.rs (target/debug/deps/migration-a6d13c5c9ea0a0e1) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/patron-3e45bbdf3e5868ec) + Running unittests src/main.rs (target/debug/deps/patron-d1f0e973f6accda7) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/server-b6f364596d37e1a2) + Running unittests src/main.rs (target/debug/deps/server-a8daf5b4743e4bfd) running 37 tests -test handlers::auth::login::tests::successful ... FAILED -test handlers::auth::register::tests::register ... FAILED -test handlers::auth::login::tests::invalid_signature ... FAILED -test handlers::auth::login::tests::missing_account ... FAILED -test handlers::auth::login::tests::cli_token_repetition ... FAILED -test handlers::auth::login::tests::invalid_account ... FAILED -test handlers::auth::login::tests::exchange ... FAILED -test handlers::auth::login::tests::unmatching_signature ... FAILED -test handlers::build_sessions::details::tests::successful ... FAILED -test handlers::build_sessions::create::tests::invalid_source_code_id ... FAILED -test handlers::build_sessions::latest::tests::successful ... FAILED -test handlers::build_sessions::latest::tests::source_code_without_build_sessions ... FAILED -test handlers::build_sessions::create::tests::invalid_version ... FAILED -test handlers::build_sessions::details::tests::unknown ... FAILED -test handlers::build_sessions::list::tests::successful ... FAILED -test handlers::build_sessions::create::tests::create ... FAILED -test handlers::build_sessions::status::tests::unknown ... FAILED -test handlers::build_sessions::logs::tests::successful_by_code_hash ... FAILED -test handlers::build_sessions::logs::tests::unknown ... FAILED -test handlers::build_sessions::metadata::tests::unknown ... FAILED -test handlers::build_sessions::metadata::tests::successful ... FAILED -test handlers::build_sessions::logs::tests::position ... FAILED -test handlers::build_sessions::logs::tests::successful_by_id ... FAILED -test handlers::build_sessions::status::tests::successful ... FAILED -test handlers::build_sessions::wasm::tests::successful ... FAILED -test handlers::contracts::details::tests::unknown ... FAILED -test handlers::build_sessions::wasm::tests::unknown ... FAILED -test handlers::contracts::events::tests::successful ... FAILED -test handlers::contracts::events::tests::unknown ... FAILED -test handlers::contracts::details::tests::successful ... FAILED -test handlers::files::details::tests::single_file ... FAILED -test handlers::files::details::tests::file_list ... FAILED -test handlers::files::upload::tests::empty_request ... FAILED -test handlers::keys::delete::tests::list_and_delete ... FAILED -test handlers::files::details::tests::unknown_file ... FAILED -test handlers::keys::verify::tests::list_and_verify ... FAILED -test handlers::files::upload::tests::upload_and_seal ... FAILED - -failures: - ----- handlers::auth::login::tests::successful stdout ---- -thread 'handlers::auth::login::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:160:79 -note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace - ----- handlers::auth::register::tests::register stdout ---- -thread 'handlers::auth::register::tests::register' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/register.rs:60:79 - ----- handlers::auth::login::tests::invalid_signature stdout ---- -thread 'handlers::auth::login::tests::invalid_signature' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:214:79 - ----- handlers::auth::login::tests::missing_account stdout ---- -thread 'handlers::auth::login::tests::missing_account' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:260:79 +test handlers::auth::login::tests::unmatching_signature ... ok +test handlers::build_sessions::create::tests::create ... ok +test handlers::auth::register::tests::register ... ok +test handlers::auth::login::tests::invalid_signature ... ok +test handlers::build_sessions::create::tests::invalid_source_code_id ... ok +test handlers::auth::login::tests::invalid_account ... ok +test handlers::auth::login::tests::missing_account ... ok +test handlers::build_sessions::create::tests::invalid_version ... ok +test handlers::build_sessions::details::tests::successful ... ok +test handlers::auth::login::tests::cli_token_repetition ... ok +test handlers::auth::login::tests::exchange ... ok +test handlers::auth::login::tests::successful ... ok +test handlers::build_sessions::metadata::tests::unknown ... ok +test handlers::build_sessions::details::tests::unknown ... ok +test handlers::build_sessions::list::tests::successful ... ok +test handlers::build_sessions::logs::tests::successful_by_code_hash ... ok +test handlers::build_sessions::status::tests::unknown ... ok +test handlers::build_sessions::logs::tests::unknown ... ok +test handlers::build_sessions::latest::tests::successful ... ok +test handlers::build_sessions::logs::tests::position ... ok +test handlers::build_sessions::metadata::tests::successful ... ok +test handlers::build_sessions::latest::tests::source_code_without_build_sessions ... ok +test handlers::build_sessions::status::tests::successful ... ok +test handlers::build_sessions::logs::tests::successful_by_id ... ok +test handlers::files::details::tests::file_list ... ok +test handlers::contracts::events::tests::successful ... ok +test handlers::files::upload::tests::upload_and_seal ... ok +test handlers::keys::delete::tests::list_and_delete ... ok +test handlers::files::details::tests::unknown_file ... ok +test handlers::contracts::details::tests::unknown ... ok +test handlers::build_sessions::wasm::tests::unknown ... ok +test handlers::files::details::tests::single_file ... ok +test handlers::files::upload::tests::empty_request ... ok +test handlers::build_sessions::wasm::tests::successful ... ok +test handlers::contracts::details::tests::successful ... ok +test handlers::contracts::events::tests::unknown ... ok +test handlers::keys::verify::tests::list_and_verify ... ok + +test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s + + Doc-tests common ----- handlers::auth::login::tests::cli_token_repetition stdout ---- -thread 'handlers::auth::login::tests::cli_token_repetition' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:334:82 - ----- handlers::auth::login::tests::invalid_account stdout ---- -thread 'handlers::auth::login::tests::invalid_account' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:190:79 +running 0 tests ----- handlers::auth::login::tests::exchange stdout ---- -thread 'handlers::auth::login::tests::exchange' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:286:82 +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ----- handlers::auth::login::tests::unmatching_signature stdout ---- -thread 'handlers::auth::login::tests::unmatching_signature' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/auth/login.rs:238:79 - ----- handlers::build_sessions::details::tests::successful stdout ---- -thread 'handlers::build_sessions::details::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/details.rs:98:79 - ----- handlers::build_sessions::create::tests::invalid_source_code_id stdout ---- -thread 'handlers::build_sessions::create::tests::invalid_source_code_id' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:211:79 - ----- handlers::build_sessions::latest::tests::successful stdout ---- -thread 'handlers::build_sessions::latest::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/latest.rs:128:79 - ----- handlers::build_sessions::latest::tests::source_code_without_build_sessions stdout ---- -thread 'handlers::build_sessions::latest::tests::source_code_without_build_sessions' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/latest.rs:150:79 - ----- handlers::build_sessions::create::tests::invalid_version stdout ---- -thread 'handlers::build_sessions::create::tests::invalid_version' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:185:79 - ----- handlers::build_sessions::details::tests::unknown stdout ---- -thread 'handlers::build_sessions::details::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/details.rs:122:79 - ----- handlers::build_sessions::list::tests::successful stdout ---- -thread 'handlers::build_sessions::list::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/list.rs:161:79 - ----- handlers::build_sessions::create::tests::create stdout ---- -thread 'handlers::build_sessions::create::tests::create' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/create.rs:157:79 - ----- handlers::build_sessions::status::tests::unknown stdout ---- -thread 'handlers::build_sessions::status::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/status.rs:122:79 - ----- handlers::build_sessions::logs::tests::successful_by_code_hash stdout ---- -thread 'handlers::build_sessions::logs::tests::successful_by_code_hash' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:205:79 - ----- handlers::build_sessions::logs::tests::unknown stdout ---- -thread 'handlers::build_sessions::logs::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:268:79 - ----- handlers::build_sessions::metadata::tests::unknown stdout ---- -thread 'handlers::build_sessions::metadata::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/metadata.rs:129:79 - ----- handlers::build_sessions::metadata::tests::successful stdout ---- -thread 'handlers::build_sessions::metadata::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/metadata.rs:109:79 - ----- handlers::build_sessions::logs::tests::position stdout ---- -thread 'handlers::build_sessions::logs::tests::position' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:240:79 - ----- handlers::build_sessions::logs::tests::successful_by_id stdout ---- -thread 'handlers::build_sessions::logs::tests::successful_by_id' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/logs.rs:170:79 - ----- handlers::build_sessions::status::tests::successful stdout ---- -thread 'handlers::build_sessions::status::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/status.rs:101:79 - ----- handlers::build_sessions::wasm::tests::successful stdout ---- -thread 'handlers::build_sessions::wasm::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/wasm.rs:68:79 - ----- handlers::contracts::details::tests::unknown stdout ---- -thread 'handlers::contracts::details::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/details.rs:143:79 - ----- handlers::build_sessions::wasm::tests::unknown stdout ---- -thread 'handlers::build_sessions::wasm::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/build_sessions/wasm.rs:86:79 - ----- handlers::contracts::events::tests::successful stdout ---- -thread 'handlers::contracts::events::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/events.rs:124:79 + Doc-tests db ----- handlers::contracts::events::tests::unknown stdout ---- -thread 'handlers::contracts::events::tests::unknown' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/events.rs:147:79 +running 3 tests +test src/lib.rs - SelectExt::exists (line 107) ... ignored +test src/token.rs - token::generate_token (line 63) ... ok +test src/lib.rs - TransactionErrorExt::into_raw_result (line 40) ... ok ----- handlers::contracts::details::tests::successful stdout ---- -thread 'handlers::contracts::details::tests::successful' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/contracts/details.rs:122:79 +test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.45s ----- handlers::files::details::tests::single_file stdout ---- -thread 'handlers::files::details::tests::single_file' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:118:79 + Doc-tests migration ----- handlers::files::details::tests::file_list stdout ---- -thread 'handlers::files::details::tests::file_list' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:160:79 +running 0 tests ----- handlers::files::upload::tests::empty_request stdout ---- -thread 'handlers::files::upload::tests::empty_request' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/upload.rs:216:79 +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` ----- handlers::keys::delete::tests::list_and_delete stdout ---- -thread 'handlers::keys::delete::tests::list_and_delete' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/keys/delete.rs:98:82 +### Docker Feedback ----- handlers::files::details::tests::unknown_file stdout ---- -thread 'handlers::files::details::tests::unknown_file' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/details.rs:140:79 +- linux install instructions for NIX have been [added](https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md#nix-installation) +- I followed the MacOS instructions on the [NIX webpage](https://nixos.org/download.html#nix-install-macos) but the install script tried to add at least 7 users to my local machine so I decided to not use it: ----- handlers::keys::verify::tests::list_and_verify stdout ---- -thread 'handlers::keys::verify::tests::list_and_verify' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/keys/verify.rs:122:82 + ```bash + ~~> Setting up the build user _nixbld7 ----- handlers::files::upload::tests::upload_and_seal stdout ---- -thread 'handlers::files::upload::tests::upload_and_seal' panicked at 'called `Result::unwrap()` on an `Err` value: Error { tag: Tag::Default, profile: Some(Profile(Uncased { string: "default" })), metadata: None, path: [], kind: MissingField("database"), prev: None }', crates/server/src/handlers/files/upload.rs:148:82 + ---- sudo execution ------------------------------------------------------------ + I am executing: + $ sudo /usr/bin/dscl . create /Users/_nixbld7 UniqueID 307 -failures: - handlers::auth::login::tests::cli_token_repetition - handlers::auth::login::tests::exchange - handlers::auth::login::tests::invalid_account - handlers::auth::login::tests::invalid_signature - handlers::auth::login::tests::missing_account - handlers::auth::login::tests::successful - handlers::auth::login::tests::unmatching_signature - handlers::auth::register::tests::register - handlers::build_sessions::create::tests::create - handlers::build_sessions::create::tests::invalid_source_code_id - handlers::build_sessions::create::tests::invalid_version - handlers::build_sessions::details::tests::successful - handlers::build_sessions::details::tests::unknown - handlers::build_sessions::latest::tests::source_code_without_build_sessions - handlers::build_sessions::latest::tests::successful - handlers::build_sessions::list::tests::successful - handlers::build_sessions::logs::tests::position - handlers::build_sessions::logs::tests::successful_by_code_hash - handlers::build_sessions::logs::tests::successful_by_id - handlers::build_sessions::logs::tests::unknown - handlers::build_sessions::metadata::tests::successful - handlers::build_sessions::metadata::tests::unknown - handlers::build_sessions::status::tests::successful - handlers::build_sessions::status::tests::unknown - handlers::build_sessions::wasm::tests::successful - handlers::build_sessions::wasm::tests::unknown - handlers::contracts::details::tests::successful - handlers::contracts::details::tests::unknown - handlers::contracts::events::tests::successful - handlers::contracts::events::tests::unknown - handlers::files::details::tests::file_list - handlers::files::details::tests::single_file - handlers::files::details::tests::unknown_file - handlers::files::upload::tests::empty_request - handlers::files::upload::tests::upload_and_seal - handlers::keys::delete::tests::list_and_delete - handlers::keys::verify::tests::list_and_verify - -test result: FAILED. 0 passed; 37 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s - -error: test failed, to rerun pass `-p server --bin server` -``` + Creating the Nix build user (#7), _nixbld7 + ``` +- there are no instructions for using docker without NIX, feel free to add those as well +- also, I didn't find any docker or docker-compose files except for the [containers.rs](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/builder/src/process/container.rs) of which I'm not sure what exactly it does, feel free to add some more info there as well ### Backend Storage Feedback - regarding running the DB, please add instructions on how to install and configure it so it matches your example *Config.toml* file mentioned in the [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md#configuration) + - the build passes: ```bash From 4555168721c29e5e18dd369bde82ede0d85fe89d Mon Sep 17 00:00:00 2001 From: Nikhil Ranjan Date: Wed, 28 Jun 2023 17:34:48 +0200 Subject: [PATCH 180/253] centrifuge-gsrpc-v2 milestone 2 evaluation (#895) --- evaluations/centrifuge-gsrpc-v2_2_niklabh.md | 574 +++++++++++++++++++ 1 file changed, 574 insertions(+) create mode 100644 evaluations/centrifuge-gsrpc-v2_2_niklabh.md diff --git a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md new file mode 100644 index 000000000..9af5961fc --- /dev/null +++ b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md @@ -0,0 +1,574 @@ +# Evaluation + +- **Status:** Pending +- **Application Document:** [centrifuge-gsrpc-v2](https://github.com/w3f/Grants-Program/blob/master/applications/centrifuge-gsrpc-v2.md) +- **Milestone:** 2 +- **Kusama Identity:** [CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ](https://kusama.subscan.io/account/CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ) +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evalulation Notes | +|--------|----------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| 1. | License |
    • [x]
    | [License](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE) | Apache License v2 | +| 2. | Documentation |
    • [ ]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | +| 3. | PR with changes |
    • [ ]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | +| 4a. | Registry Unit Tests |
    • [ ]
    | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | +| 4b. | Registry (Events) Live Tests |
    • [ ]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Error in running docker tests, submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix | +| 4c. | Registry (Extrinsics) Live Tests |
    • [ ]
    | [Extrinsics Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/extrinsic_retriever_live_test.go) | Live test against public endpoints. Tests are running for too long. No need to check for 1000 events. 50 are fine | +| 4d. | Test execution |
    • [x]
    | [Test execution](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/Makefile#L49-L53) | Makefile has a [error](https://github.com/centrifuge/go-substrate-rpc-client/issues/352) | +| 5. | Dockerfile |
    • [x]
    | [Dockerfile](https://github.com/centrifuge/go-substrate-rpc-client/blob/b9da36ebf177cbb3ee41c2ef2b9a1fb08e5f8522/Dockerfile_milestone2) | Dockerfile is provided | +| 6. | In-Memory Registry |
    • [x]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | In-Memory Registry is implemented | + +## General Notes v1 - June 26, 2023 + +- Documentation needs to be improved. Basic tutorial on how to parse any substrate event and type using the new version of the library is missing. +- Unit test coverage is good. +- There is an error in running tests in Makefile. I have submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix the same. +- Live tests are running for too long. No need to check for 1000 events. 50 are fine. +- Dockerfile to run milestone2 tests is provided. +- In-Memory Registry is implemented. + +### Run unit test + +```bash +make test-milestone2 +Sending build context to Docker daemon 11.94MB +Step 1/4 : FROM golang:1.18 + ---> c37a56a6d654 +Step 2/4 : COPY . /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> 330446577dfa +Step 3/4 : WORKDIR /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> a35718b940dc +Step 4/4 : CMD go test -v ./registry/... --cover + ---> Running in ca1e535bbbba +Removing intermediate container ca1e535bbbba + ---> 5aaa87d8f46c +Successfully built 5aaa87d8f46c +Successfully tagged gsrpc-m2:latest +go: downloading github.com/stretchr/testify v1.7.0 +go: downloading github.com/gorilla/websocket v1.5.0 +go: downloading github.com/ethereum/go-ethereum v1.10.17 +go: downloading github.com/deckarep/golang-set v1.8.0 +go: downloading github.com/rs/cors v1.8.2 +go: downloading golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 +go: downloading github.com/vedhavyas/go-subkey v1.0.3 +go: downloading github.com/pierrec/xxHash v0.1.5 +go: downloading github.com/stretchr/objx v0.1.1 +go: downloading github.com/pmezard/go-difflib v1.0.0 +go: downloading github.com/davecgh/go-spew v1.1.1 +go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b +go: downloading github.com/gtank/merlin v0.1.1 +go: downloading github.com/ChainSafe/go-schnorrkel v1.0.0 +go: downloading github.com/decred/base58 v1.0.3 +go: downloading github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 +go: downloading github.com/cosmos/go-bip39 v1.0.0 +go: downloading github.com/gtank/ristretto255 v0.1.2 +go: downloading golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 +go: downloading github.com/decred/dcrd/crypto/blake256 v1.0.0 +go: downloading github.com/go-stack/stack v1.8.1 +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/centrifuge + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/polkadot + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/acala + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/statemint + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/moonbeam + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +--- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata (0.16s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/centrifuge (0.03s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/polkadot (0.06s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/acala (0.02s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/statemint (0.02s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/moonbeam (0.03s) +=== RUN TestFactory_CreateErrorRegistry_NoPalletWithErrors +--- PASS: TestFactory_CreateErrorRegistry_NoPalletWithErrors (0.00s) +=== RUN TestFactory_CreateErrorRegistry_ErrorsTypeNotFound +--- PASS: TestFactory_CreateErrorRegistry_ErrorsTypeNotFound (0.00s) +=== RUN TestFactory_CreateErrorRegistry_ErrorsTypeNotAVariant +--- PASS: TestFactory_CreateErrorRegistry_ErrorsTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateErrorRegistry_GetTypeFieldsError +--- PASS: TestFactory_CreateErrorRegistry_GetTypeFieldsError (0.00s) +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/centrifuge + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/polkadot + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/acala + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/statemint + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/moonbeam + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +--- PASS: TestFactory_CreateCallRegistryWithLiveMetadata (0.99s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/centrifuge (0.24s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/polkadot (0.20s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/acala (0.25s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/statemint (0.12s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/moonbeam (0.18s) +=== RUN TestFactory_CreateCallRegistry_NoPalletWithCalls +--- PASS: TestFactory_CreateCallRegistry_NoPalletWithCalls (0.00s) +=== RUN TestFactory_CreateCallRegistry_CallsTypeNotFound +--- PASS: TestFactory_CreateCallRegistry_CallsTypeNotFound (0.00s) +=== RUN TestFactory_CreateCallRegistry_CallTypeNotAVariant +--- PASS: TestFactory_CreateCallRegistry_CallTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateCallRegistry_GetTypeFieldsError +--- PASS: TestFactory_CreateCallRegistry_GetTypeFieldsError (0.00s) +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/centrifuge + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/polkadot + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/acala + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/statemint + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/moonbeam + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +--- PASS: TestFactory_CreateEventRegistryWithLiveMetadata (0.25s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/centrifuge (0.05s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/polkadot (0.06s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/acala (0.04s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/statemint (0.04s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/moonbeam (0.06s) +=== RUN TestFactory_CreateEventRegistry_NoPalletWithEvents +--- PASS: TestFactory_CreateEventRegistry_NoPalletWithEvents (0.00s) +=== RUN TestFactory_CreateEventRegistry_EventsTypeNotFound +--- PASS: TestFactory_CreateEventRegistry_EventsTypeNotFound (0.00s) +=== RUN TestFactory_CreateEventRegistry_EventTypeNotAVariant +--- PASS: TestFactory_CreateEventRegistry_EventTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateEventRegistry_GetTypeFieldError +--- PASS: TestFactory_CreateEventRegistry_GetTypeFieldError (0.00s) +=== RUN TestFactory_getTypeFields +--- PASS: TestFactory_getTypeFields (0.00s) +=== RUN TestFactory_getTypeFields_FieldDecoderRetrievalError +--- PASS: TestFactory_getTypeFields_FieldDecoderRetrievalError (0.00s) +=== RUN TestFactory_getTypeFields_FieldTypeNotFoundError +--- PASS: TestFactory_getTypeFields_FieldTypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_UnsupportedTypeError +--- PASS: TestFactory_getFieldDecoder_UnsupportedTypeError (0.00s) +=== RUN TestFactory_getFieldDecoder_Compact +--- PASS: TestFactory_getFieldDecoder_Compact (0.00s) +=== RUN TestFactory_getFieldDecoder_Compact_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Compact_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Composite +--- PASS: TestFactory_getFieldDecoder_Composite (0.00s) +=== RUN TestFactory_getFieldDecoder_Composite_FieldError +--- PASS: TestFactory_getFieldDecoder_Composite_FieldError (0.00s) +=== RUN TestFactory_getFieldDecoder_Variant +--- PASS: TestFactory_getFieldDecoder_Variant (0.00s) +=== RUN TestFactory_getFieldDecoder_Primitive +--- PASS: TestFactory_getFieldDecoder_Primitive (0.00s) +=== RUN TestFactory_getFieldDecoder_Array +--- PASS: TestFactory_getFieldDecoder_Array (0.00s) +=== RUN TestFactory_getFieldDecoder_Array_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Array_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Slice +--- PASS: TestFactory_getFieldDecoder_Slice (0.00s) +=== RUN TestFactory_getFieldDecoder_Slice_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Slice_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Tuple +--- PASS: TestFactory_getFieldDecoder_Tuple (0.00s) +=== RUN TestFactory_getFieldDecoder_Tuple_NilTuple +--- PASS: TestFactory_getFieldDecoder_Tuple_NilTuple (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence +--- PASS: TestFactory_getFieldDecoder_BitSequence (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitStoreTypeNotFound +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitStoreTypeNotFound (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitStoreFieldTypeError +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitStoreFieldTypeError (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitOrderTypeNotFound +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitOrderTypeNotFound (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitOrderCreationError +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitOrderCreationError (0.00s) +=== RUN TestFactory_getVariantFieldType_CompositeVariantTypeFieldError +--- PASS: TestFactory_getVariantFieldType_CompositeVariantTypeFieldError (0.00s) +=== RUN TestFactory_getCompactFieldType_CompactTuple +--- PASS: TestFactory_getCompactFieldType_CompactTuple (0.00s) +=== RUN TestFactory_getCompactFieldType_CompactComposite +--- PASS: TestFactory_getCompactFieldType_CompactComposite (0.00s) +=== RUN TestFactory_getArrayFieldType +--- PASS: TestFactory_getArrayFieldType (0.00s) +=== RUN TestFactory_getArrayFieldType_ItemFieldTypeError +--- PASS: TestFactory_getArrayFieldType_ItemFieldTypeError (0.00s) +=== RUN TestFactory_getSliceFieldType +--- PASS: TestFactory_getSliceFieldType (0.00s) +=== RUN TestFactory_getSliceFieldType_ItemFieldTypeError +--- PASS: TestFactory_getSliceFieldType_ItemFieldTypeError (0.00s) +=== RUN TestFactory_getTupleType +--- PASS: TestFactory_getTupleType (0.00s) +=== RUN TestFactory_getTupleType_TupleItemNotFound +--- PASS: TestFactory_getTupleType_TupleItemNotFound (0.00s) +=== RUN TestFactory_getTupleType_TupleItemFieldDecoderError +--- PASS: TestFactory_getTupleType_TupleItemFieldDecoderError (0.00s) +=== RUN Test_getPrimitiveType_UnsupportedTypeError +--- PASS: Test_getPrimitiveType_UnsupportedTypeError (0.00s) +PASS +coverage: 66.6% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry 1.406s coverage: 66.6% of statements +=== RUN TestRetryableExecutor_ExecWithFallback +--- PASS: TestRetryableExecutor_ExecWithFallback (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_RetrySuccess +--- PASS: TestRetryableExecutor_ExecWithFallback_RetrySuccess (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_NilFns +--- PASS: TestRetryableExecutor_ExecWithFallback_NilFns (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_ExecFnError +--- PASS: TestRetryableExecutor_ExecWithFallback_ExecFnError (0.50s) +=== RUN TestRetryableExecutor_ExecWithFallback_FallBackFnError +--- PASS: TestRetryableExecutor_ExecWithFallback_FallBackFnError (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_FallBackFnError_NoRetry +--- PASS: TestRetryableExecutor_ExecWithFallback_FallBackFnError_NoRetry (0.00s) +PASS +coverage: 60.8% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec 0.504s coverage: 60.8% of statements +=== RUN TestEventParserFn_ParseEvents +--- PASS: TestEventParserFn_ParseEvents (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventCountDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventCountDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_PhaseDecodeError +--- PASS: TestEventParserFn_ParseEvents_PhaseDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventIDDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventIDDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventFieldsDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventFieldsDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_MissingEventDecoder +--- PASS: TestEventParserFn_ParseEvents_MissingEventDecoder (0.00s) +=== RUN TestEventParserFn_ParseEvents_TopicsDecodeError +--- PASS: TestEventParserFn_ParseEvents_TopicsDecodeError (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics +--- PASS: TestExtrinsicParserFn_ParseExtrinsics (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics_MissingCallDecoder +--- PASS: TestExtrinsicParserFn_ParseExtrinsics_MissingCallDecoder (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics_DecodeError +--- PASS: TestExtrinsicParserFn_ParseExtrinsics_DecodeError (0.00s) +PASS +coverage: 55.4% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser 0.004s coverage: 55.4% of statements +=== RUN TestEventRetriever_New + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New (0.00s) +=== RUN TestEventRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestEventRetriever_NewDefault + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_NewDefault (0.00s) +=== RUN TestEventRetriever_GetEvents + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents (0.00s) +=== RUN TestEventRetriever_GetEvents_StorageRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) +--- PASS: TestEventRetriever_GetEvents_StorageRetrievalError (0.00s) +=== RUN TestEventRetriever_GetEvents_EventParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents_EventParsingError (0.00s) +=== RUN TestEventRetriever_updateInternalState + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState (0.00s) +=== RUN TestEventRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestEventRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== RUN TestExtrinsicRetriever_New + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New (0.00s) +=== RUN TestExtrinsicRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestExtrinsicRetriever_NewDefault + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_NewDefault (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_RegistryFactoryError (0.00s) +PASS +coverage: 65.2% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/retriever 0.006s coverage: 65.2% of statements +=== RUN TestProvider_GetStorageEvents + state.go:700: PASS: GetStorageRaw(types.StorageKey,types.Hash) + state.go:700: PASS: GetStorageRaw(types.StorageKey,types.Hash) +--- PASS: TestProvider_GetStorageEvents (0.07s) +PASS +coverage: 33.3% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/state 0.069s coverage: 33.3% of statements +? github.com/centrifuge/go-substrate-rpc-client/v4/registry/test [no test files] + +``` + +### Run live tests + +```bash +make test-milestone2-live +Sending build context to Docker daemon 11.94MB +Step 1/4 : FROM golang:1.18 + ---> c37a56a6d654 +Step 2/4 : COPY . /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> 330446577dfa +Step 3/4 : WORKDIR /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> a35718b940dc +Step 4/4 : CMD go test -v -tags=live ./registry/retriever/... + ---> Using cache + ---> 8ef25a5f7bbb +Successfully built 8ef25a5f7bbb +Successfully tagged gsrpc-m2-live:latest +go: downloading github.com/stretchr/testify v1.7.0 +go: downloading github.com/deckarep/golang-set v1.8.0 +go: downloading github.com/ethereum/go-ethereum v1.10.17 +go: downloading github.com/gorilla/websocket v1.5.0 +go: downloading github.com/rs/cors v1.8.2 +go: downloading golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 +go: downloading github.com/vedhavyas/go-subkey v1.0.3 +go: downloading github.com/pierrec/xxHash v0.1.5 +go: downloading github.com/gtank/merlin v0.1.1 +go: downloading github.com/ChainSafe/go-schnorrkel v1.0.0 +go: downloading github.com/decred/base58 v1.0.3 +go: downloading github.com/stretchr/objx v0.1.1 +go: downloading github.com/davecgh/go-spew v1.1.1 +go: downloading github.com/pmezard/go-difflib v1.0.0 +go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b +go: downloading github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 +go: downloading github.com/decred/dcrd/crypto/blake256 v1.0.0 +go: downloading github.com/cosmos/go-bip39 v1.0.0 +go: downloading github.com/gtank/ristretto255 v0.1.2 +go: downloading golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 +go: downloading github.com/go-stack/stack v1.8.1 +=== RUN TestLive_EventRetriever_GetEvents +=== PAUSE TestLive_EventRetriever_GetEvents +=== RUN TestEventRetriever_New + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New (0.00s) +=== RUN TestEventRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestEventRetriever_NewDefault + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_NewDefault (0.00s) +=== RUN TestEventRetriever_GetEvents + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents (0.00s) +=== RUN TestEventRetriever_GetEvents_StorageRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) +--- PASS: TestEventRetriever_GetEvents_StorageRetrievalError (0.00s) +=== RUN TestEventRetriever_GetEvents_EventParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents_EventParsingError (0.00s) +=== RUN TestEventRetriever_updateInternalState + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState (0.00s) +=== RUN TestEventRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestEventRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== RUN TestLive_ExtrinsicRetriever_GetExtrinsics +=== PAUSE TestLive_ExtrinsicRetriever_GetExtrinsics +=== RUN TestExtrinsicRetriever_New + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New (0.00s) +=== RUN TestExtrinsicRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestExtrinsicRetriever_NewDefault + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_NewDefault (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== CONT TestLive_EventRetriever_GetEvents +=== CONT TestLive_ExtrinsicRetriever_GetExtrinsics +2023/06/26 10:32:20 Connecting to wss://wss.api.moonbeam.network... +2023/06/26 10:32:20 Connecting to wss://wss.api.moonbeam.network... +2023/06/26 10:32:20 Connecting to wss://fullnode.parachain.centrifuge.io... +2023/06/26 10:32:20 Connecting to wss://rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://statemint-rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://acala-rpc-0.aca-api.network... +2023/06/26 10:32:20 Connecting to wss://statemint-rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://acala-rpc-0.aca-api.network... +2023/06/26 10:32:20 Connecting to wss://fullnode.parachain.centrifuge.io... +2023/06/26 10:32:20 Found 2 events for 'wss://acala-rpc-0.aca-api.network', at block number 3880189. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880189. +2023/06/26 10:32:20 Found 14 events for 'wss://acala-rpc-0.aca-api.network', at block number 3880188. +2023/06/26 10:32:20 Retrieved a total of 16 events for 'wss://acala-rpc-0.aca-api.network', last block number 3880188. Stopping now. +2023/06/26 10:32:20 Found 4 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880188. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027274. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880187. +2023/06/26 10:32:20 Found 32 events for 'wss://wss.api.moonbeam.network', at block number 3863157. +2023/06/26 10:32:20 Retrieved a total of 32 events for 'wss://wss.api.moonbeam.network', last block number 3863157. Stopping now. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256578. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256578. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880186. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://acala-rpc-0.aca-api.network', last block number 3880186. Stopping now. +2023/06/26 10:32:21 Found 3 extrinsics for 'wss://rpc.polkadot.io', at block number 16135396. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027273. +2023/06/26 10:32:21 Found 7 extrinsics for 'wss://wss.api.moonbeam.network', at block number 3863157. +2023/06/26 10:32:21 Found 47 events for 'wss://rpc.polkadot.io', at block number 16135396. +2023/06/26 10:32:21 Retrieved a total of 47 events for 'wss://rpc.polkadot.io', last block number 16135396. Stopping now. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256577. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256577. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027272. +2023/06/26 10:32:21 Found 4 extrinsics for 'wss://rpc.polkadot.io', at block number 16135395. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027274. +2023/06/26 10:32:21 Found 7 extrinsics for 'wss://wss.api.moonbeam.network', at block number 3863156. +2023/06/26 10:32:21 Retrieved a total of 14 extrinsics for 'wss://wss.api.moonbeam.network', last block number 3863156. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256576. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256576. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027273. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256575. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://rpc.polkadot.io', at block number 16135394. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256575. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027271. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027272. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256574. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256574. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://fullnode.parachain.centrifuge.io', last block number 3256574. Stopping now. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://rpc.polkadot.io', at block number 16135393. +2023/06/26 10:32:21 Retrieved a total of 11 extrinsics for 'wss://rpc.polkadot.io', last block number 16135393. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027271. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027270. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://statemint-rpc.polkadot.io', last block number 4027270. Stopping now. +--- PASS: TestLive_ExtrinsicRetriever_GetExtrinsics (1.41s) +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256573. +2023/06/26 10:32:21 Retrieved a total of 12 events for 'wss://fullnode.parachain.centrifuge.io', last block number 3256573. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027270. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027269. +2023/06/26 10:32:21 Retrieved a total of 12 events for 'wss://statemint-rpc.polkadot.io', last block number 4027269. Stopping now. +--- PASS: TestLive_EventRetriever_GetEvents (1.59s) +PASS +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/retriever 1.599s +``` \ No newline at end of file From c50e0837975d912093506d3a755ee38edca3fd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 28 Jun 2023 17:42:00 +0200 Subject: [PATCH 181/253] Update centrifuge-gsrpc-v2_2_niklabh.md --- evaluations/centrifuge-gsrpc-v2_2_niklabh.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md index 9af5961fc..5616b7d85 100644 --- a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md +++ b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md @@ -10,9 +10,9 @@ |--------|----------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| | 1. | License |
    • [x]
    | [License](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE) | Apache License v2 | | 2. | Documentation |
    • [ ]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | -| 3. | PR with changes |
    • [ ]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | -| 4a. | Registry Unit Tests |
    • [ ]
    | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | -| 4b. | Registry (Events) Live Tests |
    • [ ]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Error in running docker tests, submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix | +| 3. | PR with changes |
    • [x]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | +| 4a. | Registry Unit Tests |
    • [x]
    | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | +| 4b. | Registry (Events) Live Tests |
    • [x]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Error in running docker tests, submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix | | 4c. | Registry (Extrinsics) Live Tests |
    • [ ]
    | [Extrinsics Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/extrinsic_retriever_live_test.go) | Live test against public endpoints. Tests are running for too long. No need to check for 1000 events. 50 are fine | | 4d. | Test execution |
    • [x]
    | [Test execution](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/Makefile#L49-L53) | Makefile has a [error](https://github.com/centrifuge/go-substrate-rpc-client/issues/352) | | 5. | Dockerfile |
    • [x]
    | [Dockerfile](https://github.com/centrifuge/go-substrate-rpc-client/blob/b9da36ebf177cbb3ee41c2ef2b9a1fb08e5f8522/Dockerfile_milestone2) | Dockerfile is provided | @@ -571,4 +571,4 @@ go: downloading github.com/go-stack/stack v1.8.1 --- PASS: TestLive_EventRetriever_GetEvents (1.59s) PASS ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/retriever 1.599s -``` \ No newline at end of file +``` From a09fbc55ab7c557fb16e34b318a3b4a6ec939f6b Mon Sep 17 00:00:00 2001 From: Nikhil Ranjan Date: Thu, 29 Jun 2023 11:58:38 +0200 Subject: [PATCH 182/253] Updated: centrifuge-gsrpc-v2 milestone 2 evaluation (#897) --- evaluations/centrifuge-gsrpc-v2_2_niklabh.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md index 5616b7d85..ef9a87b28 100644 --- a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md +++ b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** Pending +- **Status:** Accepted - **Application Document:** [centrifuge-gsrpc-v2](https://github.com/w3f/Grants-Program/blob/master/applications/centrifuge-gsrpc-v2.md) - **Milestone:** 2 - **Kusama Identity:** [CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ](https://kusama.subscan.io/account/CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ) @@ -9,15 +9,21 @@ | Number | Deliverable | Accepted | Link | Evalulation Notes | |--------|----------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| | 1. | License |
    • [x]
    | [License](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE) | Apache License v2 | -| 2. | Documentation |
    • [ ]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | +| 2. | Documentation |
    • [x]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | | 3. | PR with changes |
    • [x]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | | 4a. | Registry Unit Tests |
    • [x]
    | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | -| 4b. | Registry (Events) Live Tests |
    • [x]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Error in running docker tests, submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix | -| 4c. | Registry (Extrinsics) Live Tests |
    • [ ]
    | [Extrinsics Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/extrinsic_retriever_live_test.go) | Live test against public endpoints. Tests are running for too long. No need to check for 1000 events. 50 are fine | -| 4d. | Test execution |
    • [x]
    | [Test execution](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/Makefile#L49-L53) | Makefile has a [error](https://github.com/centrifuge/go-substrate-rpc-client/issues/352) | +| 4b. | Registry (Events) Live Tests |
    • [x]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Tests are running fine | +| 4c. | Registry (Extrinsics) Live Tests |
    • [x]
    | [Extrinsics Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/extrinsic_retriever_live_test.go) | Live test against public endpoints. | +| 4d. | Test execution |
    • [x]
    | [Test execution](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/Makefile#L49-L53) | | | 5. | Dockerfile |
    • [x]
    | [Dockerfile](https://github.com/centrifuge/go-substrate-rpc-client/blob/b9da36ebf177cbb3ee41c2ef2b9a1fb08e5f8522/Dockerfile_milestone2) | Dockerfile is provided | | 6. | In-Memory Registry |
    • [x]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | In-Memory Registry is implemented | + +## General Notes v2 - June 29, 2023 + +- Tutorial on how to parse events is added [PR](https://github.com/centrifuge/go-substrate-rpc-client/commit/7e3e5ad5225bfa7afd342f3fe8932dc44702c472) +- Live tests count is controlled by env var. + ## General Notes v1 - June 26, 2023 - Documentation needs to be improved. Basic tutorial on how to parse any substrate event and type using the new version of the library is missing. From 147465938500c1043288544c7a346d0377107c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 29 Jun 2023 11:59:22 +0200 Subject: [PATCH 183/253] Update centrifuge-gsrpc-v2_2_niklabh.md --- evaluations/centrifuge-gsrpc-v2_2_niklabh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md index ef9a87b28..973ed77e9 100644 --- a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md +++ b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md @@ -9,7 +9,7 @@ | Number | Deliverable | Accepted | Link | Evalulation Notes | |--------|----------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| | 1. | License |
    • [x]
    | [License](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE) | Apache License v2 | -| 2. | Documentation |
    • [x]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | +| 2. | Documentation |
    • [x]
    | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation updated on request | | 3. | PR with changes |
    • [x]
    | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | | 4a. | Registry Unit Tests |
    • [x]
    | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | | 4b. | Registry (Events) Live Tests |
    • [x]
    | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Tests are running fine | From e412c1b7da1938766e646b9042c21a559ee3564d Mon Sep 17 00:00:00 2001 From: Miguel Hervas Date: Thu, 29 Jun 2023 03:02:02 -0700 Subject: [PATCH 184/253] Centrifuge GSRPC v2 milestone 2 (#890) --- deliveries/centrifuge-gsrpc-v2-milestone-2.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 deliveries/centrifuge-gsrpc-v2-milestone-2.md diff --git a/deliveries/centrifuge-gsrpc-v2-milestone-2.md b/deliveries/centrifuge-gsrpc-v2-milestone-2.md new file mode 100644 index 000000000..c3577500e --- /dev/null +++ b/deliveries/centrifuge-gsrpc-v2-milestone-2.md @@ -0,0 +1,25 @@ +# 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/centrifuge-gsrpc-v2.md +* **Milestone Number:** 2 + +**Context** (optional) + +As per the [original grant application](https://github.com/w3f/Grants-Program/pull/1281/files), the work required for `Milestone 2 - New generic type registry encoder/decoder` includes +all the changes required for parsing substrate metadata information into a Go registry that keeps track of all the types contained by a pallet's events & calls. +In addition to using this registry to encode and decode events and extrinsic data. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|--------|----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------| +| 1. | License | https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE | Apache License v2 | +| 2. | Documentation | https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md | - | +| 3. | PR with changes | https://github.com/centrifuge/go-substrate-rpc-client/pull/338 | - | +| 4a. | Registry Unit Tests | https://github.com/centrifuge/go-substrate-rpc-client/blob/7e3e5ad5225bfa7afd342f3fe8932dc44702c472/registry/registry_test.go | Tested using metadata information from - Centrifuge, Acala, Moonbeam, Polkadot and Statemint | +| 4b. | Registry (Events) Live Tests | https://github.com/centrifuge/go-substrate-rpc-client/blob/7e3e5ad5225bfa7afd342f3fe8932dc44702c472/registry/retriever/event_retriever_live_test.go | Live test against public endpoints - Centrifuge, Acala, Moonbeam, Polkadot and Statemint | +| 4c. | Registry (Extrinsics) Live Tests | https://github.com/centrifuge/go-substrate-rpc-client/blob/7e3e5ad5225bfa7afd342f3fe8932dc44702c472/registry/retriever/extrinsic_retriever_live_test.go | Live test against public endpoints - Centrifuge, Acala, Moonbeam, Polkadot and Statemint | +| 4d. | Test execution | https://github.com/centrifuge/go-substrate-rpc-client/blob/7e3e5ad5225bfa7afd342f3fe8932dc44702c472/Makefile#L49-L53 | Done in Docker image. | + From 3caa108923b6ff57633152a0b4d754994f24ed30 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 29 Jun 2023 15:07:10 -0300 Subject: [PATCH 185/253] Create omniversedlt_2_dsm-w3f.md --- evaluations/omniversedlt_2_dsm-w3f.md | 298 ++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 evaluations/omniversedlt_2_dsm-w3f.md diff --git a/evaluations/omniversedlt_2_dsm-w3f.md b/evaluations/omniversedlt_2_dsm-w3f.md new file mode 100644 index 000000000..f4711a0a0 --- /dev/null +++ b/evaluations/omniversedlt_2_dsm-w3f.md @@ -0,0 +1,298 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Omniverse%20DLT.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
    • [x]
    | - [Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE)
    -[Omniverse Ink!](https://github.com/Omniverse-Web3-Labs/omniverse-ink/blob/main/LICENSE) | | +| 0b. | Documentation |
    • [x]
    | - [A high-level Priciple of the Omniverse Swap](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/High-Level%20Principle%20of%20Omniverse%20Swap.md)
    - [How to dev with `Ink!`](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/dev-for-Ink!.md)
    - [Tutorial of how to auto-deploy](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Deployment.md)
    - [Tutorial of how to operate](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/Auto-Tutorial.md) | | +| 0c. | Testing Guide |
    • [x]
    | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | | +| 0d. | Docker |
    • [x]
    | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| | +| 0e. | Article |
    • [x]
    | [link](https://medium.com/@xiyuzheng1984/the-ink-tech-stack-along-with-a-swap-for-o-dlt-tokens-be128bb955e6) | | +| 1. | Substrate module: swap |
    • [ ]
    | - [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap)
    -[the simulation of the o-amm](https://github.com/Omniverse-Web3-Labs/o-amm)
    - [off-chain calc and on-chain verify](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main) | Possible small improvements and doubts. | +| 2. | Substrate chain |
    • [ ]
    | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Not fully evaluated yet| +| 3. | Ink! smart contract implementation |
    • [ ]
    | [Ink! tech stacks](https://github.com/Omniverse-Web3-Labs/omniverse-ink) | Not fully evaluated yet | +| 4. | Off-Chain Synchronizer |
    • [ ]
    | [link](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2) | Not fully evaluated yet | + +## Evaluation V1 + +### License + +The repository [omniverse-ink](https://github.com/Omniverse-Web3-Labs/omniverse-ink/blob/main/LICENSE) shows the "GPL v3.0" LICENSE as expected. + +The repository [omniverse-swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/blob/milestone-2/LICENSE) shows "The Unlicense" as LICENSE. + +### Auto testing + +I followed the auto-testing documentation and achieved the expected results. However, when I attempted to execute the swap test once more using the command `node src/index.js -t swap`, it triggered a balance error within the "Test Workflow", the specific error log is provided below. Subsequently, I ran the test a few times again and it worked properly. + +```sh +UnhanledRejection AssertionError [ERR_ASSERTION]: Balance error + at Test.getAllBalance (/home/user/User/w3f/omniverse-system-test/src/tests/ft.js:434:7) + at Test.doSwapTest (/home/user/User/w3f/omniverse-system-test/src/tests/ft.js:411:12) + at runNextTicks (node:internal/process/task_queues:60:5) + at listOnTimeout (node:internal/timers:538:9) + at process.processTimers (node:internal/timers:512:7) + at async Test.testFlow (/home/user/User/w3f/omniverse-system-test/src/tests/ft.js:256:7) + at async Test.runTest (/home/user/User/w3f/omniverse-system-test/src/tests/ft.js:459:5) + at async test (/home/user/User/w3f/omniverse-system-test/src/index.js:108:3) + at async /home/user/User/w3f/omniverse-system-test/src/index.js:129:5 { + generatedMessage: false, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==' +} +``` + +### Auto Deployment + +The deployment worked as expected following the auto-deployment video, the docker containers worked as expected as well. + +### Auto Tutorial + +After making the deployment, the tutorial worked as expected following the auto tutorial operation video steps. The log below shows the result after following the tutorial steps to get the omniverse token balance: + +```sh +node index.js --omniBalance CHAIN2,SKYWALKER,0x8bb25caae0a466afde04833610cf0c998050693974188853bdb982ed60e5e08ee71b3c9c0f900f8191512787e47908277272f71f991cb15fa364bad8018ef40b +secp256k1 unavailable, reverting to browser version +amount 4,009,900 +``` + +Through the tutorial, I received some `secp256k1 unavailable, reverting to browser version` logs as in the above shell block, is it expected? + +### Documentation + +- "A high-level Priciple of the Omniverse Swap" and "How to dev with Ink!" docs are ok. + +### Article + +- medium article “The Ink! Tech Stack along with a Swap for O-DLT Tokens” is ok + +### Off-Chain Synchronizer + +- omniverse-synchronizer tested with Docker ok + +### off-chain calc and on-chain verify + +The tutorial produced the expected result after building and starting a node locally, following the [off-chain-calc](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main/off-chain-calc) : + +Make a swap calculation: + +```sh +node index.mjs -s 100,10000,282842712,200000000,x,y,kitty +--------------The input token information---------------- +Current amount of the input token is: 10000 +The real input Δamount of the input token is 100. The parameter for on-chain call needs to be 1000000 +--------------The output token information---------------- +The calculated output Δamount of the token to be swapped out is 110.36116839525494. The parameter for on-chain call needs to be 1103611.6839525495 +The virtual amount of the output token is: 18392.66996696474. The parameter for on-chain call needs to be 183926699.6696474 +--------------Full parameters for on-chain call---------------- +{ + poolName: 'kitty', + 'dIn.t_name': 'x', + 'dIn.t_value': 1000000, + 'dOut.t_name': 'y', + 'dOut.t_value': 1103611, + virtualOut: 183926699 +} +``` + +The On-Chain verification worked as expected. + +### omniverse protocol + +Running the tests worked as expected, below are the tests and the tests coverage. + +```sh +running 21 tests +test omniverse_protocol::tests::check_compressed_pubkey_to_account ... ok +test omniverse_protocol::tests::new_works ... ok +test omniverse_protocol::tests::get_chain_id_works ... ok +test omniverse_protocol::tests::omniverse_mint_works ... ok +test omniverse_protocol::tests::only_owner_works ... ok +test omniverse_protocol::tests::check_omniverse_transfer_works ... ok +test omniverse_protocol::tests::check_omniverse_burn_works ... ok +test omniverse_protocol::tests::omniverse_burn_works ... ok +test omniverse_protocol::tests::get_cached_transaction_works ... ok +test omniverse_protocol::tests::check_owner_works ... ok +test omniverse_protocol::tests::omniverse_transfer_works ... ok +test omniverse_protocol::tests::get_transaction_count_works ... ok +test omniverse_protocol::tests::get_transaction_data_works ... ok +test omniverse_protocol::tests::check_execution_works ... ok +test omniverse_protocol::tests::send_omniverse_transaction_works ... ok +test omniverse_protocol::tests::send_omniverse_transaction_internal_works ... ok +test omniverse_protocol::tests::verify_signature_works ... ok +test omniverse_protocol::tests::set_members_works ... ok +test omniverse_protocol::tests::verify_transaction_works ... ok +test omniverse_protocol::tests::trigger_execution_internal_works ... ok +test omniverse_protocol::tests::trigger_execution_works ... ok + +test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + +Jun 28 12:12:53.224 INFO cargo_tarpaulin::report: Coverage Results: +|| Tested/Total Lines: +|| functions.rs: 10/10 +|| lib.rs: 154/179 +|| traits.rs: 0/2 +|| types.rs: 29/29 +|| +87.73% coverage, 193/220 lines covered +``` + +### Substrate chain + +- Substrate Node + +The command to build the node `cargo build --release` worked as expected. + +### Tests + +- all omniverse-swap tests passed + +```sh +Finished test [unoptimized + debuginfo] target(s) in 7m 43s +warning: the following packages contain code that will be rejected by a future version of Rust: fs_extra v1.2.0, nalgebra v0.27.1 +note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` + Running unittests src/lib.rs (target/debug/deps/node_template-3ed45e64c9440d9e) + +running 2 tests +test __construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::check_whitelist ... ok + +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_assets-2d82ac6157487a2e) + +running 35 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::freezing_asset_should_fail ... ok +test tests::destroying_should_fail ... ok +test tests::canceling_approval_should_fail ... ok +test tests::force_asset_status_should_fail ... ok +test tests::approving_transfer_should_fail ... ok +test tests::it_fails_for_factory_handler_mint_with_signer_not_owner ... ok +test tests::freezing_should_fail ... ok +test tests::burning_should_fail ... ok +test tests::force_setting_team_should_fail ... ok +test tests::force_transferring_should_fail ... ok +test tests::creating_should_fail ... ok +test tests::it_fails_for_factory_handler_with_signature_error ... ok +test tests::force_creating_should_fail ... ok +test tests::it_fails_for_create_token_with_token_already_exist ... ok +test tests::it_fails_for_factory_handler_transfer_with_balance_overflow ... ok +test tests::force_metadata_should_work ... ok +test tests::it_works_for_create_token ... ok +test tests::it_fails_for_set_members_with_not_owner ... ok +test types::ensure_bool_decodes_to_consumer_or_sufficient ... ok +test tests::transferring_ownership_should_fail ... ok +test tests::it_fails_for_factory_handler_with_token_not_exist ... ok +test tests::setting_team_should_fail ... ok +test tests::refunding_should_fail ... ok +test tests::it_fails_for_set_members_with_token_not_exist ... ok +test tests::transferring_approved_should_fail ... ok +test tests::transferring_should_fail ... ok +test tests::thawing_should_fail ... ok +test tests::touching_should_fail ... ok +test tests::thawing_asset_should_fail ... ok +test tests::transferring_keep_alive_should_fail ... ok +test tests::minting_should_fail ... ok +test tests::it_works_for_factory_handler_mint ... ok +test tests::it_works_for_factory_handler_transfer ... ok +test tests::set_metadata_should_work ... ok + +test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s + + Running unittests src/lib.rs (target/debug/deps/pallet_omniverse_protocol-2032bb49dfa0e27d) + +running 8 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::it_works_for_ethereum_signature ... ok +test tests::it_fails_for_nonce_error ... ok +test tests::it_fails_for_signature_error ... ok +test tests::it_works_for_verify_transaction ... ok +test tests::it_fails_for_signer_not_caller_error ... ok +test tests::it_works_for_malicious_transaction ... ok +test tests::it_works_for_duplicated_transaction ... ok + +test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_omniverse_swap-f6157a311a9882d2) + +running 5 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::it_works_for_add_liquidity ... ok +test tests::it_works_for_swap_y2x ... ok +test tests::it_works_for_swap_x2y ... ok +test tests::it_works_for_remove_liquidity ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_template-02ddf5628fb4912c) + +running 3 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::it_works_for_default_value ... ok +test tests::correct_error_for_none_value ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_uniques-4dd2dd5c6dcb4914) + +running 11 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::transfer_item_not_exist_not_work ... ok +test tests::set_members_with_token_not_exist_not_work ... ok +test tests::create_token_should_work ... ok +test tests::create_token_with_token_already_exist_not_work ... ok +test tests::basic_setup_works ... ok +test tests::not_owner_mint_item_with_not_work ... ok +test tests::not_item_owner_transfer_should_not_work ... ok +test tests::mint_item_should_work ... ok +test tests::mint_item_with_wrong_signature_not_work ... ok +test tests::transfer_item_should_work ... ok + +test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + Doc-tests node-template +``` + +### Code Quality + +Running `cargo clippy` in the omniverse-swap repository showed warnings in the result, see the log example below: + +```sh +warning: redundant clone + --> node/src/benchmarking.rs:167:8 + | +167 | extra.clone(), + | ^^^^^^^^ help: remove this + | +note: this value is dropped without further use + --> node/src/benchmarking.rs:167:3 + | +167 | extra.clone(), + | ^^^^^ + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone + +warning: redundant clone + --> node/src/rpc.rs:48:47 + | +48 | module.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; + | ^^^^^^^^ help: remove this + | +note: this value is dropped without further use + --> node/src/rpc.rs:48:43 + | +48 | module.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; + | ^^^^ + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_clone + +warning: `node-template` (bin "node-template") generated 7 warnings (2 duplicates) (run `cargo clippy --fix --bin "node-template"` to apply 5 suggestions) + Finished dev [unoptimized + debuginfo] target(s) in 4m 25s +``` + +- result of `cargo +nightly clippy` in the omniverse-ink repository logged 23 warnings From 0c7787e3776c68303a19b449156b9e7a721fab9b Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:44:06 -0300 Subject: [PATCH 186/253] Update saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 75 ++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md index f3c5f3847..16ef475ac 100644 --- a/evaluations/saas3_2_dsm-w3f.md +++ b/evaluations/saas3_2_dsm-w3f.md @@ -23,6 +23,81 @@ | | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | | 3. | UI & Frontend |
    • [ ]
    | https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | +## Evaluation V5 + +### License + +Still missing the Apache License in both repositories. + +### Automated Test + +I ran `cargo +nightly test` again to check, but this time some tests failed. + +``` +issamu@localhost:~/Documents/saas3/saas3-dao$ cargo +nightly test +⚡ Found 3 strongly connected components which includes at least one cycle each +cycle(001) ∈ α: DisputeCoordinator ~~{"DisputeDistributionMessage"}~~> DisputeDistribution ~~{"DisputeCoordinatorMessage"}~~> * +cycle(002) ∈ β: CandidateBacking ~~{"CollatorProtocolMessage"}~~> CollatorProtocol ~~{"CandidateBackingMessage"}~~> * +cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~> * + Finished test [unoptimized + debuginfo] target(s) in 0.78s + Running unittests src/lib.rs (target/debug/deps/pallet_court-5de9314ef157f9e7) + +running 9 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::vote_against_works ... FAILED +test tests::vote_sue_works ... ok +test tests::contribution_works ... FAILED +test tests::process_sue_before_vote ... FAILED +test tests::remove_approved_sue ... FAILED +test tests::process_sue_works ... FAILED +test tests::submite_sue_works ... ok +test tests::remove_unapproved_sue ... ok + +failures: + +---- tests::vote_against_works stdout ---- +thread 'tests::vote_against_works' panicked at 'Expected Ok(_). Got Err( + BadOrigin, +)', pallets/court/src/tests.rs:156:9 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +---- tests::contribution_works stdout ---- +thread 'tests::contribution_works' panicked at 'Expected Ok(_). Got Err( + BadOrigin, +)', pallets/court/src/tests.rs:211:9 + +---- tests::process_sue_before_vote stdout ---- +thread 'tests::process_sue_before_vote' panicked at 'assertion failed: `(left == right)` + left: `Err(BadOrigin)`, + right: `Err(Module(ModuleError { index: 2, error: [10, 0, 0, 0], message: Some("VoterCountTooLow") }))`', pallets/court/src/tests.rs:167:9 + +---- tests::remove_approved_sue stdout ---- +thread 'tests::remove_approved_sue' panicked at 'Expected Ok(_). Got Err( + BadOrigin, +)', pallets/court/src/tests.rs:197:9 + +---- tests::process_sue_works stdout ---- +thread 'tests::process_sue_works' panicked at 'Expected Ok(_). Got Err( + BadOrigin, +)', pallets/court/src/tests.rs:141:9 + + +failures: + tests::contribution_works + tests::process_sue_before_vote + tests::process_sue_works + tests::remove_approved_sue + tests::vote_against_works + +test result: FAILED. 4 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + +error: test failed, to rerun pass `-p pallet-court --lib` +``` + +### Manual Testing + +I tried again, and this time, I could successfully process a lawsuit using polkadot.js and the front end. I also could claim the rewards in polkadot.js. Could you explain how `court.removeSue(lawsuitId)` should work? I think it isn't part of the deliverables, but I tested this and only noticed in the chain state the id remove from the `court.approvals()`, but the `court.proposals(u32)`, still returning `approved: true` and didn't change the frontend. + ## Evaluation V4 I tried to use the frontend in the Evaluation V3, but I tested again to provide some prints. I created a lawsuit and voted with four different accounts. From ac831d5505b6204c6833f10302a7c3ffb23ddc47 Mon Sep 17 00:00:00 2001 From: davidsemakula Date: Fri, 30 Jun 2023 21:58:37 +0300 Subject: [PATCH 187/253] ink! analyzer milestone 3 (#1615) --- deliveries/ink-analyzer-milestone-3.md | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 deliveries/ink-analyzer-milestone-3.md diff --git a/deliveries/ink-analyzer-milestone-3.md b/deliveries/ink-analyzer-milestone-3.md new file mode 100644 index 000000000..3e570716c --- /dev/null +++ b/deliveries/ink-analyzer-milestone-3.md @@ -0,0 +1,27 @@ +# 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:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) +* **Milestone Number:** 3 + +**Context** (optional) + +This delivery is for the [LSP (Language Server Protocol) implementation](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server) of [semantic analyzer](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/analyzer) features that were delivered and evaluated in milestones 1 ([PR](https://github.com/w3f/Grant-Milestone-Delivery/pull/848), [delivery](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/ink-analyzer-milestone-1.md) and [evaluation](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_1_dsm-w3f.md)) and 2 ([PR](https://github.com/w3f/Grant-Milestone-Delivery/pull/873), [delivery](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/ink-analyzer-milestone-2.md) and [evaluation](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_2_dsm-w3f.md)) - i.e. diagnostics, completions, code/intent actions and hover content. + +Please see the [README](https://github.com/ink-analyzer/ink-analyzer#readme) for additional architectural details. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|---------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Dual-licensed under either of MIT or Apache 2.0 licenses at the downstream user's option. | +| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme), [language server (ink-lsp-server) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) on GitHub (and [crates.io](https://crates.io/crates/ink-lsp-server)), [language server (ink-lsp-server) crate rustdoc](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) library documentation on docs.rs and extensive inline source documentation. | The language server's README is published on both [GitHub](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) and [crates.io](https://crates.io/crates/ink-lsp-server). It contains instructions for installation and usage, and links to crate's associated library documentation on docs.rs. | +| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Extensive unit tests and integration tests are implemented for the crate. Unit tests for each feature are implemented it's parent submodule under the dispatch module (i.e [dispatch/actions.rs](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/src/dispatch/actions.rs) for diagnostics and [dispatch/handlers/request.rs](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/src/dispatch/handlers/request.rs) for completions, code/intent actions and hover content). Integration tests for each feature can be found in the [tests directory of the language analyzer crate](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server/tests) (i.e [diagnostics](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/tests/diagnostics.rs), [completions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/tests/completions.rs), [code/intent actions](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/tests/actions.rs) and [hover content](https://github.com/ink-analyzer/ink-analyzer/blob/master/crates/lsp-server/tests/hover.rs)). | +| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | | +| 1. | Language Server: Rust binary crate: ink! Language Server Protocol implementation | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [Language server crate (ink-lsp-server)](https://crates.io/crates/ink-lsp-server). | | + + +**Additional Information** + +Please use the [master branch](https://github.com/ink-analyzer/ink-analyzer/tree/master) for testing, another branch will be used for continued work until the completion of the review. From 2bffd75ffe6da7c54ada2d112aa4658e4a73c34d Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:02:55 -0300 Subject: [PATCH 188/253] Update omniversedlt_2_dsm-w3f.md --- evaluations/omniversedlt_2_dsm-w3f.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/evaluations/omniversedlt_2_dsm-w3f.md b/evaluations/omniversedlt_2_dsm-w3f.md index f4711a0a0..cdc39df9b 100644 --- a/evaluations/omniversedlt_2_dsm-w3f.md +++ b/evaluations/omniversedlt_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Omniverse%20DLT.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -13,10 +13,14 @@ | 0c. | Testing Guide |
    • [x]
    | [The test guide for milestone 2](https://github.com/Omniverse-Web3-Labs/Omniverse-DLT-Introduction/blob/main/docs/test-guide/m2-test-guide.md) | | | 0d. | Docker |
    • [x]
    | [Synchronizer docker](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2/docker)| | | 0e. | Article |
    • [x]
    | [link](https://medium.com/@xiyuzheng1984/the-ink-tech-stack-along-with-a-swap-for-o-dlt-tokens-be128bb955e6) | | -| 1. | Substrate module: swap |
    • [ ]
    | - [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap)
    -[the simulation of the o-amm](https://github.com/Omniverse-Web3-Labs/o-amm)
    - [off-chain calc and on-chain verify](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main) | Possible small improvements and doubts. | -| 2. | Substrate chain |
    • [ ]
    | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | Not fully evaluated yet| -| 3. | Ink! smart contract implementation |
    • [ ]
    | [Ink! tech stacks](https://github.com/Omniverse-Web3-Labs/omniverse-ink) | Not fully evaluated yet | -| 4. | Off-Chain Synchronizer |
    • [ ]
    | [link](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2) | Not fully evaluated yet | +| 1. | Substrate module: swap |
    • [x]
    | - [Pallet for Omniverse Swap](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2/pallets/omni-swap)
    -[the simulation of the o-amm](https://github.com/Omniverse-Web3-Labs/o-amm)
    - [off-chain calc and on-chain verify](https://github.com/Omniverse-Web3-Labs/O-AMM-ParaSim/tree/main) | | +| 2. | Substrate chain |
    • [x]
    | [Parachain itself](https://github.com/Omniverse-Web3-Labs/omniverse-swap/tree/milestone-2) | | +| 3. | Ink! smart contract implementation |
    • [x]
    | [Ink! tech stacks](https://github.com/Omniverse-Web3-Labs/omniverse-ink) | | +| 4. | Off-Chain Synchronizer |
    • [x]
    | [link](https://github.com/Omniverse-Web3-Labs/omniverse-synchronizer/tree/milestone-2) | | + +## Evaluation V2 + +All pending problems and doubts were solved and are explained [here in this comment](https://github.com/w3f/Grant-Milestone-Delivery/pull/889#issuecomment-1614276659). ## Evaluation V1 From da0f3631d1b2538b2533da56c2ee59fa3c73eae6 Mon Sep 17 00:00:00 2001 From: Bu <116880440+budtr@users.noreply.github.com> Date: Sat, 1 Jul 2023 16:32:42 +0700 Subject: [PATCH 189/253] Create SubRelay-milestone-2.md --- deliveries/SubRelay-milestone-2.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deliveries/SubRelay-milestone-2.md diff --git a/deliveries/SubRelay-milestone-2.md b/deliveries/SubRelay-milestone-2.md new file mode 100644 index 000000000..f5e419bff --- /dev/null +++ b/deliveries/SubRelay-milestone-2.md @@ -0,0 +1,22 @@ +# 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/subrelay.md +* **Milestone Number:** 2 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/subrelay/subrelay-api/blob/main/LICENSE https://github.com/subrelay/interface/blob/main/LICENSE | | +| 0b. | Documentation | https://docs.subrelay.com/ || +| 0c. | Testing and Testing Guide | https://github.com/subrelay/interface/tree/main/cypress https://github.com/subrelay/subrelay-api/tree/main/test | | +| 0d. | Docker file | https://docs.subrelay.com/self-hosted/getting-started | Guide to run self hosted version | +| 0e. | Article | https://docs.subrelay.com | An introduction about the Subrelay concept and key features | +| 1. | Feature: Email integration | https://docs.subrelay.com/user-guide/email | Try it on https://app.subrelay.com/| +| 2. | Feature: Telegram integration| https://docs.subrelay.com/user-guide/telegram | Try it on https://app.subrelay.com/| +| 3. | Feature: Discord integration | https://docs.subrelay.com/user-guide/discord | Try it on https://app.subrelay.com/ | +| 4. | Feature: Workflow execution detail | https://app.subrelay.com/logs | | +| 5. | API | https://github.com/subrelay/subrelay-api | See the API reference at: https://docs.subrelay.com/api-documentation/overview | +| 6. | Integration | https://github.com/subrelay/interface | Try it on https://app.subrelay.com/ | From 89e49c3380ffa2d028602cda70ee82c732452be3 Mon Sep 17 00:00:00 2001 From: dastansam Date: Sat, 1 Jul 2023 22:46:18 +0300 Subject: [PATCH 190/253] Add ink_analyzer evaluation --- evaluations/ink_analyzer_3_dastansam.md | 533 ++++++++++++++++++++++++ 1 file changed, 533 insertions(+) create mode 100644 evaluations/ink_analyzer_3_dastansam.md diff --git a/evaluations/ink_analyzer_3_dastansam.md b/evaluations/ink_analyzer_3_dastansam.md new file mode 100644 index 000000000..06b1db0b8 --- /dev/null +++ b/evaluations/ink_analyzer_3_dastansam.md @@ -0,0 +1,533 @@ +- **Status:** Accepted +- **Application Document:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) +- **Milestone:** 3 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 2](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_2_dsm-w3f.md) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|---------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Correct licenses | +| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme), [language server (ink-lsp-server) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) on GitHub (and [crates.io](https://crates.io/crates/ink-lsp-server)), [language server (ink-lsp-server) crate rustdoc](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) library documentation on docs.rs and extensive inline source documentation. | Extensive documentation. | +| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Extensive unit tests and integration are provided. All tests are passing by running it with both native Rust and Docker image. | +| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | Dockerfile builds and all tests are passing. | +| 1. | Language Server: Rust binary crate: ink! Language Server Protocol implementation | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [Language server crate (ink-lsp-server)](https://crates.io/crates/ink-lsp-server). | Very well-written code, every piece code is commented and code coverage is high. The only non-critical issue is some warnings that clippy produces (logs attached below) | + +## General Notes + +The project is well documented and the code is almost flawless. Can't wait to see it in action after VSCode integration in the next milestone! + +### Outputs + +
    + Clippy + +```bash +warning: variables can be used directly in the `format!` string + --> crates/test-utils/src/lib.rs:28:36 + | +28 | lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + = note: `#[warn(clippy::uninlined_format_args)]` on by default +help: change this to + | +28 - lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() +28 + lsp_types::Url::from_file_path(format!("/test_data/{location}.rs")).unwrap() + | + +warning: `test-utils` (lib) generated 1 warning + Checking ink-analyzer-ir v0.7.0 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/ir) + Checking ink-analyzer v0.6.1 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/analyzer) +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/completions.rs:141:50 + | +141 | ... .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + = note: `#[warn(clippy::uninlined_format_args)]` on by default +help: change this to + | +141 - .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); +141 + .retain(|macro_kind| format!("{macro_kind}").starts_with(prefix)); + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/completions.rs:311:48 + | +311 | ... .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); + | ^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +311 - .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); +311 + .retain(|arg_kind| format!("{arg_kind}").starts_with(prefix)); + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:131:25 + | +131 | format!("Unknown ink! attribute argument: '{}'.", arg_name_text) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +131 - format!("Unknown ink! attribute argument: '{}'.", arg_name_text) +131 + format!("Unknown ink! attribute argument: '{arg_name_text}'.") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:148:42 + | +148 | ... message: format!("`{}` argument shouldn't have a value.", arg_name_text), + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +148 - message: format!("`{}` argument shouldn't have a value.", arg_name_text), +148 + message: format!("`{arg_name_text}` argument shouldn't have a value."), + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:220:42 + | +220 | ... message: format!( + | ________________________________^ +221 | | ... "`{}` argument should have a `boolean` (`bool`) value.", +222 | | ... arg_name_text +223 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:238:42 + | +238 | ... message: format!( + | ________________________________^ +239 | | ... "`{}` argument should have a `path` (e.g `my::env::Types`) value.", +240 | | ... arg_name_text +241 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:467:41 + | +467 | ... format!("`ink! {}`", arg_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +467 - format!("`ink! {}`", arg_kind) +467 + format!("`ink! {arg_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:470:41 + | +470 | ... format!("`ink! {}`", macro_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +470 - format!("`ink! {}`", macro_kind) +470 + format!("`ink! {macro_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:543:45 + | +543 | ... format!("argument `{}`", arg_kind,) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +543 - format!("argument `{}`", arg_kind,) +543 + format!("argument `{arg_kind}`",) + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:546:45 + | +546 | ... format!("macro `{}`", macro_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +546 - format!("macro `{}`", macro_kind) +546 + format!("macro `{macro_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/event.rs:95:42 + | +95 | ... message: format!( + | ________________________________^ +96 | | ... "`{}` attributes on event fields are not supported.", +97 | | ... attr +98 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +``` + +
    + +
    + + Unit and integration tests + +```bash +running 132 tests +test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::actions::tests::ast_item_actions_works ... ok +test analysis::diagnostics::chain_extension::tests::invalid_trait_properties_fails ... ok +test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok +test analysis::completions::tests::macro_completions_works ... ok +test analysis::diagnostics::chain_extension::tests::multiple_error_code_types_fails ... ok +test analysis::diagnostics::chain_extension::tests::overlapping_ids_fails ... ok +test analysis::completions::tests::argument_completions_works ... ok +test analysis::actions::tests::ink_attribute_actions_works ... ok +test analysis::diagnostics::chain_extension::tests::one_error_code_type_works ... ok +test analysis::diagnostics::constructor::tests::ink_descendants_fails ... ok +test analysis::diagnostics::constructor::tests::missing_return_type_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_trait_properties_works ... ok +test analysis::diagnostics::constructor::tests::invalid_callable_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::chain_extension::tests::invalid_trait_items_fails ... ok +test analysis::diagnostics::chain_extension::tests::non_overlapping_ids_works ... ok +test analysis::diagnostics::contract::tests::attribute_in_mod_body_fails ... ok +test analysis::diagnostics::constructor::tests::self_receiver_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_trait_items_works ... ok +test analysis::diagnostics::chain_extension::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::contract::tests::missing_constructor_fails ... ok +test analysis::diagnostics::contract::tests::missing_message_fails ... ok +test analysis::diagnostics::contract::tests::missing_storage_fails ... ok +test analysis::diagnostics::contract::tests::multiple_storage_items_fails ... ok +test analysis::diagnostics::contract::tests::multiple_wildcard_selectors_fails ... ok +test analysis::diagnostics::contract::tests::non_impl_parent_for_callables_fails ... ok +test analysis::diagnostics::contract::tests::non_mod_fails ... ok +test analysis::diagnostics::constructor::tests::valid_callable_works ... ok +test analysis::diagnostics::constructor::tests::no_self_receiver_works ... ok +test analysis::diagnostics::constructor::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::constructor::tests::return_type_works ... ok +test analysis::actions::tests::is_focused_on_ast_item_declaration_works ... ok +test analysis::diagnostics::contract::tests::out_of_line_mod_fails ... ok +test analysis::diagnostics::constructor::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::overlapping_selectors_fails ... ok +test analysis::diagnostics::contract::tests::root_items_not_in_root_fails ... ok +test analysis::diagnostics::contract::tests::one_or_multiple_constructors_works ... ok +test analysis::diagnostics::event::tests::cfg_field_fails ... ok +test analysis::diagnostics::contract::tests::impl_parent_for_callables_works ... ok +test analysis::diagnostics::event::tests::contract_parent_works ... ok +test analysis::diagnostics::event::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::event::tests::ink_topic_field_works ... ok +test analysis::diagnostics::event::tests::non_contract_parent_fails ... ok +test analysis::diagnostics::event::tests::non_cfg_field_works ... ok +test analysis::diagnostics::event::tests::non_pub_struct_fails ... ok +test analysis::diagnostics::event::tests::non_topic_ink_field_fails ... ok +test analysis::diagnostics::event::tests::struct_with_generics_fails ... ok +test analysis::diagnostics::event::tests::pub_struct_works ... ok +test analysis::diagnostics::event::tests::struct_with_no_generics_works ... ok +test analysis::diagnostics::extension::tests::ink_descendants_fails ... ok +test analysis::diagnostics::extension::tests::invalid_method_fails ... ok +test analysis::diagnostics::contract::tests::one_or_no_wildcard_selectors_works ... ok +test analysis::diagnostics::extension::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::extension::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::extension::tests::self_receiver_fails ... ok +test analysis::diagnostics::file::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::file::tests::multiple_contract_definitions_fails ... ok +test analysis::diagnostics::file::tests::no_contract_definitions_works ... ok +test analysis::diagnostics::file::tests::one_contract_definition_works ... ok +test analysis::diagnostics::file::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::extension::tests::no_self_receiver_works ... ok +test analysis::diagnostics::extension::tests::valid_method_works ... ok +test analysis::diagnostics::contract::tests::non_overlapping_selectors_works ... ok +test analysis::diagnostics::contract::tests::inline_mod_works ... ok +test analysis::diagnostics::contract::tests::one_or_multiple_messages_works ... ok +test analysis::diagnostics::ink_impl::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::ink_impl::tests::missing_annotation_and_no_callables_fails ... ok +test analysis::diagnostics::ink_impl::tests::invalid_impl_properties_fails ... ok +test analysis::diagnostics::ink_impl::tests::non_impl_fails ... ok +test analysis::diagnostics::ink_impl::tests::non_impl_parent_for_callables_fails ... ok +test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::ink_test::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::ink_test::tests::fn_works ... ok +test analysis::diagnostics::ink_test::tests::ink_descendants_fails ... ok +test analysis::diagnostics::ink_test::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::ink_test::tests::non_fn_fails ... ok +test analysis::diagnostics::contract::tests::one_storage_item_works ... ok +test analysis::diagnostics::message::tests::ink_descendants_fails ... ok +test analysis::diagnostics::ink_impl::tests::annotated_or_contains_callables_works ... ok +test analysis::diagnostics::message::tests::invalid_callable_fails ... ok +test analysis::diagnostics::message::tests::non_self_ref_receiver_fails ... ok +test analysis::diagnostics::ink_impl::tests::impl_works ... ok +test analysis::diagnostics::ink_impl::tests::impl_parent_for_callables_works ... ok +test analysis::diagnostics::message::tests::self_return_type_fails ... ok +test analysis::diagnostics::ink_impl::tests::valid_impl_properties_works ... ok +test analysis::diagnostics::storage::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::storage::tests::contract_parent_works ... ok +test analysis::diagnostics::storage::tests::ink_descendants_fails ... ok +test analysis::diagnostics::storage::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::storage::tests::non_contract_parent_fails ... ok +test analysis::diagnostics::storage::tests::non_pub_struct_fails ... ok +test analysis::diagnostics::storage::tests::pub_struct_works ... ok +test analysis::diagnostics::storage_item::tests::adt_works ... ok +test analysis::diagnostics::storage_item::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::storage_item::tests::ink_descendants_fails ... ok +test analysis::diagnostics::storage_item::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::storage_item::tests::non_adt_fails ... ok +test analysis::diagnostics::topic::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::topic::tests::non_struct_field_fails ... ok +test analysis::diagnostics::topic::tests::struct_field_works ... ok +test analysis::diagnostics::ink_impl::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::trait_definition::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::trait_definition::tests::invalid_trait_items_fails ... ok +test analysis::diagnostics::trait_definition::tests::invalid_trait_properties_fails ... ok +test analysis::diagnostics::trait_definition::tests::missing_message_fails ... ok +test analysis::diagnostics::trait_definition::tests::multiple_messages_works ... ok +test analysis::diagnostics::trait_definition::tests::one_message_works ... ok +test analysis::diagnostics::message::tests::non_self_return_type_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::message::tests::valid_callable_works ... ok +test analysis::diagnostics::message::tests::self_ref_receiver_works ... ok +test analysis::diagnostics::trait_definition::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::utils::tests::duplicate_attributes_and_arguments_fails ... ok +test analysis::diagnostics::utils::tests::identifiers_not_prefixed_with_ink_works ... ok +test analysis::diagnostics::utils::tests::identifiers_prefixed_with_ink_fails ... ok +test analysis::diagnostics::utils::tests::conflicting_attributes_and_arguments_fails ... ok +test analysis::diagnostics::utils::tests::invalid_attribute_argument_format_and_value_type_fails ... ok +test analysis::diagnostics::utils::tests::known_ink_attributes_works ... ok +test analysis::diagnostics::utils::tests::unknown_ink_attributes_fails ... ok +test analysis::diagnostics::utils::tests::no_conflicting_attributes_and_arguments_works ... ok +test analysis::diagnostics::message::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::utils::tests::no_duplicate_attributes_and_arguments_works ... ok +test analysis::diagnostics::utils::tests::valid_attribute_argument_format_and_value_type_works ... ok +test analysis::hover::tests::hover_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_trait_properties_works ... ok +test analysis::diagnostics::message::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_trait_items_works ... ok +test analysis::diagnostics::ink_impl::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok +test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok + +test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.54s + + Running tests/actions.rs (target/debug/deps/actions-9b69adca190e239e) + +running 1 test +test actions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s + + Running tests/completions.rs (target/debug/deps/completions-2fb385d575cb34b0) + +running 1 test +test completions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-35a69d5da649290e) + +running 1 test +test diagnostics_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.56s + + Running tests/hover.rs (target/debug/deps/hover-78b56127e91559bc) + +running 1 test +test hover_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-8d6ce456156f44e8) + +running 36 tests +test attrs::meta::separator::tests::cast_works ... ok +test attrs::meta::name::tests::cast_works ... ok +test chain_extension::tests::cast_works ... ok +test event::tests::cast_works ... ok +test attrs::utils::tests::parse_ink_args_works ... ok +test attrs::meta::value::tests::cast_works ... ok +test attrs::utils::tests::sort_ink_args_works ... ok +test ink_test::tests::cast_works ... ok +test extension::tests::cast_works ... ok +test file::tests::parse_works ... ok +test constructor::tests::cast_works ... ok +test selector::tests::cast_arg_works ... ok +test storage::tests::cast_works ... ok +test attrs::tests::cast_ink_attribute_works ... ok +test topic::tests::cast_works ... ok +test storage_item::tests::cast_works ... ok +test trait_definition::tests::cast_works ... ok +test tree::ast_ext::tests::parent_ast_item_works ... ok +test message::tests::cast_works ... ok +test tree::item_at_offset::tests::probable_and_normalized_parent_variants_works ... ok +test tree::utils::tests::ink_args_works ... ok +test tree::utils::tests::ink_attrs_ancestors_works ... ok +test tree::utils::tests::ink_arg_by_kind_works ... ok +test ink_impl::tests::cast_works ... ok +test tree::utils::tests::ink_attrs_closest_ancestors_works ... ok +test tree::utils::tests::ink_attrs_closest_descendants_works ... ok +test tree::utils::tests::ink_attrs_in_scope_works ... ok +test tree::utils::tests::ink_attrs_descendants_works ... ok +test tree::item_at_offset::tests::prev_and_next_token_variants_works ... ok +test tree::item_at_offset::tests::focused_token_and_affixes_works ... ok +test tree::utils::tests::ink_attrs_works ... ok +test selector::tests::compose_works ... ok +test tree::item_at_offset::tests::parent_variants_works ... ok +test tree::utils::tests::ink_impl_closest_descendants_works ... ok +test tree::utils::tests::ink_callable_closest_descendants_works ... ok +test contract::tests::cast_works ... ok + +test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-fb4c468f082713c0) + +running 13 tests +test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok +test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok +test from_ast::tests::struct_without_ast_field_fails ... ok +test utils::tests::contains_field_works ... ok +test utils::tests::find_attribute_by_path_works ... ok +test from_syntax::tests::struct_with_syntax_field_works ... ok +test from_syntax::tests::struct_with_ast_field_works ... ok +test utils::tests::find_field_works ... ok +test from_ast::tests::struct_with_ast_field_works ... ok +test utils::tests::parse_struct_fields_works ... ok +test from_syntax::tests::struct_with_ink_attr_field_works ... ok +test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok +test from_ink_attribute::tests::optional_fields_works ... ok + +test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/ink_lsp_server-24199617d9fb7881) + +running 17 tests +test dispatch::handlers::notification::tests::handle_did_change_text_document_works ... ok +test dispatch::handlers::notification::tests::handle_did_close_text_document_works ... ok +test dispatch::handlers::notification::tests::handle_did_open_text_document_works ... ok +test initialize::tests::server_capabilities_works ... ok +test memory::tests::memory_works ... ok +test initialize::tests::initialize_works ... ok +test dispatch::routers::notification::tests::request_router_works ... ok +test dispatch::routers::request::tests::request_router_works ... ok +test dispatch::handlers::request::tests::handle_completion_works ... ok +test translator::from_lsp::tests::offset_works ... ok +test translator::to_lsp::tests::position_works ... ok +test dispatch::actions::tests::publish_diagnostics_works ... ok +test dispatch::handlers::request::tests::handle_hover_works ... ok +test dispatch::handlers::request::tests::handle_code_action_works ... ok +test utils::tests::code_actions_kinds_works ... ok +test utils::tests::position_encoding_works ... ok +test dispatch::tests::main_loop_and_dispatcher_works ... ok + +test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/main.rs (target/debug/deps/ink_lsp_server-9baae7124d812d8b) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/actions.rs (target/debug/deps/actions-a68334fdf55e473c) + +running 1 test +test actions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.47s + + Running tests/completions.rs (target/debug/deps/completions-7a5efa8c88c2963e) + +running 1 test +test completions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.81s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-76f62205e26b96d8) + +running 1 test +test diagnostics_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s + + Running tests/hover.rs (target/debug/deps/hover-ce02a6d2c267a066) + +running 1 test +test hover_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s + + Running unittests src/lib.rs (target/debug/deps/test_utils-fc1fbe74d610e4ef) + +running 1 test +test tests::offset_at_variants_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests ink-analyzer + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s + + Doc-tests ink-analyzer-ir + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s + + Doc-tests ink-analyzer-macro + +running 4 tests +test src/lib.rs - from_ink_attribute_derive (line 70) ... ok +test src/lib.rs - from_ast_derive (line 35) ... ok +test src/lib.rs - (line 6) ... ok +test src/lib.rs - from_syntax_derive (line 100) ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s + + Doc-tests ink-lsp-server + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests test-utils + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` +
    + +
    + +Docker + +```bash +> docker build -t ink-analyzer . + + => exporting to image 0.0s + => => exporting layers 0.0s + => => writing image sha256:f64cf8672748a96a6258864e5f85fb6d27b0c0c131fd1ae6c601934028801c6a 0.0s + => => naming to docker.io/library/ink-analyzer +``` + +
    \ No newline at end of file From 27990538d8512de779de668df16e62522f94f1c3 Mon Sep 17 00:00:00 2001 From: dastansam Date: Mon, 3 Jul 2023 00:00:30 +0300 Subject: [PATCH 191/253] Add evaluation --- evaluations/subrelay_2_dastansam.md | 150 ++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 evaluations/subrelay_2_dastansam.md diff --git a/evaluations/subrelay_2_dastansam.md b/evaluations/subrelay_2_dastansam.md new file mode 100644 index 000000000..9dcc8c1d3 --- /dev/null +++ b/evaluations/subrelay_2_dastansam.md @@ -0,0 +1,150 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) +- **Milestone:** 2 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/subrelay_1_dsm-w3f.md) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/subrelay/subrelay-api/blob/main/LICENSE https://github.com/subrelay/interface/blob/main/LICENSE | | +| 0b. | Documentation | https://docs.subrelay.com/ | Extensive documentation. In some places invalid url is present https://app.subrelay.xyz (forgot to rename?) | +| 0c. | Testing and Testing Guide | https://github.com/subrelay/interface/tree/main/cypress https://github.com/subrelay/subrelay-api/tree/main/test | Couldn't run integration tests, more on this below. | +| 0d. | Docker file | https://docs.subrelay.com/self-hosted/getting-started | Working as expected. | +| 0e. | Article | https://docs.subrelay.com | Documentation page is working as expected. | +| 1. | Feature: Email integration | https://docs.subrelay.com/user-guide/email | Working as expected (screenshots attached below) | +| 2. | Feature: Telegram integration| https://docs.subrelay.com/user-guide/telegram | Working as expected (screenshots attached below) | +| 3. | Feature: Discord integration | https://docs.subrelay.com/user-guide/discord | Working as expected (screenshots attached below) | +| 4. | Feature: Workflow execution detail | https://app.subrelay.com/logs | Working as expected (screenshots attached below) | +| 5. | API | https://github.com/subrelay/subrelay-api | Runs locally, tests are provided and well documented | +| 6. | Integration | https://github.com/subrelay/interface | Looks smooth, every page works as expected. | + +## General Notes + +In general, all the features are delivered, I was able to test them on production and everything works as expected. + +The only thing that I couldn't test locally was the integration tests. Initially the errors were related to Postgres DB, I resolved them and even run the `migration` script that you run in the CI `yarn run typeorm migration:run`. But I still get several errors and all tests are failing. Maybe this is related to my local environment, regardless, I think this part of the code is missing some documentation. I see that issues are related to DB and missing tokens for Discord and Telegram bots. Would be great if you could provide some pre-requisites for running the integration tests locally. + +### Outputs + +
    + +Integration tests + +```bash +yarn run v1.22.19 +$ jest --config ./test/jest-e2e.json + FAIL test/user.e2e-spec.ts + User + GET /user/info + ✕ Get user info + GET user/connections/discord + ✕ Update nonexistence discord connection + ✕ Update discord connection + GET user/connections/telegram + ✕ Update nonexistence telegram connection + ✕ Update telegram connection + DELETE user/connections/discord + ✕ Delete discord connection + DELETE user/connections/telegram + ✕ Delete telegram connection + +● User › GET /user/info › Get user info + + QueryFailedError: relation "user" does not exist + + at PostgresQueryRunner.query (../src/driver/postgres/PostgresQueryRunner.ts:299:19) + at SelectQueryBuilder.loadRawResults (../src/query-builder/SelectQueryBuilder.ts:3789:25) + at SelectQueryBuilder.executeEntitiesAndRawResults (../src/query-builder/SelectQueryBuilder.ts:3541:26) + at SelectQueryBuilder.getRawAndEntities (../src/query-builder/SelectQueryBuilder.ts:1670:29) + at SelectQueryBuilder.getMany (../src/query-builder/SelectQueryBuilder.ts:1760:25) + at ../src/persistence/SubjectDatabaseEntityLoader.ts:118:32 + at async Promise.all (index 0) + at SubjectDatabaseEntityLoader.load (../src/persistence/SubjectDatabaseEntityLoader.ts:150:9) + at ../src/persistence/EntityPersistExecutor.ts:116:21 + + +● Chain › GET /chains › Get all chains + +QueryFailedError: relation "chain" does not exist + + at PostgresQueryRunner.query (../src/driver/postgres/PostgresQueryRunner.ts:299:19) + at SelectQueryBuilder.loadRawResults (../src/query-builder/SelectQueryBuilder.ts:3789:25) + at SelectQueryBuilder.getRawMany (../src/query-builder/SelectQueryBuilder.ts:1626:29) + at ChainService.onModuleInit (../src/chain/chain.service.ts:33:20) + at async Promise.all (index 0) + at callModuleInitHook (../node_modules/@nestjs/core/hooks/on-module-init.hook.js:43:5) + at Proxy.callInitHook (../node_modules/@nestjs/core/nest-application-context.js:224:13) + at Proxy.init (../node_modules/@nestjs/core/nest-application.js:98:9) + at Object. (chain.e2e-spec.ts:34:5) + + +[Nest] 67837 - 07/02/2023, 11:33:12 PM ERROR [ClientService] Failed to connect to Discord API +[Nest] 67837 - 07/02/2023, 11:33:12 PM ERROR [ClientService] Error [TokenInvalid]: An invalid token was provided. + FAIL test/task.e2e-spec.ts (5.445 s) +● Task › GET /tasks/filter/operators › Get operators for filter task + +Error [TokenInvalid]: An invalid token was provided. + + at Client.login (../node_modules/discord.js/src/client/Client.js:214:52) + at ClientService.onApplicationBootstrap (../node_modules/@discord-nestjs/core/src/services/client.service.ts:55:25) + at MapIterator.iteratee (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:22:43) + at MapIterator.next (../node_modules/iterare/src/map.ts:9:39) + at IteratorWithOperators.next (../node_modules/iterare/src/iterate.ts:19:28) + at Function.from () + at IteratorWithOperators.toArray (../node_modules/iterare/src/iterate.ts:227:22) + at callOperator (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:23:10) + at callModuleBootstrapHook (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:43:23) + at Proxy.callBootstrapHook (../node_modules/@nestjs/core/nest-application-context.js:244:55) + +● Task › POST /tasks/run › Telegram task › Failed with nonexistence event ID + +Error [TokenInvalid]: An invalid token was provided. + + at Client.login (../node_modules/discord.js/src/client/Client.js:214:52) + at ClientService.onApplicationBootstrap (../node_modules/@discord-nestjs/core/src/services/client.service.ts:55:25) + at MapIterator.iteratee (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:22:43) + at MapIterator.next (../node_modules/iterare/src/map.ts:9:39) + at IteratorWithOperators.next (../node_modules/iterare/src/iterate.ts:19:28) + at Function.from () + at IteratorWithOperators.toArray (../node_modules/iterare/src/iterate.ts:227:22) + at callOperator (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:23:10) + at callModuleBootstrapHook (../node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js:43:23) + at Proxy.callBootstrapHook (../node_modules/@nestjs/core/nest-application-context.js:244:55) + +● Task › DELETE /workflow/{workflow_id} › Delete a nonexistence workflow + +QueryFailedError: relation "chain" does not exist + + at PostgresQueryRunner.query (../src/driver/postgres/PostgresQueryRunner.ts:299:19) + at SelectQueryBuilder.loadRawResults (../src/query-builder/SelectQueryBuilder.ts:3789:25) + at SelectQueryBuilder.getRawMany (../src/query-builder/SelectQueryBuilder.ts:1626:29) + at ChainService.onModuleInit (../src/chain/chain.service.ts:33:20) + at async Promise.all (index 0) + at callModuleInitHook (../node_modules/@nestjs/core/hooks/on-module-init.hook.js:43:5) + at Proxy.callInitHook (../node_modules/@nestjs/core/nest-application-context.js:224:13) + at Proxy.init (../node_modules/@nestjs/core/nest-application.js:98:9) + +A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. +Test Suites: 4 failed, 4 total +Tests: 49 failed, 49 total +Snapshots: 0 total +Time: 6.232 s, estimated 7 s +Ran all test suites. +error Command failed with exit code 1. +``` + +
    + +### Screenshots + +#### Email + +#### Webhook + +#### Discord + +#### Telegram \ No newline at end of file From 076c6b3df9f7285d9b70dce5fdf62712b8abe6ea Mon Sep 17 00:00:00 2001 From: dastansam Date: Mon, 3 Jul 2023 00:02:42 +0300 Subject: [PATCH 192/253] Update --- evaluations/ink_analyzer_3_dastansam.md | 533 ------------------------ evaluations/subrelay_2_dastansam.md | 2 +- 2 files changed, 1 insertion(+), 534 deletions(-) delete mode 100644 evaluations/ink_analyzer_3_dastansam.md diff --git a/evaluations/ink_analyzer_3_dastansam.md b/evaluations/ink_analyzer_3_dastansam.md deleted file mode 100644 index 06b1db0b8..000000000 --- a/evaluations/ink_analyzer_3_dastansam.md +++ /dev/null @@ -1,533 +0,0 @@ -- **Status:** Accepted -- **Application Document:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) -- **Milestone:** 3 -- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) -- **Previously successfully merged evaluation:** [Milestone 2](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_2_dsm-w3f.md) - -**Deliverables** - -| Number | Deliverable | Link | Notes | -|---------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Correct licenses | -| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme), [language server (ink-lsp-server) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) on GitHub (and [crates.io](https://crates.io/crates/ink-lsp-server)), [language server (ink-lsp-server) crate rustdoc](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) library documentation on docs.rs and extensive inline source documentation. | Extensive documentation. | -| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Extensive unit tests and integration are provided. All tests are passing by running it with both native Rust and Docker image. | -| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | Dockerfile builds and all tests are passing. | -| 1. | Language Server: Rust binary crate: ink! Language Server Protocol implementation | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [Language server crate (ink-lsp-server)](https://crates.io/crates/ink-lsp-server). | Very well-written code, every piece code is commented and code coverage is high. The only non-critical issue is some warnings that clippy produces (logs attached below) | - -## General Notes - -The project is well documented and the code is almost flawless. Can't wait to see it in action after VSCode integration in the next milestone! - -### Outputs - -
    - Clippy - -```bash -warning: variables can be used directly in the `format!` string - --> crates/test-utils/src/lib.rs:28:36 - | -28 | lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - = note: `#[warn(clippy::uninlined_format_args)]` on by default -help: change this to - | -28 - lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() -28 + lsp_types::Url::from_file_path(format!("/test_data/{location}.rs")).unwrap() - | - -warning: `test-utils` (lib) generated 1 warning - Checking ink-analyzer-ir v0.7.0 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/ir) - Checking ink-analyzer v0.6.1 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/analyzer) -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/completions.rs:141:50 - | -141 | ... .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - = note: `#[warn(clippy::uninlined_format_args)]` on by default -help: change this to - | -141 - .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); -141 + .retain(|macro_kind| format!("{macro_kind}").starts_with(prefix)); - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/completions.rs:311:48 - | -311 | ... .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -311 - .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); -311 + .retain(|arg_kind| format!("{arg_kind}").starts_with(prefix)); - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:131:25 - | -131 | format!("Unknown ink! attribute argument: '{}'.", arg_name_text) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -131 - format!("Unknown ink! attribute argument: '{}'.", arg_name_text) -131 + format!("Unknown ink! attribute argument: '{arg_name_text}'.") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:148:42 - | -148 | ... message: format!("`{}` argument shouldn't have a value.", arg_name_text), - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -148 - message: format!("`{}` argument shouldn't have a value.", arg_name_text), -148 + message: format!("`{arg_name_text}` argument shouldn't have a value."), - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:220:42 - | -220 | ... message: format!( - | ________________________________^ -221 | | ... "`{}` argument should have a `boolean` (`bool`) value.", -222 | | ... arg_name_text -223 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:238:42 - | -238 | ... message: format!( - | ________________________________^ -239 | | ... "`{}` argument should have a `path` (e.g `my::env::Types`) value.", -240 | | ... arg_name_text -241 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:467:41 - | -467 | ... format!("`ink! {}`", arg_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -467 - format!("`ink! {}`", arg_kind) -467 + format!("`ink! {arg_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:470:41 - | -470 | ... format!("`ink! {}`", macro_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -470 - format!("`ink! {}`", macro_kind) -470 + format!("`ink! {macro_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:543:45 - | -543 | ... format!("argument `{}`", arg_kind,) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -543 - format!("argument `{}`", arg_kind,) -543 + format!("argument `{arg_kind}`",) - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:546:45 - | -546 | ... format!("macro `{}`", macro_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -546 - format!("macro `{}`", macro_kind) -546 + format!("macro `{macro_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/event.rs:95:42 - | -95 | ... message: format!( - | ________________________________^ -96 | | ... "`{}` attributes on event fields are not supported.", -97 | | ... attr -98 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -``` - -
    - -
    - - Unit and integration tests - -```bash -running 132 tests -test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::actions::tests::ast_item_actions_works ... ok -test analysis::diagnostics::chain_extension::tests::invalid_trait_properties_fails ... ok -test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok -test analysis::completions::tests::macro_completions_works ... ok -test analysis::diagnostics::chain_extension::tests::multiple_error_code_types_fails ... ok -test analysis::diagnostics::chain_extension::tests::overlapping_ids_fails ... ok -test analysis::completions::tests::argument_completions_works ... ok -test analysis::actions::tests::ink_attribute_actions_works ... ok -test analysis::diagnostics::chain_extension::tests::one_error_code_type_works ... ok -test analysis::diagnostics::constructor::tests::ink_descendants_fails ... ok -test analysis::diagnostics::constructor::tests::missing_return_type_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_trait_properties_works ... ok -test analysis::diagnostics::constructor::tests::invalid_callable_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::chain_extension::tests::invalid_trait_items_fails ... ok -test analysis::diagnostics::chain_extension::tests::non_overlapping_ids_works ... ok -test analysis::diagnostics::contract::tests::attribute_in_mod_body_fails ... ok -test analysis::diagnostics::constructor::tests::self_receiver_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_trait_items_works ... ok -test analysis::diagnostics::chain_extension::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::contract::tests::missing_constructor_fails ... ok -test analysis::diagnostics::contract::tests::missing_message_fails ... ok -test analysis::diagnostics::contract::tests::missing_storage_fails ... ok -test analysis::diagnostics::contract::tests::multiple_storage_items_fails ... ok -test analysis::diagnostics::contract::tests::multiple_wildcard_selectors_fails ... ok -test analysis::diagnostics::contract::tests::non_impl_parent_for_callables_fails ... ok -test analysis::diagnostics::contract::tests::non_mod_fails ... ok -test analysis::diagnostics::constructor::tests::valid_callable_works ... ok -test analysis::diagnostics::constructor::tests::no_self_receiver_works ... ok -test analysis::diagnostics::constructor::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::constructor::tests::return_type_works ... ok -test analysis::actions::tests::is_focused_on_ast_item_declaration_works ... ok -test analysis::diagnostics::contract::tests::out_of_line_mod_fails ... ok -test analysis::diagnostics::constructor::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::overlapping_selectors_fails ... ok -test analysis::diagnostics::contract::tests::root_items_not_in_root_fails ... ok -test analysis::diagnostics::contract::tests::one_or_multiple_constructors_works ... ok -test analysis::diagnostics::event::tests::cfg_field_fails ... ok -test analysis::diagnostics::contract::tests::impl_parent_for_callables_works ... ok -test analysis::diagnostics::event::tests::contract_parent_works ... ok -test analysis::diagnostics::event::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::event::tests::ink_topic_field_works ... ok -test analysis::diagnostics::event::tests::non_contract_parent_fails ... ok -test analysis::diagnostics::event::tests::non_cfg_field_works ... ok -test analysis::diagnostics::event::tests::non_pub_struct_fails ... ok -test analysis::diagnostics::event::tests::non_topic_ink_field_fails ... ok -test analysis::diagnostics::event::tests::struct_with_generics_fails ... ok -test analysis::diagnostics::event::tests::pub_struct_works ... ok -test analysis::diagnostics::event::tests::struct_with_no_generics_works ... ok -test analysis::diagnostics::extension::tests::ink_descendants_fails ... ok -test analysis::diagnostics::extension::tests::invalid_method_fails ... ok -test analysis::diagnostics::contract::tests::one_or_no_wildcard_selectors_works ... ok -test analysis::diagnostics::extension::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::extension::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::extension::tests::self_receiver_fails ... ok -test analysis::diagnostics::file::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::file::tests::multiple_contract_definitions_fails ... ok -test analysis::diagnostics::file::tests::no_contract_definitions_works ... ok -test analysis::diagnostics::file::tests::one_contract_definition_works ... ok -test analysis::diagnostics::file::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::extension::tests::no_self_receiver_works ... ok -test analysis::diagnostics::extension::tests::valid_method_works ... ok -test analysis::diagnostics::contract::tests::non_overlapping_selectors_works ... ok -test analysis::diagnostics::contract::tests::inline_mod_works ... ok -test analysis::diagnostics::contract::tests::one_or_multiple_messages_works ... ok -test analysis::diagnostics::ink_impl::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::ink_impl::tests::missing_annotation_and_no_callables_fails ... ok -test analysis::diagnostics::ink_impl::tests::invalid_impl_properties_fails ... ok -test analysis::diagnostics::ink_impl::tests::non_impl_fails ... ok -test analysis::diagnostics::ink_impl::tests::non_impl_parent_for_callables_fails ... ok -test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::ink_test::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::ink_test::tests::fn_works ... ok -test analysis::diagnostics::ink_test::tests::ink_descendants_fails ... ok -test analysis::diagnostics::ink_test::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::ink_test::tests::non_fn_fails ... ok -test analysis::diagnostics::contract::tests::one_storage_item_works ... ok -test analysis::diagnostics::message::tests::ink_descendants_fails ... ok -test analysis::diagnostics::ink_impl::tests::annotated_or_contains_callables_works ... ok -test analysis::diagnostics::message::tests::invalid_callable_fails ... ok -test analysis::diagnostics::message::tests::non_self_ref_receiver_fails ... ok -test analysis::diagnostics::ink_impl::tests::impl_works ... ok -test analysis::diagnostics::ink_impl::tests::impl_parent_for_callables_works ... ok -test analysis::diagnostics::message::tests::self_return_type_fails ... ok -test analysis::diagnostics::ink_impl::tests::valid_impl_properties_works ... ok -test analysis::diagnostics::storage::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::storage::tests::contract_parent_works ... ok -test analysis::diagnostics::storage::tests::ink_descendants_fails ... ok -test analysis::diagnostics::storage::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::storage::tests::non_contract_parent_fails ... ok -test analysis::diagnostics::storage::tests::non_pub_struct_fails ... ok -test analysis::diagnostics::storage::tests::pub_struct_works ... ok -test analysis::diagnostics::storage_item::tests::adt_works ... ok -test analysis::diagnostics::storage_item::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::storage_item::tests::ink_descendants_fails ... ok -test analysis::diagnostics::storage_item::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::storage_item::tests::non_adt_fails ... ok -test analysis::diagnostics::topic::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::topic::tests::non_struct_field_fails ... ok -test analysis::diagnostics::topic::tests::struct_field_works ... ok -test analysis::diagnostics::ink_impl::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::trait_definition::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::trait_definition::tests::invalid_trait_items_fails ... ok -test analysis::diagnostics::trait_definition::tests::invalid_trait_properties_fails ... ok -test analysis::diagnostics::trait_definition::tests::missing_message_fails ... ok -test analysis::diagnostics::trait_definition::tests::multiple_messages_works ... ok -test analysis::diagnostics::trait_definition::tests::one_message_works ... ok -test analysis::diagnostics::message::tests::non_self_return_type_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::message::tests::valid_callable_works ... ok -test analysis::diagnostics::message::tests::self_ref_receiver_works ... ok -test analysis::diagnostics::trait_definition::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::utils::tests::duplicate_attributes_and_arguments_fails ... ok -test analysis::diagnostics::utils::tests::identifiers_not_prefixed_with_ink_works ... ok -test analysis::diagnostics::utils::tests::identifiers_prefixed_with_ink_fails ... ok -test analysis::diagnostics::utils::tests::conflicting_attributes_and_arguments_fails ... ok -test analysis::diagnostics::utils::tests::invalid_attribute_argument_format_and_value_type_fails ... ok -test analysis::diagnostics::utils::tests::known_ink_attributes_works ... ok -test analysis::diagnostics::utils::tests::unknown_ink_attributes_fails ... ok -test analysis::diagnostics::utils::tests::no_conflicting_attributes_and_arguments_works ... ok -test analysis::diagnostics::message::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::utils::tests::no_duplicate_attributes_and_arguments_works ... ok -test analysis::diagnostics::utils::tests::valid_attribute_argument_format_and_value_type_works ... ok -test analysis::hover::tests::hover_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_trait_properties_works ... ok -test analysis::diagnostics::message::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_trait_items_works ... ok -test analysis::diagnostics::ink_impl::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok -test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok - -test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.54s - - Running tests/actions.rs (target/debug/deps/actions-9b69adca190e239e) - -running 1 test -test actions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s - - Running tests/completions.rs (target/debug/deps/completions-2fb385d575cb34b0) - -running 1 test -test completions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s - - Running tests/diagnostics.rs (target/debug/deps/diagnostics-35a69d5da649290e) - -running 1 test -test diagnostics_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.56s - - Running tests/hover.rs (target/debug/deps/hover-78b56127e91559bc) - -running 1 test -test hover_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s - - Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-8d6ce456156f44e8) - -running 36 tests -test attrs::meta::separator::tests::cast_works ... ok -test attrs::meta::name::tests::cast_works ... ok -test chain_extension::tests::cast_works ... ok -test event::tests::cast_works ... ok -test attrs::utils::tests::parse_ink_args_works ... ok -test attrs::meta::value::tests::cast_works ... ok -test attrs::utils::tests::sort_ink_args_works ... ok -test ink_test::tests::cast_works ... ok -test extension::tests::cast_works ... ok -test file::tests::parse_works ... ok -test constructor::tests::cast_works ... ok -test selector::tests::cast_arg_works ... ok -test storage::tests::cast_works ... ok -test attrs::tests::cast_ink_attribute_works ... ok -test topic::tests::cast_works ... ok -test storage_item::tests::cast_works ... ok -test trait_definition::tests::cast_works ... ok -test tree::ast_ext::tests::parent_ast_item_works ... ok -test message::tests::cast_works ... ok -test tree::item_at_offset::tests::probable_and_normalized_parent_variants_works ... ok -test tree::utils::tests::ink_args_works ... ok -test tree::utils::tests::ink_attrs_ancestors_works ... ok -test tree::utils::tests::ink_arg_by_kind_works ... ok -test ink_impl::tests::cast_works ... ok -test tree::utils::tests::ink_attrs_closest_ancestors_works ... ok -test tree::utils::tests::ink_attrs_closest_descendants_works ... ok -test tree::utils::tests::ink_attrs_in_scope_works ... ok -test tree::utils::tests::ink_attrs_descendants_works ... ok -test tree::item_at_offset::tests::prev_and_next_token_variants_works ... ok -test tree::item_at_offset::tests::focused_token_and_affixes_works ... ok -test tree::utils::tests::ink_attrs_works ... ok -test selector::tests::compose_works ... ok -test tree::item_at_offset::tests::parent_variants_works ... ok -test tree::utils::tests::ink_impl_closest_descendants_works ... ok -test tree::utils::tests::ink_callable_closest_descendants_works ... ok -test contract::tests::cast_works ... ok - -test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-fb4c468f082713c0) - -running 13 tests -test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok -test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok -test from_ast::tests::struct_without_ast_field_fails ... ok -test utils::tests::contains_field_works ... ok -test utils::tests::find_attribute_by_path_works ... ok -test from_syntax::tests::struct_with_syntax_field_works ... ok -test from_syntax::tests::struct_with_ast_field_works ... ok -test utils::tests::find_field_works ... ok -test from_ast::tests::struct_with_ast_field_works ... ok -test utils::tests::parse_struct_fields_works ... ok -test from_syntax::tests::struct_with_ink_attr_field_works ... ok -test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok -test from_ink_attribute::tests::optional_fields_works ... ok - -test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running unittests src/lib.rs (target/debug/deps/ink_lsp_server-24199617d9fb7881) - -running 17 tests -test dispatch::handlers::notification::tests::handle_did_change_text_document_works ... ok -test dispatch::handlers::notification::tests::handle_did_close_text_document_works ... ok -test dispatch::handlers::notification::tests::handle_did_open_text_document_works ... ok -test initialize::tests::server_capabilities_works ... ok -test memory::tests::memory_works ... ok -test initialize::tests::initialize_works ... ok -test dispatch::routers::notification::tests::request_router_works ... ok -test dispatch::routers::request::tests::request_router_works ... ok -test dispatch::handlers::request::tests::handle_completion_works ... ok -test translator::from_lsp::tests::offset_works ... ok -test translator::to_lsp::tests::position_works ... ok -test dispatch::actions::tests::publish_diagnostics_works ... ok -test dispatch::handlers::request::tests::handle_hover_works ... ok -test dispatch::handlers::request::tests::handle_code_action_works ... ok -test utils::tests::code_actions_kinds_works ... ok -test utils::tests::position_encoding_works ... ok -test dispatch::tests::main_loop_and_dispatcher_works ... ok - -test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running unittests src/main.rs (target/debug/deps/ink_lsp_server-9baae7124d812d8b) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/actions.rs (target/debug/deps/actions-a68334fdf55e473c) - -running 1 test -test actions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.47s - - Running tests/completions.rs (target/debug/deps/completions-7a5efa8c88c2963e) - -running 1 test -test completions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.81s - - Running tests/diagnostics.rs (target/debug/deps/diagnostics-76f62205e26b96d8) - -running 1 test -test diagnostics_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s - - Running tests/hover.rs (target/debug/deps/hover-ce02a6d2c267a066) - -running 1 test -test hover_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s - - Running unittests src/lib.rs (target/debug/deps/test_utils-fc1fbe74d610e4ef) - -running 1 test -test tests::offset_at_variants_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests ink-analyzer - -running 1 test -test src/lib.rs - (line 7) ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s - - Doc-tests ink-analyzer-ir - -running 1 test -test src/lib.rs - (line 7) ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s - - Doc-tests ink-analyzer-macro - -running 4 tests -test src/lib.rs - from_ink_attribute_derive (line 70) ... ok -test src/lib.rs - from_ast_derive (line 35) ... ok -test src/lib.rs - (line 6) ... ok -test src/lib.rs - from_syntax_derive (line 100) ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s - - Doc-tests ink-lsp-server - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests test-utils - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s -``` -
    - -
    - -Docker - -```bash -> docker build -t ink-analyzer . - - => exporting to image 0.0s - => => exporting layers 0.0s - => => writing image sha256:f64cf8672748a96a6258864e5f85fb6d27b0c0c131fd1ae6c601934028801c6a 0.0s - => => naming to docker.io/library/ink-analyzer -``` - -
    \ No newline at end of file diff --git a/evaluations/subrelay_2_dastansam.md b/evaluations/subrelay_2_dastansam.md index 9dcc8c1d3..74f4877f9 100644 --- a/evaluations/subrelay_2_dastansam.md +++ b/evaluations/subrelay_2_dastansam.md @@ -1,7 +1,7 @@ # Evaluation - **Status:** In Progress -- **Application Document:** [Application](https://github.com/Szegoo/Grants-Program/blob/42b031052c16670685c65a409d91779d0069903a/applications/Dotflow.md) +- **Application Document:** [Application](https://github.com/w3f/Grants-Program/pull/1252) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) - **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/subrelay_1_dsm-w3f.md) From 1c48ac908819f42a92527123a4265cbbf45f4a9e Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 3 Jul 2023 00:13:41 +0300 Subject: [PATCH 193/253] Update subrelay_2_dastansam.md --- evaluations/subrelay_2_dastansam.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/evaluations/subrelay_2_dastansam.md b/evaluations/subrelay_2_dastansam.md index 74f4877f9..188b10eda 100644 --- a/evaluations/subrelay_2_dastansam.md +++ b/evaluations/subrelay_2_dastansam.md @@ -26,7 +26,7 @@ In general, all the features are delivered, I was able to test them on production and everything works as expected. -The only thing that I couldn't test locally was the integration tests. Initially the errors were related to Postgres DB, I resolved them and even run the `migration` script that you run in the CI `yarn run typeorm migration:run`. But I still get several errors and all tests are failing. Maybe this is related to my local environment, regardless, I think this part of the code is missing some documentation. I see that issues are related to DB and missing tokens for Discord and Telegram bots. Would be great if you could provide some pre-requisites for running the integration tests locally. +The only thing that I couldn't test locally was the integration tests. Initially the errors were related to Postgres DB, I resolved them and even run the `migration` script that you run in the CI `yarn run typeorm migration:run`. But I still get several errors and all tests are failing. Maybe this is related to my local environment, regardless, I think this part of the code is missing some documentation. I see that errors are related to DB and missing tokens for Discord and Telegram bots. Would be great if you could clearly indicate pre-requisites for running the integration tests locally in the README. ### Outputs @@ -141,10 +141,27 @@ error Command failed with exit code 1. ### Screenshots +Workflow dashboard: + +Workflow dashboard + #### Email +Email notifs + #### Webhook +Webhook notifs + + #### Discord -#### Telegram \ No newline at end of file +Discord notifs + +#### Telegram + +![image](https://github.com/dastansam/Grant-Milestone-Delivery/assets/88332432/e08c3701-f5d9-46c1-9d98-b0c06e50cb85) + +### Logs + +Logs From 83e6e968b335ddc3c9cfda9e8109e911551a825c Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Mon, 3 Jul 2023 00:14:25 +0300 Subject: [PATCH 194/253] Update subrelay_2_dastansam.md --- evaluations/subrelay_2_dastansam.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluations/subrelay_2_dastansam.md b/evaluations/subrelay_2_dastansam.md index 188b10eda..0fc014a15 100644 --- a/evaluations/subrelay_2_dastansam.md +++ b/evaluations/subrelay_2_dastansam.md @@ -1,7 +1,7 @@ # Evaluation - **Status:** In Progress -- **Application Document:** [Application](https://github.com/w3f/Grants-Program/pull/1252) +- **Application Document:** [Subrelay](https://github.com/w3f/Grants-Program/pull/1252) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) - **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/subrelay_1_dsm-w3f.md) @@ -10,7 +10,7 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | -| 0a. | License | https://github.com/subrelay/subrelay-api/blob/main/LICENSE https://github.com/subrelay/interface/blob/main/LICENSE | | +| 0a. | License | https://github.com/subrelay/subrelay-api/blob/main/LICENSE https://github.com/subrelay/interface/blob/main/LICENSE | Correct licenses. | | 0b. | Documentation | https://docs.subrelay.com/ | Extensive documentation. In some places invalid url is present https://app.subrelay.xyz (forgot to rename?) | | 0c. | Testing and Testing Guide | https://github.com/subrelay/interface/tree/main/cypress https://github.com/subrelay/subrelay-api/tree/main/test | Couldn't run integration tests, more on this below. | | 0d. | Docker file | https://docs.subrelay.com/self-hosted/getting-started | Working as expected. | From 471aa1b928745b27fa13578d7323d787f25c6c3b Mon Sep 17 00:00:00 2001 From: Seraya Takahashi Date: Mon, 3 Jul 2023 16:36:48 +0200 Subject: [PATCH 195/253] update patron m1 eval --- evaluations/patron_1_takahser.md | 147 ++++++++++++++++++++++++++++--- 1 file changed, 135 insertions(+), 12 deletions(-) diff --git a/evaluations/patron_1_takahser.md b/evaluations/patron_1_takahser.md index 1c3e5f9be..9c0ace6ef 100644 --- a/evaluations/patron_1_takahser.md +++ b/evaluations/patron_1_takahser.md @@ -11,15 +11,15 @@ | 0a. | License |
    • [x]
    | [MIT](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/LICENSE) | - | | 0b. | Documentation |
    • [x]
    | [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/cli.md), [self-hosting instructions](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md), [API docs](https://api.patron.works/docs) | See [documentation feedback](#documentation-feedback). | | 0c. | Testing guidelines |
    • [x]
    | [Instructions in Delivery](https://github.com/w3f/Grant-Milestone-Delivery/pull/871/files#diff-c6776ce4032fba925481b56ba22f31870e3afd145b38a80d8854ab970066986bR25-R167) | See [testing guidelines feedback](#testing-guidelines-feedback). | -| 0d. | Docker |
    • [ ]
    | [containers.rs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/builder/src/process/container.rs) | See [Docker Feedback](#docker-feedback) | +| 0d. | Docker |
    • [x]
    | [containers.rs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/builder/src/process/container.rs) | See [Docker Feedback](#docker-feedback) | | 0e. | Article |
    • [x]
    | [Medium Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) | ~~Rather poorly written. I assume there hasn't been any proof-reading process. Given the price tag of this grant I think it'd be fair to expect a higher quality here.~~ Still not perfect, but drastically improved from the earlier version. I'm willing to accept it at this stage, however, feel free to further improve it. | -| 1a. | Backend storage |
    • [ ]
    | [db crate](https://github.com/Brushfam/patron-backend/tree/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/db) | See [backend storage feedback](#backend-storage-feedback). | -| 1b. | Sync server |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A separate server that catches new contract deployments and events will be implemented. | -| 1c. | Smart contract builder |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | -| 2a. | Web UI |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A simple web UI will be implemented to expose Patron functionality. | -| 2b. | Detailed contract information |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: Frontend to display detailed contract info (as well as verification status) will be implemented. | -| 2c. | User authentication |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: We will implement a web3-oriented authentication solution | -| 3a. | Developer CLI utility |
    • [ ]
    | (will review after 0d., 1b. are fixed) | Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | +| 1a. | Backend storage |
    • [x]
    | [db crate](https://github.com/Brushfam/patron-backend/tree/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/db) | See [backend storage feedback](#backend-storage-feedback). | +| 1b. | Sync server |
    • [x]
    | [server crate](https://github.com/Brushfam/patron-backend/tree/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/server) | - | +| 1c. | Smart contract builder |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/deploy.rs) | The link provided returns a 404; Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | +| 2a. | Web UI |
    • [ ]
    | [patron frontend repo](https://github.com/Brushfam/patron-frontend/tree/master) | See [Web UI Feedback](#web-ui-feedback) | +| 2b. | Detailed contract information |
    • [ ]
    | [CodeHashWindow.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/pages/CodeHashWindow.tsx) | -| +| 2c. | User authentication |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/auth.rs) | The link provided returns a 404; Spec: We will implement a web3-oriented authentication solution | +| 3a. | Developer CLI utility |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/tree/master/crates/cli) | The link provided returns a 404; Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | Ideally all links inside the above table should include the commit hash, @@ -44,7 +44,7 @@ Update: inline-comments and [API docs](https://api.patron.works/docs) have been ``` patron-backend % cargo test - Compiling event_client v0.1.0 (/Users/seraya/repos/patron-backend/crates/event_client) + Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) Finished test [unoptimized + debuginfo] target(s) in 2m 52s Running unittests src/main.rs (target/debug/deps/builder-761d50c22f6d842b) @@ -172,12 +172,20 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini Creating the Nix build user (#7), _nixbld7 ``` -- there are no instructions for using docker without NIX, feel free to add those as well -- also, I didn't find any docker or docker-compose files except for the [containers.rs](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/builder/src/process/container.rs) of which I'm not sure what exactly it does, feel free to add some more info there as well +- ~~there are no instructions for using docker without NIX, feel free to add those as well~~ => apparently there is no good way to use it on MacOS (although it's officially supported) since its usage relies heaviliy on linux-specific components that are not present on MacOS. +- ~~also, I didn't find any docker or docker-compose files except for the [containers.rs](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/builder/src/process/container.rs) of which I'm not sure what exactly it does, feel free to add some more info there as well~~ +- The docker containers are built dynamically and rely on linux-specific components such as `udisks2` which is why no hardcoded docker files have been added. While the CLI doesn't rely on linux-specific components it's still not possible to dockerize it for technical reasons. +- The instructions have been successfully tested on a Linux Ubuntu machine. This involved: + - setting up the db + - initialize the db using a remote (astar) node + - query data on the local db, such as contracts and contract owner addresses + - listen to incoming ink! smartcontract events + - CLI, incl. authentication + - upload and verification of a smart contract using the web ui ### Backend Storage Feedback -- regarding running the DB, please add instructions on how to install and configure it so it matches your example *Config.toml* file mentioned in the [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md#configuration) +- regarding running the DB, ~~please add instructions on how to install and configure it so it matches your example *Config.toml* file mentioned in the [CLI docs](https://github.com/Brushfam/patron-backend/blob/fcaefc0df32a58a58aa056ef5952223829f19ee7/docs/self-hosted.md#configuration)~~ the [install instructions](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/docs/self-hosted.md#postgresql) and [an example config file](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/docs/self-hosted.md#configuration) have been added - the build passes: @@ -204,3 +212,118 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini Compiling builder v0.1.0 (/Users/xxx/repos/patron-backend/crates/builder) Finished release [optimized] target(s) in 5m 15s ``` + +### Web UI Feedback + +- [ ] there are currently a couple of npm vulnerabilities present. Please fix them or explain why they shouldn't or can't be fixed (if applicable): + + ```bash + patron-frontend % npm i + npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility + npm WARN deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. + npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead + npm WARN deprecated workbox-cacheable-response@6.6.0: workbox-background-sync@6.6.0 + npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. + npm WARN deprecated webextension-polyfill-ts@0.25.0: This project has moved to @types/webextension-polyfill + + added 1592 packages, and audited 1593 packages in 1m + + 254 packages are looking for funding + run `npm fund` for details + + 74 vulnerabilities (69 moderate, 5 high) + + To address issues that do not require attention, run: + npm audit fix + + To address all issues (including breaking changes), run: + npm audit fix --force + + Run `npm audit` for details. + ``` + +- [ ] The UI can be started successfully, but there are some warnings. Some can easily be fixed, for example this code in [AddressElements.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/components/ContractComponents/AddressElements.tsx#L56): `{"user`. Full excerpt: + + + ```bash + patron-frontend % npm run start + + (...) + + Compiled with warnings. + + [eslint] + src/components/ContractComponents/AddressElements.tsx + Line 56:42: Expected '===' and instead saw '==' eqeqeq + + src/components/ContractComponents/Info.tsx + Line 55:8: React Hook useEffect has a missing dependency: 'props.address'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/ContractComponents/Log.tsx + Line 31:8: React Hook useEffect has a missing dependency: 'props.hash'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/Footer.tsx + Line 19:25: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text + + src/components/Lists/AccountList.tsx + Line 55:9: React Hook useCallback has a missing dependency: 'props.wallet?.signer'. Either include it or remove the dependency array react-hooks/exhaustive-deps + Line 129:8: React Hook useEffect has a missing dependency: 'props.wallet'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/Lists/WalletsList.tsx + Line 7:8: 'ListItemButton' is defined but never used @typescript-eslint/no-unused-vars + Line 27:48: Array.prototype.map() expects a return value from arrow function array-callback-return + Line 34:9: React Hook useCallback has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useCallback call and refer to those specific props inside useCallback react-hooks/exhaustive-deps + + src/context/UserContext.tsx + Line 1:47: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + + src/layouts/LoginLayout.tsx + Line 3:10: 'Footer' is defined but never used @typescript-eslint/no-unused-vars + + src/pages/CodeHashWindow.tsx + Line 46:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/pages/ContractWindow.tsx + Line 80:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + Search for the keywords to learn more about each warning. + To ignore, add // eslint-disable-next-line to the line before. + + WARNING in [eslint] + src/components/ContractComponents/AddressElements.tsx + Line 56:42: Expected '===' and instead saw '==' eqeqeq + + src/components/ContractComponents/Info.tsx + Line 55:8: React Hook useEffect has a missing dependency: 'props.address'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/ContractComponents/Log.tsx + Line 31:8: React Hook useEffect has a missing dependency: 'props.hash'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/Footer.tsx + Line 19:25: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text + + src/components/Lists/AccountList.tsx + Line 55:9: React Hook useCallback has a missing dependency: 'props.wallet?.signer'. Either include it or remove the dependency array react-hooks/exhaustive-deps + Line 129:8: React Hook useEffect has a missing dependency: 'props.wallet'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/components/Lists/WalletsList.tsx + Line 7:8: 'ListItemButton' is defined but never used @typescript-eslint/no-unused-vars + Line 27:48: Array.prototype.map() expects a return value from arrow function array-callback-return + Line 34:9: React Hook useCallback has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useCallback call and refer to those specific props inside useCallback react-hooks/exhaustive-deps + + src/context/UserContext.tsx + Line 1:47: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + + src/layouts/LoginLayout.tsx + Line 3:10: 'Footer' is defined but never used @typescript-eslint/no-unused-vars + + src/pages/CodeHashWindow.tsx + Line 46:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + src/pages/ContractWindow.tsx + Line 80:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + + webpack compiled with 1 warning + No issues found. + ``` \ No newline at end of file From cde1d604b9005afe48dac561dd9933de95e888d0 Mon Sep 17 00:00:00 2001 From: S E R A Y A Date: Mon, 3 Jul 2023 16:37:53 +0200 Subject: [PATCH 196/253] update patron m1 eval --- evaluations/patron_1_takahser.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluations/patron_1_takahser.md b/evaluations/patron_1_takahser.md index 9c0ace6ef..1e517903c 100644 --- a/evaluations/patron_1_takahser.md +++ b/evaluations/patron_1_takahser.md @@ -17,7 +17,7 @@ | 1b. | Sync server |
    • [x]
    | [server crate](https://github.com/Brushfam/patron-backend/tree/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/server) | - | | 1c. | Smart contract builder |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/deploy.rs) | The link provided returns a 404; Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | | 2a. | Web UI |
    • [ ]
    | [patron frontend repo](https://github.com/Brushfam/patron-frontend/tree/master) | See [Web UI Feedback](#web-ui-feedback) | -| 2b. | Detailed contract information |
    • [ ]
    | [CodeHashWindow.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/pages/CodeHashWindow.tsx) | -| +| 2b. | Detailed contract information |
    • [x]
    | [CodeHashWindow.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/pages/CodeHashWindow.tsx) | - | | 2c. | User authentication |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/auth.rs) | The link provided returns a 404; Spec: We will implement a web3-oriented authentication solution | | 3a. | Developer CLI utility |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/tree/master/crates/cli) | The link provided returns a 404; Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | @@ -326,4 +326,4 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini webpack compiled with 1 warning No issues found. - ``` \ No newline at end of file + ``` From 4c506821d373dd909ef84b86f562b2c1649fc399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 4 Jul 2023 10:23:09 +0200 Subject: [PATCH 197/253] Update google_sheet_update.yml Fix column references --- .github/workflows/google_sheet_update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/google_sheet_update.yml b/.github/workflows/google_sheet_update.yml index 17df1e008..c3d6d9ca0 100644 --- a/.github/workflows/google_sheet_update.yml +++ b/.github/workflows/google_sheet_update.yml @@ -108,7 +108,7 @@ jobs: "", "${{ steps.date.outputs.date }}", "", - "=IF(ISNUMBER(INDIRECT(ADDRESS(ROW(),11))),INDIRECT(ADDRESS(ROW(),11))-INDIRECT(ADDRESS(ROW(),10)),\"\")", + "=IF(ISNUMBER(INDIRECT(ADDRESS(ROW(),COLUMN()-1))),INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)),\"\")", "=IF(INDIRECT(ADDRESS(ROW(),5))=\"Done\",VLOOKUP(INDIRECT(ADDRESS(ROW(),2)),Milestones!B:BE,SWITCH(INDIRECT(ADDRESS(ROW(),3)),1,19,2,23,3,27,4,31,5,35,6,39,7,43,8,47,9,51,10,55),FALSE),\"\")", "=IF(INDIRECT(ADDRESS(ROW(),5))=\"Done\",VLOOKUP(INDIRECT(ADDRESS(ROW(),2)),Milestones!B:BE,SWITCH(INDIRECT(ADDRESS(ROW(),3)),1,20,2,24,3,28,4,32,5,36,6,40,7,44,8,48,9,52,10,56),FALSE),\"\")" ]], From 747e5f4cf3ea928b318634549ee7e26bbde5bc14 Mon Sep 17 00:00:00 2001 From: valeriacaracciolo <71491710+valeriacaracciolo@users.noreply.github.com> Date: Tue, 4 Jul 2023 15:10:21 -0300 Subject: [PATCH 198/253] Create ScoutCoinFabrik-2.md --- deliveries/ScoutCoinFabrik-2.md | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 deliveries/ScoutCoinFabrik-2.md diff --git a/deliveries/ScoutCoinFabrik-2.md b/deliveries/ScoutCoinFabrik-2.md new file mode 100644 index 000000000..4e4e8d527 --- /dev/null +++ b/deliveries/ScoutCoinFabrik-2.md @@ -0,0 +1,48 @@ +# 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/ScoutCoinFabrik_2.md +* **Milestone Number:** 1 + +**Context** (optional) + +In this delivery we provide a prototype of an extensible open-source tool intended to assist ink! smart contract developers and auditors detect common security issues and deviations from best practices. This prototype includes: +* A Command Line Interface. +* A VSCode extension. +* An extended list of detectors, test-cases and vulnerability classes. +* A [web page](https://coinfabrik.github.io/scout/) for the tool, providing further documentation. + +We also include, as part of this delivery, a blog post and an evaluation report of the tool against a selection of projects deployed on testnet or mainnet. + +This [Prototype](https://github.com/CoinFabrik/scout/tree/web3-v2) builds on our [Proof of Concept](https://github.com/CoinFabrik/web3-grant), performed as a previous [project](https://github.com/w3f/Grants-Program/blob/master/applications/ScoutCoinFabrik.md). + + +**Deliverables** + +Please note that all relevant links associated with the deliverables of this milestone make references to the branch [`web3-v2`](https://github.com/CoinFabrik/scout/tree/web3-v2) of our [repository](https://github.com/CoinFabrik/scout). + + +| Number | Deliverable | Link | Notes | +| ------ | ----------- | ---- | ----- | +| 0a. | License | https://github.com/CoinFabrik/scout/blob/web3-v2/LICENSE | MIT | +| 0b. | Documentation | https://coinfabrik.github.io/scout/docs/intro | We provide documentation hosted on a [separate webpage](https://coinfabrik.github.io/scout) from [Scout's repository](https://github.com/CoinFabrik/scout/tree/web3-v2). The main [README.md](https://github.com/CoinFabrik/scout/blob/web3-v2/README.md) in our repository also provides links to this webpage. | +| 0c. | Testing | https://github.com/CoinFabrik/scout/tree/web3-v2/apps/cargo-scout-audit/tests | We provide [integration testing](https://github.com/CoinFabrik/scout/tree/web3-v2/apps/cargo-scout-audit/tests). Specific tests for every linting detector based on [code examples and snippets of smart contracts](https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases). | +| 0d. | Docker | - | Does not apply at this stage. | +| 0e. | Article | https://blog.coinfabrik.com/bigger-better-and-faster-vulnerability-detection-in-ink | We uploaded to our blog a report summary. | +| 1.a | Research and Development | https://coinfabrik.github.io/scout/docs/vulnerabilities | Vulnerability examples. In addition to the [examples developed in the previous project of ScoutCoinFabrik PoC](https://github.com/w3f/Grants-Program/blob/master/applications/ScoutCoinFabrik.md#milestone-1-proof-of-concept), we developed more code examples and snippets of vulnerabilities, best practices, and enhancements related to smart contracts written in ink!. | +| 1.b | Research and Development | https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases | We developed further example versions of [vulnerabilities developed in the previous project of ScoutCoinFabrik PoC](https://github.com/CoinFabrik/web3-grant/tree/main/vulnerabilities). These example versions are the new test-cases developed for the vulnerability classes [integer-overflow-or-underflow](https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases/integer-overflow-or-underflow), [reentrancy](https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases/reentrancy) and [unused-return-enum](https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases/unused-return-enum). | +| 2.a | Development | https://github.com/CoinFabrik/scout/tree/web3-v2 | We built a prototype that improves over the [development of the previous project of ScoutCoinFabrik PoC](https://github.com/w3f/Grants-Program/blob/master/applications/ScoutCoinFabrik.md#milestone-1-proof-of-concept), detecting more [classes of vulnerabilities](https://coinfabrik.github.io/scout/docs/vulnerabilities#vulnerability-classes) and improving in precision on existing detectors. This prototype can analyze Rust code to detect vulnerabilities in ink! smart contracts and possibly in pallets and other pieces of code. This builds over [this proof-of-concept tool](https://github.com/CoinFabrik/web3-grant) we've built and [delivered as part of a grant for the web3 foundation](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/deliveries/ScoutCoinFabrik-1.md) by:
    a) Moving from a proof-of-concept (PoC) tool to a robust tool that integrates with a popular IDE (VSCode), includes a CLI, etc,
    b) We improved on the precision of the detectors we included in the PoC reducing the rate of false positives, and
    c) We [added more detectors](https://github.com/CoinFabrik/scout/tree/web3-v2/detectors) in order to have a reasonable coverage of the relevant security vulnerabilities that happen in smart contracts. | +| 2.b | Development | https://github.com/CoinFabrik/scout/tree/web3-v2/apps/cargo-scout-audit | We built a command line interface for the prototype. We developed a simple command line interface like the one used in other static analyzers from other blockchains (eg: [Slither](https://github.com/crytic/slither), [Rustle](https://github.com/blocksecteam/rustle)).
    In particular, we developed the possibility to run the prototype on smart contract files or directories.
    The base command is: `cargo scout-audit`
    We also [included options](https://coinfabrik.github.io/scout/docs/intro#usage) for running subsets of detectors. | | +| 2.c | Development | https://marketplace.visualstudio.com/items?itemName=CoinFabrik.scout-audit | We provide VSCode integration for the prototype. Our VSCode development lists security issues, highlights issues with squiggles and hover-over descriptions. This development is compatible with other relevant ink! extensions such as [Ink! Analyzer](https://w3f.github.io/Grants-Program/applications/ink-analyzer#future-plans). | +| 3 | Evaluation | https://github.com/CoinFabrik/scout/blob/web3-v2/assets/false-positives-report.md | We performed prototype validation against a selection of projects deployed on testnet or mainnet in order to evaluate detector precision. We provide an evaluation report and detector improvement. | + + +**Additional Information** + +Our original plan was to apply for a 3 milestones grant, to reach a public release of the tool. But we were advised to apply for a shorter objective. After completing the PoC in our first stage, we have now completed this second stage to reach a tool prototype. We envison a third stage together with a public release. Our mission is to continue to work on improving automated and assisted tools for finding security vulnerabilities and writing more secure code. Our objective is to help the Polkadot / Kusama community produce better and more secure code with these tools. + +Richard Casey from Parity brought this program to our attention. Our inquiries were addressed by David Hawig and Bhargav Bhatt, who also kindly advised us on this presentation. + +Find our project's repo at: https://github.com/CoinFabrik/scout From e709bb6d421311f9fb8d85452f075f66ce4b9abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 5 Jul 2023 10:23:40 +0200 Subject: [PATCH 199/253] SARP M1 accepted --- evaluations/sarp_1_niklasp.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/evaluations/sarp_1_niklasp.md b/evaluations/sarp_1_niklasp.md index 410357967..9a49f48e7 100644 --- a/evaluations/sarp_1_niklasp.md +++ b/evaluations/sarp_1_niklasp.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/sarp-basic-functionality.md - **Milestone:** @@ -12,14 +12,26 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 0a. | License |
    • [x]
    | [MIRAI MIT License](https://github.com/scs/MIRAI/blob/8afab5db34fb7330789e3765c3adf460ed72ed05/LICENSE) | MIT license file for the MIRAI package is provided in a forked repo. | -| 0b. | User Documentation |
    • [ ]
    | [Proof of Concept: Tag Analysis on Origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/README.md) -- [Proof of Concept: Tag Analysis for validation of unsigned transactions](https://github.com/scs/MIRAI/tree/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker) | See [User Documentation Feedback](#user-documentation-feedback). _Spec: "We will provide a basic tutorial that explains how to use the tool on a substrate pallet."_ | -| 0c. | Testing and Testing Guide |
    • [ ]
    | see 0b. | The User Documentation contains incomplete guides to running the supplied Prototype Code. _Spec: "A first set of tests will be provided, together with a testing guide, that describes how to run them."_ | -| 1. | Prototype Code |
    • [ ]
    | [origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/), [unsigned transaction](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/) | Prototype code was submitted, that approaches the two stated vulnerabilty classes. See [Prototype Code Feedback](#prototype-code-feedback) for open issues / questions. _Spec: "Prototype code to approach the above two stated vulnerability classes."_ | -| 2. | Documentation |
    • [ ]
    | [Tag Analysis on Substrate Pallets](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/README.md) | See [Documentation Feedback](#documentation-feedback). _Spec: "Technical documentation: a) describing the approach we plan to implement in milestone 2, incl. its limitations. b) with (interesting) examples of the vulnerability classes."_ | -| 3. | Engagement |
    • [ ]
    | [Github Comment](https://github.com/w3f/Grants-Program/pull/1706#issuecomment-1564312572) | See [Engagement Feedback](#engagement-feedback). _Spec: "Engage with teams at Web3 Foundation and Parity for prioritization._ | +| 0b. | User Documentation |
    • [ ]
    | [Proof of Concept: Tag Analysis on Origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/README.md) -- [Proof of Concept: Tag Analysis for validation of unsigned transactions](https://github.com/scs/MIRAI/tree/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker) | See [User Documentation Feedback](#user-documentation-feedback). | +| 0c. | Testing and Testing Guide |
    • [ ]
    | see 0b. | Issues with guides fixed on request. | +| 1. | Prototype Code |
    • [ ]
    | [origin](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/pallet_template/), [unsigned transaction](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/offchain-worker/) | Prototype code was submitted, that approaches the two stated vulnerabilty classes. | +| 2. | Documentation |
    • [ ]
    | [Tag Analysis on Substrate Pallets](https://github.com/scs/MIRAI/blob/db8104d6bba5224ad445502ec46166288349e60c/substrate-examples/README.md) | See [Documentation Feedback](#documentation-feedback). | +| 3. | Engagement |
    • [ ]
    | [Github Comment](https://github.com/w3f/Grants-Program/pull/1706#issuecomment-1564312572) | See [Engagement Feedback](#engagement-feedback). | ## General Notes +### July 5, 2023 + +All feedback was addressed: + +- Sections on feasibility and next steps added +- Documentation improved +- Various questions addressed in [evaluation PR](https://github.com/w3f/Grant-Milestone-Delivery/pull/885) + + + +### June 22, 2023 + Two code prototype examples alongside its documentation were submitted by the grantee that address the two vulnerability classes: _Incorrect Origin_ and _Unsigned Transaction_. Also a brief research documentation was submitted. From 6a45f26b3582fb10883f357af01f0acc0637970a Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Wed, 5 Jul 2023 15:58:03 +0500 Subject: [PATCH 200/253] Qrucial DAO Evaluation (#904) --- evaluations/qrucial-dao_1_ali-usama.md | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 evaluations/qrucial-dao_1_ali-usama.md diff --git a/evaluations/qrucial-dao_1_ali-usama.md b/evaluations/qrucial-dao_1_ali-usama.md new file mode 100644 index 000000000..f18276a0f --- /dev/null +++ b/evaluations/qrucial-dao_1_ali-usama.md @@ -0,0 +1,73 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** [Qrucial-dao](https://github.com/w3f/Grants-Program/blob/master/applications/QRUCIAL_DAO.md) +- **Milestone:** 2 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** All evaluations by ali-usama + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|----------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| +| 0a. | Licence |
    • [x]
    | [Apache](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/LICENSE) | Correct Licence | +| 0b. | Documentation |
    • [x]
    | [Wiki](https://github.com/Qrucial/QRUCIAL-DAO/wiki) | Well-Structured and Well-explained docs | +| 0c. | Testing Guide |
    • [x]
    | [Development & Testing Guide](https://github.com/Qrucial/QRUCIAL-DAO/wiki/Development-and-testing-guide) | Very well-written test guide explaining all steps, and works as expected | +| 0d. | Docker |
    • [x]
    | [Dockerfile](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/docker/files/dockerfile)
    [Docker Setup](https://github.com/Qrucial/QRUCIAL-DAO/wiki/How-to-run-your-own-node#option-1-running-node-using-docker-limited-performance) | Builds & works fine | +| 0e. | Article |
    • [x]
    | [Article](https://cryptoctf.org/2023/06/08/delivery-of-qdao-milestone-2/) | Well-written article | +| 1. | ExoSys Daemon |
    • [x]
    | [Source code](https://github.com/Qrucial/QRUCIAL-DAO/tree/milestone2/exosysd) | Works as per application | +| 2. | QRUCIAL DAO Frontend |
    • [x]
    | [Frontend code](https://github.com/Qrucial/QRUCIAL-DAO/tree/milestone2/frontend/substrate-front-end-template) | Works aa per application | +| 3. | ExoTool-CCA |
    • [x]
    | [Audit Script](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/exotools/docker/docker_files/scripts/audit_script.sh) | Works as per application | +| 4. | ExoTool-Octopus |
    • [x]
    | [Audit Script](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/exotools/docker/docker_files/scripts/audit_script.sh) | Works as per application | + + +## General Notes + +The delivery is well-structured and well-documented and it works according to the application as well. However, the size of the docker image is quite large and if it could be optimized that would be great. +Also there are some steps missing [here](https://github.com/Qrucial/QRUCIAL-DAO/wiki/How-to-run-your-own-node#option-1-running-node-using-docker-limited-performance) as there's no dockerfile in the root directory. +So `cd docker/files` should be added before `docker build . -t "qdao:V0.3"`. + +### docker output +``` +$ docker build . -t "qdao:V0.3" +[+] Building 3866.2s (25/25) FINISHED + => [internal] load build definition from dockerfile 0.0s + => => transferring dockerfile: 1.71kB 0.0s + => [internal] load .dockerignore 0.0s + => => transferring context: 2B 0.0s + => [internal] load metadata for docker.io/paritytech/ci-linux:production 4.6s + => [ 1/20] FROM docker.io/paritytech/ci-linux:production@sha256:cbfcd99ba4f43366edadc2dc2276ad81b306c4968077eeb7a496595ac081129a 1436.1s + => => resolve docker.io/paritytech/ci-linux:production@sha256:cbfcd99ba4f43366edadc2dc2276ad81b306c4968077eeb7a496595ac081129a 0.0s + => => sha256:cbfcd99ba4f43366edadc2dc2276ad81b306c4968077eeb7a496595ac081129a 762B / 762B 0.0s + => => sha256:8ee2ebf1b7d7aba267e7abc3670e059f30f22d20a706ec5cb5628942990c661b 10.01kB / 10.01kB 0.0s + => => sha256:759700526b7894aa9c150feb2ebfcd00cf06d2890df739e71555edcfd13669e3 31.42MB / 31.42MB 49.6s + => => sha256:c753b89dba9b2a88d31f9703ef9e4c54dc000ac65476c45d00d666a5d655c9aa 588.49MB / 588.49MB 1405.5s + => => sha256:479a59d03583b860b31a3bf5a6034434b0ad61e7d7bcd6bb5b4e1f7639b46ca3 403.78MB / 403.78MB 776.0s + => => extracting sha256:759700526b7894aa9c150feb2ebfcd00cf06d2890df739e71555edcfd13669e3 1.7s + => => extracting sha256:c753b89dba9b2a88d31f9703ef9e4c54dc000ac65476c45d00d666a5d655c9aa 19.4s + => => extracting sha256:479a59d03583b860b31a3bf5a6034434b0ad61e7d7bcd6bb5b4e1f7639b46ca3 10.2s + => [internal] load build context 0.0s + => => transferring context: 73B 0.0s + => [ 2/20] RUN apt update 14.6s + => [ 3/20] RUN apt-get install -y supervisor tmux curl wget python3 python3-setuptools 6.8s + => [ 4/20] RUN python3 -m pip install --upgrade pip setuptools wheel 9.6s + => [ 5/20] RUN pip3 install Flask substrate-interface 30.1s + => [ 6/20] RUN cargo install keccak256-cli 30.6s + => [ 7/20] ADD scripts/qdao_services.sh /bin/qdao_services.sh 0.0s + => [ 8/20] RUN mkdir /opt/data 0.2s + => [ 9/20] RUN echo "Downloading git repo..." 0.3s + => [10/20] RUN if [ -d "/opt/data/QRUCIAL-DAO" ]; then echo "QRUCIAL-DAO exists"; ( cd /opt/data/QRUCIAL-DAO && git pull https://github.com/Qrucial/Q 12.9s + => [11/20] RUN echo "Compiling exosys..." 0.2s + => [12/20] RUN if [ ! -f "/opt/data/QRUCIAL-DAO/exosysd/target/release/qdao-exosysd" ]; then ( cd /opt/data/QRUCIAL-DAO/exosysd && cargo build --relea 198.9s + => [13/20] RUN echo "Compiling qdao-node..." 0.2s + => [14/20] RUN if [ ! -f "/opt/data/QRUCIAL-DAO/qdao-node/target/release/qdao-node" ]; then ( cd /opt/data/QRUCIAL-DAO/qdao-node && cargo build --rel 2069.6s + => [15/20] RUN mkdir -p ~/QRUCIAL-DAO/exotools/ 0.3s + => [16/20] RUN cp /opt/data/QRUCIAL-DAO/exotools/exotool.sh ~/QRUCIAL-DAO/exotools/ 0.3s + => [17/20] RUN chmod +x ~/QRUCIAL-DAO/exotools/exotool.sh 0.2s + => [18/20] RUN chmod +x /opt/data/QRUCIAL-DAO/qdao-node/target/release/qdao-node 0.4s + => [19/20] RUN chmod +x /opt/data/QRUCIAL-DAO/exosysd/target/release/qdao-exosysd 0.2s + => [20/20] RUN chmod +x /bin/qdao_services.sh 0.2s + => exporting to image 49.5s + => => exporting layers 49.5s + => => writing image sha256:32da4b934206643b46f1af26763b82e553d41913b5a9fbeed9ecb05f5d651cc2 0.0s + => => naming to docker.io/library/qdao:V0.3 +``` + From 18c593e4f0fedbafe2f3a96a9e82d88444b8a030 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Wed, 5 Jul 2023 13:00:35 +0200 Subject: [PATCH 201/253] Rename qrucial-dao_1_ali-usama.md to qrucial-dao_2_ali-usama.md --- .../{qrucial-dao_1_ali-usama.md => qrucial-dao_2_ali-usama.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename evaluations/{qrucial-dao_1_ali-usama.md => qrucial-dao_2_ali-usama.md} (100%) diff --git a/evaluations/qrucial-dao_1_ali-usama.md b/evaluations/qrucial-dao_2_ali-usama.md similarity index 100% rename from evaluations/qrucial-dao_1_ali-usama.md rename to evaluations/qrucial-dao_2_ali-usama.md From 4128feaffa6dd032579d6bf10494de9e559222e9 Mon Sep 17 00:00:00 2001 From: sixTheDave <92546294+sixTheDave@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:07:45 +0200 Subject: [PATCH 202/253] Create qrucial_dao_milestone_2.md (#899) --- deliveries/qrucial_dao_milestone_2.md | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 deliveries/qrucial_dao_milestone_2.md diff --git a/deliveries/qrucial_dao_milestone_2.md b/deliveries/qrucial_dao_milestone_2.md new file mode 100644 index 000000000..7991bb8b2 --- /dev/null +++ b/deliveries/qrucial_dao_milestone_2.md @@ -0,0 +1,28 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Contract](https://github.com/w3f/Grants-Program/blob/master/applications/QRUCIAL_DAO.md) +* **Milestone Number:** 2 + +**Context** +We have developed the frontend of QRUCIAL DAO, extended the system, fixed bugs and wrote the full how-to article. We started the live testnet. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [Link](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/LICENSE) | - | +| 0b. | Documentation | [Wiki](https://github.com/Qrucial/QRUCIAL-DAO/wiki) | - | +| 0c. | Testing Guide | [Development and testing guide](https://github.com/Qrucial/QRUCIAL-DAO/wiki/Development-and-testing-guide) | - | +| 0d. | Docker | [Docker](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/docker/files/dockerfile) and [node-setup.sh](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/node-setup.sh) | The node-setup.sh prepares the system as a native node, while we also have the Docker image which starts the full system inside a container. Additionally ExoTools can be run as separate docker images. | +| 0e. | Article | [QDAO M2 article](https://cryptoctf.org/2023/06/08/delivery-of-qdao-milestone-2/)| - | +| 1. | ExoSys Deamon | [Source code](https://github.com/Qrucial/QRUCIAL-DAO/tree/milestone2/exosysd) | - | +| 2. | QRUCIAL DAO Frontend | [Frontend code](https://github.com/Qrucial/QRUCIAL-DAO/tree/milestone2/frontend/substrate-front-end-template) | - | +| 3. | ExoTool - CCA | [Added to audit script](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/exotools/docker/docker_files/scripts/audit_script.sh) | - | +| 4. | ExoTool - Octopus | [Added to audit script](https://github.com/Qrucial/QRUCIAL-DAO/blob/milestone2/exotools/docker/docker_files/scripts/audit_script.sh) | - | + +**Additional Information** +- You can use our live testnet to test the system: https://qrucial.io/ +- We keep the live testnet up to date to the main branch. If Alice key is depleted, contact us on Matrix. +- QDAO as a project is under development, changes are ongoing in the code. From f014ac778baafe2079901cb91d1d066fe161bcbc Mon Sep 17 00:00:00 2001 From: Oleg Kalenik Date: Wed, 5 Jul 2023 18:34:37 +0300 Subject: [PATCH 203/253] *added Societal Grant3 Milestone1 delivery --- deliveries/societal-grant-3-milestone-1.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deliveries/societal-grant-3-milestone-1.md diff --git a/deliveries/societal-grant-3-milestone-1.md b/deliveries/societal-grant-3-milestone-1.md new file mode 100644 index 000000000..df257c2f7 --- /dev/null +++ b/deliveries/societal-grant-3-milestone-1.md @@ -0,0 +1,22 @@ +# 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/milestone-deliverables-guidelines.md).** + + + +* **Application Document:** [Societal Application](https://github.com/w3f/Grants-Program/blob/master/applications/societal_saas_pricing.md) +* **Milestone Number:** 1 + + + +## Deliverables + + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/LICENSE)| Apache 2.0 license included. | +| 0b. | Documentation |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/README.md) | Readme document contains instructions on how to run the node. All unit test have been included in the submission and can be run using: `cargo test` . Link to test command in [docs](https://github.com/sctllabs/societal-node/blob/grant3_m1#unit-test) | +| 0c. | Testing Guide |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/docs/SubscriptionTestingGuide.md)| Guide on how to test DAO Subscription Pallet using Polkadot-JS front-end. | +| 0d. | Docker |[Docker Image](https://hub.docker.com/layers/societal/societal-node/grant3_m1-latest/images/sha256-21719afd8ec6237ffa4b12303da79b67ed078d7d5b160ef0a19ba9e20a061516?context=explore)| Dockerfile found at Societal's docker hub. The tag information is as follows: **docker pull societal/societal-node:grant3_m1-latest**. Please refer to the [Run in Docker](https://github.com/sctllabs/societal-node/blob/grant3_m1#run-in-docker) section of the README to run with the **grant3_m1-latest** tag specified. | +| 1. | Substrate Module: DAO Subscription Pallet |[GitHub repo link](https://github.com/sctllabs/societal-node/tree/grant3_m1/pallets/dao-subscription) | The custom substrate subscription pallet will require a DAO to pay a monthly subscription. This will allow the organizations members to interact on-chain without paying gas fees. | +| 2. | Client Modules | [Polkadot-JS](https://cloudflare-ipfs.com/ipns/dotapps.io/?rpc=ws://localhost:9944) | You can use Polkadot-JS to interact with the DAO pallets and follow the [Testing Article](https://github.com/sctllabs/societal-node/blob/grant3_m1/docs/SubscriptionTestingGuide.md) on how to work with the custom traits of the Subscription Pallet. | From 507457aefd7dd971f33529463395df1534d9dd70 Mon Sep 17 00:00:00 2001 From: Graeme Fox Date: Wed, 5 Jul 2023 10:10:05 -0700 Subject: [PATCH 204/253] update societal grant3 m1 --- deliveries/societal-grant-3-milestone-1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deliveries/societal-grant-3-milestone-1.md b/deliveries/societal-grant-3-milestone-1.md index df257c2f7..c9ecd5dea 100644 --- a/deliveries/societal-grant-3-milestone-1.md +++ b/deliveries/societal-grant-3-milestone-1.md @@ -4,7 +4,7 @@ -* **Application Document:** [Societal Application](https://github.com/w3f/Grants-Program/blob/master/applications/societal_saas_pricing.md) +* **Application Document:** [Societal SaaS Application](https://github.com/w3f/Grants-Program/blob/master/applications/societal_saas_pricing.md) * **Milestone Number:** 1 @@ -15,7 +15,7 @@ | Number | Deliverable | Link | Notes | | ------------- | ------------- | ------------- |------------- | | 0a. | License |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/LICENSE)| Apache 2.0 license included. | -| 0b. | Documentation |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/README.md) | Readme document contains instructions on how to run the node. All unit test have been included in the submission and can be run using: `cargo test` . Link to test command in [docs](https://github.com/sctllabs/societal-node/blob/grant3_m1#unit-test) | +| 0b. | Documentation |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/README.md) | Readme document contains instructions on how to run the node. All unit test have been included in the submission and can be run using: `cargo test` . Link to test command in [docs](https://github.com/sctllabs/societal-node/blob/grant3_m1#unit-test). You may also use the Testing Guide below for instructions to run the node. | | 0c. | Testing Guide |[GitHub repo link](https://github.com/sctllabs/societal-node/blob/grant3_m1/docs/SubscriptionTestingGuide.md)| Guide on how to test DAO Subscription Pallet using Polkadot-JS front-end. | | 0d. | Docker |[Docker Image](https://hub.docker.com/layers/societal/societal-node/grant3_m1-latest/images/sha256-21719afd8ec6237ffa4b12303da79b67ed078d7d5b160ef0a19ba9e20a061516?context=explore)| Dockerfile found at Societal's docker hub. The tag information is as follows: **docker pull societal/societal-node:grant3_m1-latest**. Please refer to the [Run in Docker](https://github.com/sctllabs/societal-node/blob/grant3_m1#run-in-docker) section of the README to run with the **grant3_m1-latest** tag specified. | | 1. | Substrate Module: DAO Subscription Pallet |[GitHub repo link](https://github.com/sctllabs/societal-node/tree/grant3_m1/pallets/dao-subscription) | The custom substrate subscription pallet will require a DAO to pay a monthly subscription. This will allow the organizations members to interact on-chain without paying gas fees. | From 7dc1e4faa0812b5f70f675744a71d3eab5f77fc4 Mon Sep 17 00:00:00 2001 From: Seraya Takahashi Date: Wed, 5 Jul 2023 23:20:28 +0200 Subject: [PATCH 205/253] Accept Patron M1 delivery --- evaluations/patron_1_takahser.md | 335 ++++++++++++------------------- 1 file changed, 131 insertions(+), 204 deletions(-) diff --git a/evaluations/patron_1_takahser.md b/evaluations/patron_1_takahser.md index 1e517903c..78b428077 100644 --- a/evaluations/patron_1_takahser.md +++ b/evaluations/patron_1_takahser.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/patron.md - **Milestone:** 1 - **Kusama Identity:** Address @@ -15,11 +15,11 @@ | 0e. | Article |
    • [x]
    | [Medium Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) | ~~Rather poorly written. I assume there hasn't been any proof-reading process. Given the price tag of this grant I think it'd be fair to expect a higher quality here.~~ Still not perfect, but drastically improved from the earlier version. I'm willing to accept it at this stage, however, feel free to further improve it. | | 1a. | Backend storage |
    • [x]
    | [db crate](https://github.com/Brushfam/patron-backend/tree/fcaefc0df32a58a58aa056ef5952223829f19ee7/crates/db) | See [backend storage feedback](#backend-storage-feedback). | | 1b. | Sync server |
    • [x]
    | [server crate](https://github.com/Brushfam/patron-backend/tree/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/server) | - | -| 1c. | Smart contract builder |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/deploy.rs) | The link provided returns a 404; Spec: Immutable, pre-configured smart contract builders are to be implemented for verified smart contract deployment. | -| 2a. | Web UI |
    • [ ]
    | [patron frontend repo](https://github.com/Brushfam/patron-frontend/tree/master) | See [Web UI Feedback](#web-ui-feedback) | +| 1c. | Smart contract builder |
    • [x]
    | [builder crate](https://github.com/Brushfam/patron-backend/tree/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/builder/src) | - | +| 2a. | Web UI |
    • [x]
    | [patron frontend repo](https://github.com/Brushfam/patron-frontend/tree/master) | See [Web UI Feedback](#web-ui-feedback) | | 2b. | Detailed contract information |
    • [x]
    | [CodeHashWindow.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/pages/CodeHashWindow.tsx) | - | -| 2c. | User authentication |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/blob/master/crates/cli/src/commands/auth.rs) | The link provided returns a 404; Spec: We will implement a web3-oriented authentication solution | -| 3a. | Developer CLI utility |
    • [ ]
    | [provided link (broken)](https://github.com/Brushfam/patron-backend/tree/master/crates/cli) | The link provided returns a 404; Spec: A deployment workflow unified, developer-oriented CLI utility will be implemented. | +| 2c. | User authentication |
    • [x]
    | [auth command](https://github.com/Brushfam/patron-backend/blob/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/patron/src/commands/auth.rs) | - | +| 3a. | Developer CLI utility |
    • [x]
    | [patron crate](https://github.com/Brushfam/patron-backend/tree/d6bb21b010d4b9abf13c7ee7bce4b3898c3a1fc0/crates/patron) | - | Ideally all links inside the above table should include the commit hash, @@ -42,119 +42,119 @@ Update: inline-comments and [API docs](https://api.patron.works/docs) have been - [x] tests ~~currently fail~~ have been fixed: -``` -patron-backend % cargo test - Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) - Finished test [unoptimized + debuginfo] target(s) in 2m 52s - Running unittests src/main.rs (target/debug/deps/builder-761d50c22f6d842b) + ``` + patron-backend % cargo test + Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) + Finished test [unoptimized + debuginfo] target(s) in 2m 52s + Running unittests src/main.rs (target/debug/deps/builder-761d50c22f6d842b) -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/common-e50cefc8408d0d31) + Running unittests src/lib.rs (target/debug/deps/common-e50cefc8408d0d31) -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/db-5a50e7f8e8a774ec) + Running unittests src/lib.rs (target/debug/deps/db-5a50e7f8e8a774ec) -running 1 test -test tests::exists ... ok + running 1 test + test tests::exists ... ok -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - Running unittests src/main.rs (target/debug/deps/event_client-39f93758411ef1f8) + Running unittests src/main.rs (target/debug/deps/event_client-39f93758411ef1f8) -running 2 tests -test utils::tests::extract_code_hash ... ok -test utils::tests::extract_twox_account_id ... ok + running 2 tests + test utils::tests::extract_code_hash ... ok + test utils::tests::extract_twox_account_id ... ok -test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/lib.rs (target/debug/deps/migration-32a0379cff62aa67) + Running unittests src/lib.rs (target/debug/deps/migration-32a0379cff62aa67) -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/migration-a6d13c5c9ea0a0e1) + Running unittests src/main.rs (target/debug/deps/migration-a6d13c5c9ea0a0e1) -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/patron-d1f0e973f6accda7) + Running unittests src/main.rs (target/debug/deps/patron-d1f0e973f6accda7) -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Running unittests src/main.rs (target/debug/deps/server-a8daf5b4743e4bfd) + Running unittests src/main.rs (target/debug/deps/server-a8daf5b4743e4bfd) -running 37 tests -test handlers::auth::login::tests::unmatching_signature ... ok -test handlers::build_sessions::create::tests::create ... ok -test handlers::auth::register::tests::register ... ok -test handlers::auth::login::tests::invalid_signature ... ok -test handlers::build_sessions::create::tests::invalid_source_code_id ... ok -test handlers::auth::login::tests::invalid_account ... ok -test handlers::auth::login::tests::missing_account ... ok -test handlers::build_sessions::create::tests::invalid_version ... ok -test handlers::build_sessions::details::tests::successful ... ok -test handlers::auth::login::tests::cli_token_repetition ... ok -test handlers::auth::login::tests::exchange ... ok -test handlers::auth::login::tests::successful ... ok -test handlers::build_sessions::metadata::tests::unknown ... ok -test handlers::build_sessions::details::tests::unknown ... ok -test handlers::build_sessions::list::tests::successful ... ok -test handlers::build_sessions::logs::tests::successful_by_code_hash ... ok -test handlers::build_sessions::status::tests::unknown ... ok -test handlers::build_sessions::logs::tests::unknown ... ok -test handlers::build_sessions::latest::tests::successful ... ok -test handlers::build_sessions::logs::tests::position ... ok -test handlers::build_sessions::metadata::tests::successful ... ok -test handlers::build_sessions::latest::tests::source_code_without_build_sessions ... ok -test handlers::build_sessions::status::tests::successful ... ok -test handlers::build_sessions::logs::tests::successful_by_id ... ok -test handlers::files::details::tests::file_list ... ok -test handlers::contracts::events::tests::successful ... ok -test handlers::files::upload::tests::upload_and_seal ... ok -test handlers::keys::delete::tests::list_and_delete ... ok -test handlers::files::details::tests::unknown_file ... ok -test handlers::contracts::details::tests::unknown ... ok -test handlers::build_sessions::wasm::tests::unknown ... ok -test handlers::files::details::tests::single_file ... ok -test handlers::files::upload::tests::empty_request ... ok -test handlers::build_sessions::wasm::tests::successful ... ok -test handlers::contracts::details::tests::successful ... ok -test handlers::contracts::events::tests::unknown ... ok -test handlers::keys::verify::tests::list_and_verify ... ok + running 37 tests + test handlers::auth::login::tests::unmatching_signature ... ok + test handlers::build_sessions::create::tests::create ... ok + test handlers::auth::register::tests::register ... ok + test handlers::auth::login::tests::invalid_signature ... ok + test handlers::build_sessions::create::tests::invalid_source_code_id ... ok + test handlers::auth::login::tests::invalid_account ... ok + test handlers::auth::login::tests::missing_account ... ok + test handlers::build_sessions::create::tests::invalid_version ... ok + test handlers::build_sessions::details::tests::successful ... ok + test handlers::auth::login::tests::cli_token_repetition ... ok + test handlers::auth::login::tests::exchange ... ok + test handlers::auth::login::tests::successful ... ok + test handlers::build_sessions::metadata::tests::unknown ... ok + test handlers::build_sessions::details::tests::unknown ... ok + test handlers::build_sessions::list::tests::successful ... ok + test handlers::build_sessions::logs::tests::successful_by_code_hash ... ok + test handlers::build_sessions::status::tests::unknown ... ok + test handlers::build_sessions::logs::tests::unknown ... ok + test handlers::build_sessions::latest::tests::successful ... ok + test handlers::build_sessions::logs::tests::position ... ok + test handlers::build_sessions::metadata::tests::successful ... ok + test handlers::build_sessions::latest::tests::source_code_without_build_sessions ... ok + test handlers::build_sessions::status::tests::successful ... ok + test handlers::build_sessions::logs::tests::successful_by_id ... ok + test handlers::files::details::tests::file_list ... ok + test handlers::contracts::events::tests::successful ... ok + test handlers::files::upload::tests::upload_and_seal ... ok + test handlers::keys::delete::tests::list_and_delete ... ok + test handlers::files::details::tests::unknown_file ... ok + test handlers::contracts::details::tests::unknown ... ok + test handlers::build_sessions::wasm::tests::unknown ... ok + test handlers::files::details::tests::single_file ... ok + test handlers::files::upload::tests::empty_request ... ok + test handlers::build_sessions::wasm::tests::successful ... ok + test handlers::contracts::details::tests::successful ... ok + test handlers::contracts::events::tests::unknown ... ok + test handlers::keys::verify::tests::list_and_verify ... ok -test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s + test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s - Doc-tests common + Doc-tests common -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Doc-tests db + Doc-tests db -running 3 tests -test src/lib.rs - SelectExt::exists (line 107) ... ignored -test src/token.rs - token::generate_token (line 63) ... ok -test src/lib.rs - TransactionErrorExt::into_raw_result (line 40) ... ok + running 3 tests + test src/lib.rs - SelectExt::exists (line 107) ... ignored + test src/token.rs - token::generate_token (line 63) ... ok + test src/lib.rs - TransactionErrorExt::into_raw_result (line 40) ... ok -test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.45s + test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.45s - Doc-tests migration + Doc-tests migration -running 0 tests + running 0 tests -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s -``` + test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + ``` ### Docker Feedback @@ -189,141 +189,68 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini - the build passes: -```bash -% cargo build --release - - Compiling proc-macro2 v1.0.59 - Compiling quote v1.0.28 - - (...) - - Compiling tar v0.4.38 - Compiling migration v0.1.0 (/Users/xxx/repos/patron-backend/crates/migration) - Compiling validator v0.16.0 - Compiling ink_metadata v4.2.0 - Compiling serde_plain v1.0.1 - Compiling which v4.4.0 - Compiling zip v0.6.6 - Compiling axum-derive-error v0.1.0 - Compiling home v0.5.5 - Compiling patron v0.1.0 (/Users/xxx/repos/patron-backend/crates/patron) - Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) - Compiling server v0.1.0 (/Users/xxx/repos/patron-backend/crates/server) - Compiling builder v0.1.0 (/Users/xxx/repos/patron-backend/crates/builder) - Finished release [optimized] target(s) in 5m 15s -``` - -### Web UI Feedback - -- [ ] there are currently a couple of npm vulnerabilities present. Please fix them or explain why they shouldn't or can't be fixed (if applicable): - ```bash - patron-frontend % npm i - npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility - npm WARN deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. - npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead - npm WARN deprecated workbox-cacheable-response@6.6.0: workbox-background-sync@6.6.0 - npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. - npm WARN deprecated webextension-polyfill-ts@0.25.0: This project has moved to @types/webextension-polyfill + % cargo build --release - added 1592 packages, and audited 1593 packages in 1m - - 254 packages are looking for funding - run `npm fund` for details + Compiling proc-macro2 v1.0.59 + Compiling quote v1.0.28 + + (...) - 74 vulnerabilities (69 moderate, 5 high) + Compiling tar v0.4.38 + Compiling migration v0.1.0 (/Users/xxx/repos/patron-backend/crates/migration) + Compiling validator v0.16.0 + Compiling ink_metadata v4.2.0 + Compiling serde_plain v1.0.1 + Compiling which v4.4.0 + Compiling zip v0.6.6 + Compiling axum-derive-error v0.1.0 + Compiling home v0.5.5 + Compiling patron v0.1.0 (/Users/xxx/repos/patron-backend/crates/patron) + Compiling event_client v0.1.0 (/Users/xxx/repos/patron-backend/crates/event_client) + Compiling server v0.1.0 (/Users/xxx/repos/patron-backend/crates/server) + Compiling builder v0.1.0 (/Users/xxx/repos/patron-backend/crates/builder) + Finished release [optimized] target(s) in 5m 15s + ``` - To address issues that do not require attention, run: - npm audit fix +### Web UI Feedback - To address all issues (including breaking changes), run: - npm audit fix --force +- [x] ~~there are currently a couple of npm vulnerabilities present. Please fix them or explain why they shouldn't or can't be fixed (if applicable)~~ The vulnerabilities have been fixed, except for the [known open issue in the create-react-app repo](https://github.com/facebook/create-react-app/issues/11174): - Run `npm audit` for details. + ```bash + patron-frontend % npm audit --omit=dev + found 0 vulnerabilities ``` -- [ ] The UI can be started successfully, but there are some warnings. Some can easily be fixed, for example this code in [AddressElements.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/components/ContractComponents/AddressElements.tsx#L56): `{"user`. Full excerpt: +- [x] ~~The UI can be started successfully, but there are some warnings. Some can easily be fixed, for example this code in [AddressElements.tsx](https://github.com/Brushfam/patron-frontend/blob/f0a32db6ba72da3a4dc65034ec64e7ec7ce2f0b0/src/components/ContractComponents/AddressElements.tsx#L56): `{"user`. Full excerpt:~~ => fixed ```bash patron-frontend % npm run start - + (...) - Compiled with warnings. - - [eslint] - src/components/ContractComponents/AddressElements.tsx - Line 56:42: Expected '===' and instead saw '==' eqeqeq - - src/components/ContractComponents/Info.tsx - Line 55:8: React Hook useEffect has a missing dependency: 'props.address'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/ContractComponents/Log.tsx - Line 31:8: React Hook useEffect has a missing dependency: 'props.hash'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/Footer.tsx - Line 19:25: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text - - src/components/Lists/AccountList.tsx - Line 55:9: React Hook useCallback has a missing dependency: 'props.wallet?.signer'. Either include it or remove the dependency array react-hooks/exhaustive-deps - Line 129:8: React Hook useEffect has a missing dependency: 'props.wallet'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/Lists/WalletsList.tsx - Line 7:8: 'ListItemButton' is defined but never used @typescript-eslint/no-unused-vars - Line 27:48: Array.prototype.map() expects a return value from arrow function array-callback-return - Line 34:9: React Hook useCallback has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useCallback call and refer to those specific props inside useCallback react-hooks/exhaustive-deps - - src/context/UserContext.tsx - Line 1:47: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars - - src/layouts/LoginLayout.tsx - Line 3:10: 'Footer' is defined but never used @typescript-eslint/no-unused-vars - - src/pages/CodeHashWindow.tsx - Line 46:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/pages/ContractWindow.tsx - Line 80:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - Search for the keywords to learn more about each warning. - To ignore, add // eslint-disable-next-line to the line before. - - WARNING in [eslint] - src/components/ContractComponents/AddressElements.tsx - Line 56:42: Expected '===' and instead saw '==' eqeqeq - - src/components/ContractComponents/Info.tsx - Line 55:8: React Hook useEffect has a missing dependency: 'props.address'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/ContractComponents/Log.tsx - Line 31:8: React Hook useEffect has a missing dependency: 'props.hash'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/Footer.tsx - Line 19:25: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images jsx-a11y/alt-text - - src/components/Lists/AccountList.tsx - Line 55:9: React Hook useCallback has a missing dependency: 'props.wallet?.signer'. Either include it or remove the dependency array react-hooks/exhaustive-deps - Line 129:8: React Hook useEffect has a missing dependency: 'props.wallet'. Either include it or remove the dependency array react-hooks/exhaustive-deps - - src/components/Lists/WalletsList.tsx - Line 7:8: 'ListItemButton' is defined but never used @typescript-eslint/no-unused-vars - Line 27:48: Array.prototype.map() expects a return value from arrow function array-callback-return - Line 34:9: React Hook useCallback has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change when *any* prop changes, so the preferred fix is to destructure the 'props' object outside of the useCallback call and refer to those specific props inside useCallback react-hooks/exhaustive-deps - - src/context/UserContext.tsx - Line 1:47: 'useEffect' is defined but never used @typescript-eslint/no-unused-vars + Compiled successfully! - src/layouts/LoginLayout.tsx - Line 3:10: 'Footer' is defined but never used @typescript-eslint/no-unused-vars + You can now view patron-ui in the browser. - src/pages/CodeHashWindow.tsx - Line 46:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + Local: http://localhost:3000 + On Your Network: http://192.168.0.101:3000 - src/pages/ContractWindow.tsx - Line 80:8: React Hook useEffect has a missing dependency: 'navigate'. Either include it or remove the dependency array react-hooks/exhaustive-deps + Note that the development build is not optimized. + To create a production build, use npm run build. - webpack compiled with 1 warning + webpack compiled successfully No issues found. + One of your dependencies, babel-preset-react-app, is importing the + "@babel/plugin-proposal-private-property-in-object" package without + declaring it in its dependencies. This is currently working because + "@babel/plugin-proposal-private-property-in-object" is already in your + node_modules folder for unrelated reasons, but it may break at any time. + + babel-preset-react-app is part of the create-react-app project, which + is not maintianed anymore. It is thus unlikely that this bug will + ever be fixed. Add "@babel/plugin-proposal-private-property-in-object" to + your devDependencies to work around this error. This will make this message + go away. ``` From 9870ce90afbc1783e18917655ecab2d7fc562156 Mon Sep 17 00:00:00 2001 From: Ivan Leshchenko <128095804+IvanLeshchenko727@users.noreply.github.com> Date: Thu, 6 Jul 2023 00:27:38 +0300 Subject: [PATCH 206/253] Patron M1 (#871) * Patron M1 * link to website * improved documentation * updated links --------- Co-authored-by: o-tsaruk --- deliveries/patron-milestone-1.md | 167 +++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 deliveries/patron-milestone-1.md diff --git a/deliveries/patron-milestone-1.md b/deliveries/patron-milestone-1.md new file mode 100644 index 000000000..93aff8367 --- /dev/null +++ b/deliveries/patron-milestone-1.md @@ -0,0 +1,167 @@ +# 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/patron.md +* **Milestone Number:** 1 + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|--------|-------------------------------|----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| +| 0a. | License | https://github.com/Brushfam/patron-backend/blob/master/LICENSE | | +| 0b. | Documentation | https://github.com/Brushfam/patron-backend/tree/master/docs | | +| 0c. | Testing guidelines | | The server is covered by unit tests | +| 0d. | Docker | https://github.com/Brushfam/patron-backend/blob/master/crates/builder/src/process/container.rs | Containers are instantiated for each contract verification individually | +| 0e. | Article | https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40 | | +| 1a. | Backend storage | https://github.com/Brushfam/patron-backend/tree/master/crates/db | PostgreSQL, S3-compatible storage | +| 1b. | Sync server | https://github.com/Brushfam/patron-backend/tree/master/crates/server | | +| 1c. | Smart contract builder | https://github.com/Brushfam/patron-backend/tree/master/crates/builder/src | | +| 2a. | Web UI | https://patron.works/ | can be used for authentication, searching contracts details, review user build sessions | +| 2b. | Detailed contract information | https://github.com/Brushfam/patron-frontend/blob/master/src/pages/CodeHashWindow.tsx | provided fields such as code hash, timestamp, session build logs, contract addresses etc. | +| 2c. | User authentication | https://github.com/Brushfam/patron-backend/blob/master/crates/patron/src/commands/auth.rs | Patron uses SubConnect integration | +| 3a. | Developer CLI utility | https://github.com/Brushfam/patron-backend/tree/master/crates/patron | developer-oriented CLI utility | + +Testing this delivery: +- Deliverable 0b.: + - The documentation for usage is available in the [main project repository](https://github.com/Brushfam/patron-backend): + - CLI documentation: https://github.com/Brushfam/patron-backend/blob/master/docs/cli.md + - Self-hosting documentation: https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md +- Deliverable 0c.: + - Ensure that you have a Rust toolchain available (if you don't, you can use the Nix development shell to acquire one, `nix develop`) + - We provide unit tests for API server, which can be launched with the following command: + ```sh + cargo test + ``` +- Deliverable 0d.: + - We provide Docker images for the contract builder process and API server. Contract builder process image + is used to provide an environment for the contract build itself, and is a necessary component that has to be used with a container engine such as Docker. + The API server is provided as a Docker image too, but can also be built and deployed without Docker. + - API server Docker image can be downloaded from [main project repository](https://github.com/Brushfam/patron-backend) releases + or built with Nix tooling: + ```sh + nix build .#docker.server + ``` + - Contract builder process Docker image can be built with Nix tooling + (it's necessary to provide a way to modify self-hosted domain): + ```sh + nix build .#docker.ink-builder + ``` +- Deliverable 0e.: + - [Article](https://medium.com/brushfam/patron-is-your-one-stop-smart-contract-manager-for-polkadot-ecosystem-b1f89a48ba40) +- Deliverable 1a.: + - To test this deliverable, you need to prepare a working instance of a PostgreSQL database and configure your local project + with instructions available in the [self-hosting documentation](https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md). + - Build the project with `cargo` or `nix`: + ```sh + cargo build --release + ``` + or + ```sh + nix build .# + ``` + - Run database migrations: + ```sh + ./target/release/migration + ``` +- Deliverable 1b.: + - Ensure that you have the database prepared with instructions from the deliverable 1a. + - Initialize the database with the following command: + ```sh + ./target/release/event_client initialize [name] [url] [schema] + ``` + For example, to initialize an Astar node: + ```sh + ./target/release/event_client initialize astar wss://1rpc.io:443/astr astar + ``` + - Start watching for new events from this node using the following command: + ```sh + ./target/release/event_client watch astar + ``` + - See [self-hosting documentation](https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md) for more + details on how to use the event client (also known as sync server). +- Deliverable 1c.: + - Ensure that you have the database prepared with instructions from the deliverable 1a. + - For testing this deliverable, you can either use hosted or self-hosted versions of smart contract builder. + - For testing the hosted version, refer to deliverable 3a testing instructions. + - For testing self-hosted version, you'll need a Linux server with Docker, `udisks2`, `fallocate` and `mkfs.ext4` available. + - More information on why these components are required is available [here](https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md#smart-contract-builder) + - Build the smart contract builder Docker image with Nix, while changing the preferred domain to a custom one in a + [flake.nix file](https://github.com/Brushfam/patron-backend/blob/202c60325a51af0b7762e1b72e4d609adbbdd56e/flake.nix#L61): + ```sh + nix build .#docker.ink-builder + ``` + - Load the resulting image with `docker` CLI: + ```sh + docker load < result + ``` + - Configure the smart contract builder according to the [self-hosting documentation](https://github.com/Brushfam/patron-backend/blob/master/docs/self-hosted.md). + - Start the smart contract builder with the following command: + ```sh + ./target/release/builder serve + ``` +- Deliverable 2a.: + - You can use [our website](https://patron.works) to test the hosted version of the web UI. You can use data from Astar + network to test the hosted version. + - [Self-hosted version](https://github.com/Brushfam/patron-frontend) can be built with the following command: + ```sh + npm i + REACT_APP_SERVER_URL=https://api.example.com npm run build + ``` + Replace `https://api.example.com` with the URL of your API server. + + To test non-production builds with built-in HTTP server you can use the following command: + ```sh + npm i + REACT_APP_SERVER_URL=https://api.example.com npm start + ``` +- Deliverable 2b.: + - You can search contract addresses and verified code hashes using the main page search bar. + - Contract address info will provide you with information on the contract's code hash, events, + source code and build log (if available). + - Verified code hashes will provide you with the source code and build log. +- Deliverable 2c.: + - There are two separate authentication flows available - website and CLI flow. + - For CLI flow refer to deliverable 3a. + - For website flow, open either [hosted](https://patron.works) or self-hosted versions of a website. + - Click on the "Log in" button in the top-right corner of a screen. + - Choose a wallet that you would like to use for authentication purposes. + - Sign a message with the provided wallet (there are no fees associated with any wallet interactions). +- Deliverable 3a.: + - Ensure that you have a Rust toolchain available + (`cargo-contract` installation is optional, as the CLI will attempt to download it automatically) + - Your project needs to have a `Deploy.toml` file, which describes the tooling versions with which + it has to be built. Consult the [CLI documentation](https://github.com/Brushfam/patron-backend/blob/master/docs/cli.md#deploy) + for more information on that. + - CLI provides developers with two commands - `auth` and `deploy`. + - `auth` + - `auth` command allows users to authenticate themselves to the API server. + - To use `auth` in a self-hosted environment you need to pass additional `-s` and `-w` flags: + ```sh + patron auth -s https://api.example.com -w https://example.com + ``` + Where `https://api.example.com` is the URL of your API server, and `https://example.com` + is the URL of your web UI. + - Omit `-s` and `-w` flags to use the hosted version of an API server and web UI. + - After running the `auth` command, the CLI will automatically try to open the browser + for authentication purposes. If your platform does not support that functionality, + you can always open the URL manually, as it's in the same terminal. + - Use the same authentication instructions as were provided in the deliverable 2c. + - `deploy` + - `deploy` command is your entrypoint for smart contract deployment purposes. + - The interface is similar to that of a `cargo-contract`, and many flags that + are available to upload and instantiate a contract are available here. + - For testing, we can deploy to local `substrate-contracts-node` instance, which can be built using these commands: + ```sh + git clone https://github.com/paritytech/substrate-contracts-node + cd substrate-contracts-node + cargo run + ``` + - To deploy your smart contract, write the following command, replacing placeholders with the correct values for your contract: + ```sh + patron deploy [constructor] --suri [suri] + ``` + `[constructor]` placeholder is the constructor method name, that will be called during instantiation phase. + `[suri]` is your secret URI string, which is passed verbatim to `cargo-contract`. For testing purposes we can use `//Alice`. + - The build process will start as soon as there are available smart contract builder instances. In this case, + you should see build logs appearing on your screen, allowing you to trace the build itself. \ No newline at end of file From b29d0a30a9a0b98b6f2313eea71c95df3756b747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 6 Jul 2023 13:02:53 +0200 Subject: [PATCH 207/253] wasm-opt maintenance M7 accepted --- evaluations/wasm-opt-rust_7_semuelle.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 evaluations/wasm-opt-rust_7_semuelle.md diff --git a/evaluations/wasm-opt-rust_7_semuelle.md b/evaluations/wasm-opt-rust_7_semuelle.md new file mode 100755 index 000000000..c54607169 --- /dev/null +++ b/evaluations/wasm-opt-rust_7_semuelle.md @@ -0,0 +1,17 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md +- **Milestone:** 5 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| 1. | Binaryen 113 upgrade |
    • [x]
    | [brson/wasm-opt-rs](https://github.com/brson/wasm-opt-rs/pull/145) | — | +| 2. | Upgrade cargo-contract to wasm-opt 0.113.0 |
    • [x]
    | [paritytech/cargo-contract](https://github.com/paritytech/cargo-contract/pull/1188) | — | +| 3. | Upgrade substrate to wasm-opt 0.113.0 |
    • [x]
    | [paritytech/substrate](https://github.com/paritytech/substrate/pull/14485) | — | + +## General Notes + +- — From bfcb3454b233f2e46b6094c3502e74abd50d7707 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 6 Jul 2023 05:04:12 -0600 Subject: [PATCH 208/253] Add wasm-opt-for-rust-maintenance-7 (#909) --- .../wasm-opt-for-rust-maintenance-7.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 maintenance_deliveries/wasm-opt-for-rust-maintenance-7.md diff --git a/maintenance_deliveries/wasm-opt-for-rust-maintenance-7.md b/maintenance_deliveries/wasm-opt-for-rust-maintenance-7.md new file mode 100644 index 000000000..d161660bb --- /dev/null +++ b/maintenance_deliveries/wasm-opt-for-rust-maintenance-7.md @@ -0,0 +1,29 @@ +# Maintenance Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this delivery** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/maintenance/wasm-opt-for-rust.md +* **Delivery Number:** 7 +* **Delivery Date:** 2023/07/05 + + +**Context** + +We upgraded wasm-opt-rs to binaryen 113, +published wasm-opt 0.113.0, +and upgraded cargo-contract and substrate-wasm-builder. + + +**Deliverables** + +Note: a full hourly accounting of work performed is included with the invoice. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 1. | Binaryen 113 upgrade | https://github.com/brson/wasm-opt-rs/pull/145 | | +| 2. | Upgrade cargo-contract to wasm-opt 0.113.0 | https://github.com/paritytech/cargo-contract/pull/1188 | | +| 3. | Upgrade substrate to wasm-opt 0.113.0 | https://github.com/paritytech/substrate/pull/14485 | | + +**Additional Information** + +N/A From 025b6d19de759cb3729004d2e734dd855eb6617c Mon Sep 17 00:00:00 2001 From: masapr <40862722+masapr@users.noreply.github.com> Date: Thu, 6 Jul 2023 13:35:16 +0200 Subject: [PATCH 209/253] SARP - Milestone 1 Research (#880) --- .../sarp-basic-functionality-milestone-1.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deliveries/sarp-basic-functionality-milestone-1.md diff --git a/deliveries/sarp-basic-functionality-milestone-1.md b/deliveries/sarp-basic-functionality-milestone-1.md new file mode 100644 index 000000000..bdfd943f7 --- /dev/null +++ b/deliveries/sarp-basic-functionality-milestone-1.md @@ -0,0 +1,22 @@ +# 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:** [SARP - A Static Analysis Tool for Runtime Pallets](https://github.com/w3f/Grants-Program/blob/master/applications/sarp-basic-functionality.md) +* **Milestone Number:** 1 + + +**Deliverables** + + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0a. | License | [MIT](https://github.com/scs/MIRAI/blob/Milestone1_Research/LICENSE) | MIT | +| 0b. | User Documentation |
    • [Proof of Concept: Tag Analysis on Origin](https://github.com/scs/MIRAI/blob/Milestone1_Research/substrate-examples/pallet_template)
    • [Proof of Concept: Tag Analysis for validation of unsigned transactions](https://github.com/scs/MIRAI/blob/Milestone1_Research/substrate-examples/offchain-worker)
    | In the documentation we show how our examples can be run. Since we used official substrate examples, this can also be used by users who want to apply MIRAI to their own code base. A more elaborate user documentation will be added in future work packages. | +| 0c. | Testing and Testing Guide | See 0b. | The deliverables from 0b. serve as documented manual tests. | +| 1. | Prototype Code | See 0b. | +| 2. | Documentation | [Tag Analysis on Substrate Pallets](https://github.com/scs/MIRAI/blob/Milestone1_Research/substrate-examples/README.md) | | +| 3. | Engagement | [Github comment](https://github.com/w3f/Grants-Program/pull/1706#issuecomment-1564312572) | There was not much engagement needed for this first project, but we informed half-way through the project about our progress and got a positive feedback. | + + + From 87d749821df71d3fe52308556290d1fcb2f326fb Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Fri, 7 Jul 2023 19:13:47 +0500 Subject: [PATCH 210/253] societal-grants evaluation --- evaluations/societal-grant-3_1_ali-usama.md | 485 ++++++++++++++++++++ 1 file changed, 485 insertions(+) create mode 100644 evaluations/societal-grant-3_1_ali-usama.md diff --git a/evaluations/societal-grant-3_1_ali-usama.md b/evaluations/societal-grant-3_1_ali-usama.md new file mode 100644 index 000000000..6b9bdca47 --- /dev/null +++ b/evaluations/societal-grant-3_1_ali-usama.md @@ -0,0 +1,485 @@ +# Evaluation + +- **Status:** Accepted +- **Application Document:** [Societal SaaS Application](https://github.com/w3f/Grants-Program/blob/master/applications/societal_saas_pricing.md) +- **Milestone:** 1 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** All evaluations by ali-usama + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|-------------------------------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------| +| 0a. | Licence |
    • [x]
    | [Apache 2.0](https://github.com/sctllabs/societal-node/blob/grant3_m1/LICENSE) | Correct Licence | +| 0b. | Documentation |
    • [x]
    | [ReadMe](https://github.com/sctllabs/societal-node/blob/grant3_m1/README.md) | Well-explained Readme | +| 0c. | Testing Guide |
    • [x]
    | [TestingGuide](https://github.com/sctllabs/societal-node/blob/grant3_m1/docs/SubscriptionTestingGuide.md) | Working as per the application | +| 0d. | Docker |
    • [x]
    | [Run in Docker](https://github.com/sctllabs/societal-node/tree/grant3_m1#run-in-docker)
    [Docker image](https://hub.docker.com/layers/societal/societal-node/grant3_m1-latest/images/sha256-21719afd8ec6237ffa4b12303da79b67ed078d7d5b160ef0a19ba9e20a061516?context=explore) | Builds and runs successfully | +| 1. | Substrate Module: DAO Subscription pallet |
    • [x]
    | [DAO subscription](https://github.com/sctllabs/societal-node/tree/grant3_m1/pallets/dao-subscription) | Working as per the application | +| 2. | Client Modules |
    • [x]
    | [Pallets](https://github.com/sctllabs/societal-node/tree/grant3_m1/pallets) | Working as per the application | + + +## General Notes + +The repository is well-structured and well-documented, and all the features mentioned in the milestone are working as expected. The Subsciption testing has been done using the Polkadot JS UI, and the details of unit tests are attached below: + +### `cargo test` output +``` +Running unittests src/lib.rs (target/debug/deps/dao_primitives-5304105fe2657841) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/eth_primitives-e44444abe577bac1) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao-92a9cf4d3aa685a2) + +running 5 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::create_dao_invalid_input ... ok +test tests::create_dao_fails_on_string_limits ... ok +test tests::create_dao_token_failure ... ok +test tests::create_dao_works ... ok + +test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_assets-cacdcb0554414926) + +running 61 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::balance_conversion_should_work ... ok +test tests::assets_from_genesis_should_exist ... ok +test tests::basic_minting_should_work ... ok +test tests::approval_lifecycle_works ... ok +test tests::asset_transfer_when_on_hold_should_not_work ... ok +test tests::approve_transfer_frozen_asset_should_not_work ... ok +test tests::burning_asset_balance_with_positive_balance_should_work ... ok +test tests::approval_deposits_work ... ok +test tests::burning_asset_balance_with_zero_balance_does_nothing ... ok +test tests::deducting_asset_balance_should_work ... ok +test tests::destroy_accounts_calls_died_hooks ... ok +test tests::finish_destroy_asset_destroys_asset ... ok +test tests::cannot_transfer_more_than_approved ... ok +test tests::cannot_transfer_more_than_exists ... ok +test tests::cancel_approval_works ... ok +test tests::holding_asset_account_balance_should_work ... ok +test tests::destroy_should_refund_approvals ... ok +test tests::imbalances_should_work ... ok +test tests::force_metadata_should_work ... ok +test tests::force_asset_status_should_work ... ok +test tests::force_cancel_approval_works ... ok +test tests::minting_insufficient_assets_with_deposit_without_consumer_should_work ... ok +test tests::lifecycle_should_work ... ok +Jul 07 18:08:55.849 ERROR runtime::system: Logic error: Unexpected underflow in reducing consumer +test tests::minting_insufficient_asset_with_deposit_should_work_when_consumers_exhausted ... ok +test tests::freezer_should_work ... ok +test tests::normal_asset_create_and_destroy_callbacks_should_work ... ok +test tests::minting_too_many_insufficient_assets_fails ... ok +test tests::querying_roles_should_work ... ok +test tests::querying_name_symbol_and_decimals_should_work ... ok +test tests::min_balance_should_work ... ok +test tests::non_providing_should_work ... ok +test tests::querying_total_supply_should_work ... ok +test tests::querying_allowance_should_work ... ok +test tests::refunding_asset_deposit_with_burn_should_work ... ok +test tests::partial_destroy_should_work ... ok +test tests::root_asset_create_should_work ... ok +test tests::origin_guards_should_work ... ok +test tests::refunding_calls_died_hook ... ok +test tests::refunding_asset_deposit_without_burn_should_work ... ok +test tests::slashing_asset_balance_should_work ... ok +test tests::refunding_asset_deposit_with_burn_disallowed_should_fail ... ok +test tests::slashing_reserved_asset_balance_should_work ... ok +test tests::set_team_should_work ... ok +test tests::transferring_amount_below_available_balance_should_work ... ok +test tests::transfer_approved_all_funds ... ok +test tests::transfer_large_asset ... ok +test tests::transfer_owner_should_work ... ok +test tests::transferring_less_than_one_unit_is_fine ... ok +test tests::transferring_enough_to_kill_source_when_keep_alive_should_fail ... ok +test tests::set_metadata_should_work ... ok +test tests::transferring_more_units_than_total_supply_should_not_work ... ok +test tests::transferring_reserved_asset_balance_to_nonexistent_should_fail ... ok +test types::ensure_bool_decodes_to_consumer_or_sufficient ... ok +test tests::transferring_frozen_asset_should_not_work ... ok +test tests::transferring_frozen_user_should_not_work ... ok +test tests::transferring_amount_more_than_available_balance_should_not_work ... ok +test tests::transferring_reserved_balance_should_work ... ok +test tests::unreserving_higher_with_best_effort_asset_balance_should_work ... ok +test tests::transferring_to_frozen_account_should_work ... ok +test tests::unreserving_asset_balance_should_work ... ok + +test result: ok. 61 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_bounties-9d09c312b514bca5) + +running 21 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::accepted_spend_proposal_enacted_on_spend_period ... ok +test tests::accepted_spend_proposal_ignored_outside_spend_period ... ok +test tests::accept_curator_handles_different_deposit_calculations ... ok +test tests::cancel_and_refund ... ok +test tests::award_and_cancel ... ok +test tests::claim_handles_high_fee ... ok +test tests::close_bounty_works ... ok +test tests::genesis_config_works ... ok +test tests::award_and_claim_bounty_works ... ok +test tests::assign_curator_works ... ok +test tests::expire_and_unassign ... ok +test tests::create_bounty_works ... ok +test tests::genesis_funding_works ... ok +test tests::pot_underflow_should_not_diminish ... ok +test tests::inexistent_account_works ... ok +test tests::unused_pot_should_diminish ... ok +test tests::extend_expiry ... ok +test tests::unassign_curator_self ... ok +test tests::treasury_account_doesnt_get_deleted ... ok +test tests::unassign_curator_works ... ok + +test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_bounties_precompile-9196153ddafff614) + +running 1 test +test __DaoBountiesPrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_collective-18b44a063002b1f5) + +running 21 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::correct_validate_and_get_proposal ... ok +test tests::close_with_no_prime_but_majority_works ... ok +test tests::close_disapprove_does_not_care_about_weight_or_len ... ok +test tests::motions_approval_with_enough_votes_and_lower_voting_threshold_works ... ok +test tests::motions_approval_works ... ok +test tests::motions_basic_environment_works ... ok +test tests::motion_with_no_votes_closes_with_disapproval ... ok +test tests::close_works ... ok +test tests::motions_disapproval_works ... ok +test tests::motions_ignoring_non_collective_proposals_works ... ok +test tests::proposal_weight_limit_ignored_on_disapprove ... ok +test tests::motions_ignoring_bad_index_collective_vote_works ... ok +test tests::motions_reproposing_disapproved_works ... ok +test tests::proposal_weight_limit_works_on_approve ... ok +test tests::propose_works ... ok +test tests::removal_of_old_voters_votes_works_with_set_members ... ok +test tests::motions_ignoring_non_collective_votes_works ... ok +test tests::removal_of_old_voters_votes_works ... ok +test tests::motions_vote_after_works ... ok +test tests::limit_active_proposals ... ok + +test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_collective_precompile-24225f095b5de66b) + +running 1 test +test __DaoCollectivePrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_democracy-4d7b069fff576a17) + +running 55 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::decoders::test_decode_compact_u32_at ... ok +test tests::delegation::self_delegation_not_allowed ... ok +test tests::delegation::conviction_should_be_honored_in_delegation ... ok +test tests::delegation::cyclic_delegation_should_unwind ... ok +test tests::delegation::single_proposal_should_work_with_delegation ... ok +test tests::delegation::single_proposal_should_work_with_delegation_and_vote ... ok +test tests::cancellation::emergency_cancel_should_work ... ok +test tests::delegation::single_proposal_should_work_with_undelegation ... ok +test tests::delegation::single_proposal_should_work_with_vote_and_delegation ... ok +test tests::delegation::split_vote_delegation_should_be_ignored ... ok +test tests::external_proposing::external_blacklisting_should_work ... ok +test tests::external_proposing::external_majority_referendum_works ... ok +test tests::external_proposing::external_default_referendum_works ... ok +test tests::external_proposing::external_and_public_interleaving_works ... ok +test tests::delegation::redelegation_keeps_lock ... ok +test tests::external_proposing::veto_external_works ... ok +test tests::fast_tracking::fast_track_referendum_fails_when_no_simple_majority ... ok +test tests::fast_tracking::instant_next_block_referendum_backed ... ok +test tests::external_proposing::external_referendum_works ... ok +test tests::fast_tracking::fast_track_referendum_works ... ok +test tests::lock_voting::lock_voting_should_work_with_delegation ... ok +test tests::fast_tracking::instant_referendum_works ... ok +test tests::lock_voting::no_locks_without_conviction_should_work ... ok +test tests::lock_voting::locks_should_persist_from_voting_to_delegation ... ok +test tests::params_should_work ... ok +test tests::lock_voting::multi_consolidation_of_lockvotes_should_be_conservative ... ok +test tests::lock_voting::lock_voting_should_work ... ok +test tests::lock_voting::locks_should_persist_from_delegation_to_voting ... ok +test tests::public_proposals::backing_for_should_work ... ok +test tests::lock_voting::single_consolidation_of_lockvotes_should_work_as_before ... ok +test tests::public_proposals::cancel_proposal_should_work ... ok +test tests::public_proposals::deposit_for_proposals_should_be_taken ... ok +test tests::public_proposals::deposit_for_proposals_should_be_returned ... ok +test tests::public_proposals::blacklisting_should_work ... ok +test tests::public_proposals::poor_proposer_should_not_work ... ok +test tests::public_proposals::runners_up_should_come_after ... ok +test tests::public_proposals::poor_seconder_should_not_work ... ok +test tests::public_proposals::proposal_with_deposit_below_minimum_should_not_work ... ok +test tests::set_balance_proposal_is_correctly_filtered_out ... ok +test tests::scheduling::lowest_unbaked_should_be_sensible ... ok +test tests::lock_voting::prior_lockvotes_should_be_enforced ... ok +test tests::scheduling::delayed_enactment_should_work ... ok +test tests::scheduling::ooo_inject_referendums_should_work ... ok +test tests::scheduling::simple_failing_should_work ... ok +test tests::scheduling::simple_passing_should_work ... ok +test tests::voting::controversial_low_turnout_voting_should_work ... ok +test tests::voting::controversial_voting_should_work ... ok +test vote_threshold::tests::should_work ... ok +test tests::voting::passing_low_turnout_voting_should_work ... ok +test tests::voting::overvoting_should_fail ... ok +test tests::voting::split_vote_cancellation_should_work ... ok +test tests::voting::single_proposal_should_work ... ok +test tests::voting::split_voting_should_work ... ok +test tests::decoders::len_of_deposit_of ... ok + +test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_democracy_precompile-d8ea90ac57e322fd) + +running 1 test +test __DaoDemocracyPrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_eth_governance-ef888b5302257d3e) + +running 8 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::propose_pending_works ... ok +test tests::propose_approve_works ... ok +test tests::vote_approve_works ... ok +test tests::vote_pending_works ... ok +test tests::close_works ... ok +test tests::propose_account_not_signer ... ok +test tests::propose_account_invalid ... ok + +test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_eth_governance_precompile-ac076c5186089e0d) + +running 1 test +test __DaoEthGovernancePrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_membership-efd84dc9eee88c46) + +running 9 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::query_membership_works ... ok +test tests::change_key_works_that_does_not_change_order ... ok +test tests::reset_members_works ... ok +test tests::change_key_works ... ok +test tests::add_member_works ... ok +test tests::swap_member_works ... ok +test tests::swap_member_works_that_does_not_change_order ... ok +test tests::remove_member_works ... ok + +test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_membership_precompile-2fadcc9ac282db18) + +running 1 test +test __DaoMembershipPrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_nft_governance-a520c456bca91fad) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_precompile-cd6c5b4843b89685) + +running 1 test +test __DaoPrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_subscription-58c85d136a55d06a) + +running 10 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::ensure_active_not_exists ... ok +test tests::ensure_active_works ... ok +test tests::fails_already_subscribed ... ok +test tests::subscribe_not_enough_balance ... ok +test tests::subscribe_works ... ok +test tests::ensure_active_fn_limit_exceeded ... ok +test tests::ensure_active_expired ... ok +test tests::extend_subscription_works ... ok +test tests::extend_subscription_balance_low ... ok + +test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.29s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_treasury-a1b8217018655fba) + +running 13 tests +test tests::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::genesis_funding_works ... ok +test tests::genesis_config_works ... ok +test tests::minting_works ... ok +test tests::accepted_spend_proposal_ignored_outside_spend_period ... ok +test tests::accepted_spend_proposal_enacted_on_spend_period ... ok +test tests::inexistent_account_works ... ok +test tests::spend_origin_permissioning_works ... ok +test tests::pot_underflow_should_not_diminish ... ok +test tests::unused_pot_should_diminish ... ok +test tests::treasury_account_doesnt_get_deleted ... ok +test tests::spend_origin_works ... ok +test tests::max_approvals_limited ... ok + +test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s + + Running unittests src/lib.rs (target/debug/deps/pallet_dao_treasury_precompile-ea7722ab71b3140c) + +running 1 test +test __DaoTreasuryPrecompile_test_solidity_signatures ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/main.rs (target/debug/deps/societal_node-89d25a73ed72cdbe) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running unittests src/lib.rs (target/debug/deps/societal_node_runtime-bc392bd1c986b722) + +running 3 tests +test __pallet_staking_reward_curve_test_module::reward_curve_piece_count ... ok +test __construct_runtime_integrity_test::runtime_integrity_tests ... ok +test __pallet_staking_reward_curve_test_module::reward_curve_precision ... ok + +test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s + + Doc-tests dao-primitives + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests eth-primitives + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-assets + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-bounties + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-bounties-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-collective + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-collective-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-democracy + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-democracy-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-eth-governance + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-eth-governance-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-membership + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-membership-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-nft-governance + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-subscription + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-treasury + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests pallet-dao-treasury-precompile + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests societal-node-runtime + +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 69247526d3f38baeeba27abe987e1308c8c28237 Mon Sep 17 00:00:00 2001 From: BelSoft Dev DOO <126072104+beoblock@users.noreply.github.com> Date: Fri, 7 Jul 2023 16:21:29 +0200 Subject: [PATCH 211/253] Create Diffy_messenger_st1_ms2.md --- deliveries/Diffy_messenger_st1_ms2.md | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 deliveries/Diffy_messenger_st1_ms2.md diff --git a/deliveries/Diffy_messenger_st1_ms2.md b/deliveries/Diffy_messenger_st1_ms2.md new file mode 100644 index 000000000..21293ad04 --- /dev/null +++ b/deliveries/Diffy_messenger_st1_ms2.md @@ -0,0 +1,31 @@ +# 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/Diffy_chat.md +* **Milestone Number:** 2 + +**Context** + +P2p channels between users are set by usernames using WebRTC. Thу Diffy Chat Substrate pallet is used for exchanging SDP offers. For address discovery of NAT users any public STUN server can be used. All messages between users are encrypted with user’s ed25519 keys and transactions are signed using sr25519 keys (to support Polkadot compatibility). Both keys are tied to usernames so that users do not have to generate ed25519 keys manually. In this milestone we have also added a “contacts” feature. + +**Deliverables** +In this milestone our team has executed the following deliverables + +- a contacts list feature; +- a web messenger dapp MVP. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. :heavy_check_mark: | License | [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | Apache 2.0 license | +| 0b. :heavy_check_mark: | Documentation | [Readme.md](https://github.com/Belsoft-rs/diffychat-client/blob/master/README.md) | Explaining basic features | +| 0c. :heavy_check_mark: | Testing Guide | [Diffy chat pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | "How To" guide | +| 0d. :heavy_check_mark: | Article | [BelSoft Dev on Medium](https://medium.com/@belsoft/diffy-chat-a-secured-decentralized-messenger-194ad74d6669) | An article on Medium that explains what was achieved, how to use the new Dapp and what are the benefits of using the Diffy Chat messenger | +| 1. :heavy_check_mark: | Contacts list feature | [See here](https://github.com/Belsoft-rs/diffychat-client/blob/master/src/components/messenger/contacts/contacts.js) | The contact list [feature](https://github.com/Belsoft-rs/diffychat-pallet/blob/5ff7e47cf8b6a4bf6e26a55c3836dabe44d047d5/pallets/template/src/lib.rs#L168), that allow users to tie real names to contact’s wallet addresses and store them encrypted in a blockchain. | +| 2. :heavy_check_mark: | Web messenger dapp MVP | [See here](https://belsoft-rs.github.io/diffychat/index.html) | The Diffy chat web messenger dapp with authorization via Polkadot.js keys, p2p messaging using developed DOTRTC library and contacts list. | + +**Additional Information** + +A short video showing delivered functionality: + +[![Preview](https://github.com/beoblock/Grant-Milestone-Delivery/assets/126072104/7fee3eb1-b81e-4ce2-ac20-1ffd6b04216a)](https://media.belsoft.rs/diffychat/diffychat.mp4) From 7158c1834a6b6e96785633f46d0546f3c796bda0 Mon Sep 17 00:00:00 2001 From: dastansam Date: Fri, 7 Jul 2023 23:40:05 +0600 Subject: [PATCH 212/253] Add diffy chat evaluation --- evaluations/diffychat_2_dastansam.md | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 evaluations/diffychat_2_dastansam.md diff --git a/evaluations/diffychat_2_dastansam.md b/evaluations/diffychat_2_dastansam.md new file mode 100644 index 000000000..a7640154b --- /dev/null +++ b/evaluations/diffychat_2_dastansam.md @@ -0,0 +1,45 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/Diffy_chat.md) +- **Milestone:** 2 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/diffy_chat_1_dsm-w3f.md) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | [LICENSE](https://github.com/Belsoft-rs/diffychat-pallet/blob/main/LICENSE) | Correct license | +| 0b. | Documentation | [Readme.md](https://github.com/Belsoft-rs/diffychat-client/blob/master/README.md) | Well-covered documentation | +| 0c. | Testing Guide | [Diffy chat pallet](https://github.com/Belsoft-rs/diffychat-pallet#getting-started) | Tests are passing, logs below. | +| 0d. | Article | [BelSoft Dev on Medium](https://medium.com/@belsoft/diffy-chat-a-secured-decentralized-messenger-194ad74d6669) | Article is posted, it explains well the need for this messenger and has an extensive coverage. | +| 1. | Contacts list feature | [See here](https://github.com/Belsoft-rs/diffychat-client/blob/master/src/components/messenger/contacts/contacts.js) | Feature is delivered completely, and is deployed [here](https://belsoft-rs.github.io/diffychat/). Users are able to add others into their contact list. | +| 2. | Web messenger dapp MVP | [See here](https://belsoft-rs.github.io/diffychat/index.html) | I wasn't able to complete instructions for testing the web messenger. I followed the tutorial video that was provided but it just hangs and lags for me. I attached some screenshots of the failure. | + +## General Notes + +Contact list feature works both locally and on production. However, main web messenger has different behaviour. I followed the tutorial [video](https://media.belsoft.rs/diffychat/diffychat.mp4) that was provided but chat windows just hang and lag for me. I attached screenshot of the failure. + +I also though you would use `Polkadot.js` wallet when you mentioned that `web messenger will use Polkadot.js`, but it seems that you are using `polkadot.js` library. It seemed strange to me that user inserts their `mnemonic` phrase into the form and not use their wallet directly. I think it would be nice if you could provide some context on that. + +## Logs and screenshots + +
    + +Tests + +``` +running 7 tests +test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok +test tests::test_register ... ok +test tests::test_upsert_contact ... ok +test tests::test_register_nickname_is_already_registered ... ok +test tests::offer_chat_with_static_values ... ok +test tests::test_register_account_id_is_already_registered ... ok +test tests::answer_chat_with_static_values ... ok + +test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` + +
    \ No newline at end of file From 392081a9e28e03a102e9121cc84e2cf4c3a31857 Mon Sep 17 00:00:00 2001 From: dastansam Date: Fri, 7 Jul 2023 23:40:38 +0600 Subject: [PATCH 213/253] Clean up --- evaluations/ink_analyzer_3_dastansam.md | 533 ------------------------ 1 file changed, 533 deletions(-) delete mode 100644 evaluations/ink_analyzer_3_dastansam.md diff --git a/evaluations/ink_analyzer_3_dastansam.md b/evaluations/ink_analyzer_3_dastansam.md deleted file mode 100644 index 06b1db0b8..000000000 --- a/evaluations/ink_analyzer_3_dastansam.md +++ /dev/null @@ -1,533 +0,0 @@ -- **Status:** Accepted -- **Application Document:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) -- **Milestone:** 3 -- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) -- **Previously successfully merged evaluation:** [Milestone 2](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_2_dsm-w3f.md) - -**Deliverables** - -| Number | Deliverable | Link | Notes | -|---------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Correct licenses | -| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme), [language server (ink-lsp-server) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) on GitHub (and [crates.io](https://crates.io/crates/ink-lsp-server)), [language server (ink-lsp-server) crate rustdoc](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) library documentation on docs.rs and extensive inline source documentation. | Extensive documentation. | -| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Extensive unit tests and integration are provided. All tests are passing by running it with both native Rust and Docker image. | -| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | Dockerfile builds and all tests are passing. | -| 1. | Language Server: Rust binary crate: ink! Language Server Protocol implementation | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [Language server crate (ink-lsp-server)](https://crates.io/crates/ink-lsp-server). | Very well-written code, every piece code is commented and code coverage is high. The only non-critical issue is some warnings that clippy produces (logs attached below) | - -## General Notes - -The project is well documented and the code is almost flawless. Can't wait to see it in action after VSCode integration in the next milestone! - -### Outputs - -
    - Clippy - -```bash -warning: variables can be used directly in the `format!` string - --> crates/test-utils/src/lib.rs:28:36 - | -28 | lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - = note: `#[warn(clippy::uninlined_format_args)]` on by default -help: change this to - | -28 - lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() -28 + lsp_types::Url::from_file_path(format!("/test_data/{location}.rs")).unwrap() - | - -warning: `test-utils` (lib) generated 1 warning - Checking ink-analyzer-ir v0.7.0 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/ir) - Checking ink-analyzer v0.6.1 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/analyzer) -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/completions.rs:141:50 - | -141 | ... .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - = note: `#[warn(clippy::uninlined_format_args)]` on by default -help: change this to - | -141 - .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); -141 + .retain(|macro_kind| format!("{macro_kind}").starts_with(prefix)); - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/completions.rs:311:48 - | -311 | ... .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -311 - .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); -311 + .retain(|arg_kind| format!("{arg_kind}").starts_with(prefix)); - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:131:25 - | -131 | format!("Unknown ink! attribute argument: '{}'.", arg_name_text) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -131 - format!("Unknown ink! attribute argument: '{}'.", arg_name_text) -131 + format!("Unknown ink! attribute argument: '{arg_name_text}'.") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:148:42 - | -148 | ... message: format!("`{}` argument shouldn't have a value.", arg_name_text), - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -148 - message: format!("`{}` argument shouldn't have a value.", arg_name_text), -148 + message: format!("`{arg_name_text}` argument shouldn't have a value."), - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:220:42 - | -220 | ... message: format!( - | ________________________________^ -221 | | ... "`{}` argument should have a `boolean` (`bool`) value.", -222 | | ... arg_name_text -223 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:238:42 - | -238 | ... message: format!( - | ________________________________^ -239 | | ... "`{}` argument should have a `path` (e.g `my::env::Types`) value.", -240 | | ... arg_name_text -241 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:467:41 - | -467 | ... format!("`ink! {}`", arg_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -467 - format!("`ink! {}`", arg_kind) -467 + format!("`ink! {arg_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:470:41 - | -470 | ... format!("`ink! {}`", macro_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -470 - format!("`ink! {}`", macro_kind) -470 + format!("`ink! {macro_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:543:45 - | -543 | ... format!("argument `{}`", arg_kind,) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -543 - format!("argument `{}`", arg_kind,) -543 + format!("argument `{arg_kind}`",) - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/utils.rs:546:45 - | -546 | ... format!("macro `{}`", macro_kind) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -help: change this to - | -546 - format!("macro `{}`", macro_kind) -546 + format!("macro `{macro_kind}`") - | - -warning: variables can be used directly in the `format!` string - --> crates/analyzer/src/analysis/diagnostics/event.rs:95:42 - | -95 | ... message: format!( - | ________________________________^ -96 | | ... "`{}` attributes on event fields are not supported.", -97 | | ... attr -98 | | ... ), - | |_______________________^ - | - = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args -``` - -
    - -
    - - Unit and integration tests - -```bash -running 132 tests -test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::actions::tests::ast_item_actions_works ... ok -test analysis::diagnostics::chain_extension::tests::invalid_trait_properties_fails ... ok -test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok -test analysis::completions::tests::macro_completions_works ... ok -test analysis::diagnostics::chain_extension::tests::multiple_error_code_types_fails ... ok -test analysis::diagnostics::chain_extension::tests::overlapping_ids_fails ... ok -test analysis::completions::tests::argument_completions_works ... ok -test analysis::actions::tests::ink_attribute_actions_works ... ok -test analysis::diagnostics::chain_extension::tests::one_error_code_type_works ... ok -test analysis::diagnostics::constructor::tests::ink_descendants_fails ... ok -test analysis::diagnostics::constructor::tests::missing_return_type_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_trait_properties_works ... ok -test analysis::diagnostics::constructor::tests::invalid_callable_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::chain_extension::tests::invalid_trait_items_fails ... ok -test analysis::diagnostics::chain_extension::tests::non_overlapping_ids_works ... ok -test analysis::diagnostics::contract::tests::attribute_in_mod_body_fails ... ok -test analysis::diagnostics::constructor::tests::self_receiver_fails ... ok -test analysis::diagnostics::chain_extension::tests::valid_trait_items_works ... ok -test analysis::diagnostics::chain_extension::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::contract::tests::missing_constructor_fails ... ok -test analysis::diagnostics::contract::tests::missing_message_fails ... ok -test analysis::diagnostics::contract::tests::missing_storage_fails ... ok -test analysis::diagnostics::contract::tests::multiple_storage_items_fails ... ok -test analysis::diagnostics::contract::tests::multiple_wildcard_selectors_fails ... ok -test analysis::diagnostics::contract::tests::non_impl_parent_for_callables_fails ... ok -test analysis::diagnostics::contract::tests::non_mod_fails ... ok -test analysis::diagnostics::constructor::tests::valid_callable_works ... ok -test analysis::diagnostics::constructor::tests::no_self_receiver_works ... ok -test analysis::diagnostics::constructor::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::constructor::tests::return_type_works ... ok -test analysis::actions::tests::is_focused_on_ast_item_declaration_works ... ok -test analysis::diagnostics::contract::tests::out_of_line_mod_fails ... ok -test analysis::diagnostics::constructor::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::overlapping_selectors_fails ... ok -test analysis::diagnostics::contract::tests::root_items_not_in_root_fails ... ok -test analysis::diagnostics::contract::tests::one_or_multiple_constructors_works ... ok -test analysis::diagnostics::event::tests::cfg_field_fails ... ok -test analysis::diagnostics::contract::tests::impl_parent_for_callables_works ... ok -test analysis::diagnostics::event::tests::contract_parent_works ... ok -test analysis::diagnostics::event::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::event::tests::ink_topic_field_works ... ok -test analysis::diagnostics::event::tests::non_contract_parent_fails ... ok -test analysis::diagnostics::event::tests::non_cfg_field_works ... ok -test analysis::diagnostics::event::tests::non_pub_struct_fails ... ok -test analysis::diagnostics::event::tests::non_topic_ink_field_fails ... ok -test analysis::diagnostics::event::tests::struct_with_generics_fails ... ok -test analysis::diagnostics::event::tests::pub_struct_works ... ok -test analysis::diagnostics::event::tests::struct_with_no_generics_works ... ok -test analysis::diagnostics::extension::tests::ink_descendants_fails ... ok -test analysis::diagnostics::extension::tests::invalid_method_fails ... ok -test analysis::diagnostics::contract::tests::one_or_no_wildcard_selectors_works ... ok -test analysis::diagnostics::extension::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::extension::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::extension::tests::self_receiver_fails ... ok -test analysis::diagnostics::file::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::file::tests::multiple_contract_definitions_fails ... ok -test analysis::diagnostics::file::tests::no_contract_definitions_works ... ok -test analysis::diagnostics::file::tests::one_contract_definition_works ... ok -test analysis::diagnostics::file::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::extension::tests::no_self_receiver_works ... ok -test analysis::diagnostics::extension::tests::valid_method_works ... ok -test analysis::diagnostics::contract::tests::non_overlapping_selectors_works ... ok -test analysis::diagnostics::contract::tests::inline_mod_works ... ok -test analysis::diagnostics::contract::tests::one_or_multiple_messages_works ... ok -test analysis::diagnostics::ink_impl::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::ink_impl::tests::missing_annotation_and_no_callables_fails ... ok -test analysis::diagnostics::ink_impl::tests::invalid_impl_properties_fails ... ok -test analysis::diagnostics::ink_impl::tests::non_impl_fails ... ok -test analysis::diagnostics::ink_impl::tests::non_impl_parent_for_callables_fails ... ok -test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::ink_test::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::ink_test::tests::fn_works ... ok -test analysis::diagnostics::ink_test::tests::ink_descendants_fails ... ok -test analysis::diagnostics::ink_test::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::ink_test::tests::non_fn_fails ... ok -test analysis::diagnostics::contract::tests::one_storage_item_works ... ok -test analysis::diagnostics::message::tests::ink_descendants_fails ... ok -test analysis::diagnostics::ink_impl::tests::annotated_or_contains_callables_works ... ok -test analysis::diagnostics::message::tests::invalid_callable_fails ... ok -test analysis::diagnostics::message::tests::non_self_ref_receiver_fails ... ok -test analysis::diagnostics::ink_impl::tests::impl_works ... ok -test analysis::diagnostics::ink_impl::tests::impl_parent_for_callables_works ... ok -test analysis::diagnostics::message::tests::self_return_type_fails ... ok -test analysis::diagnostics::ink_impl::tests::valid_impl_properties_works ... ok -test analysis::diagnostics::storage::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::storage::tests::contract_parent_works ... ok -test analysis::diagnostics::storage::tests::ink_descendants_fails ... ok -test analysis::diagnostics::storage::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::storage::tests::non_contract_parent_fails ... ok -test analysis::diagnostics::storage::tests::non_pub_struct_fails ... ok -test analysis::diagnostics::storage::tests::pub_struct_works ... ok -test analysis::diagnostics::storage_item::tests::adt_works ... ok -test analysis::diagnostics::storage_item::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::storage_item::tests::ink_descendants_fails ... ok -test analysis::diagnostics::storage_item::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::storage_item::tests::non_adt_fails ... ok -test analysis::diagnostics::topic::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::topic::tests::non_struct_field_fails ... ok -test analysis::diagnostics::topic::tests::struct_field_works ... ok -test analysis::diagnostics::ink_impl::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::trait_definition::tests::invalid_quasi_direct_descendant_fails ... ok -test analysis::diagnostics::trait_definition::tests::invalid_trait_items_fails ... ok -test analysis::diagnostics::trait_definition::tests::invalid_trait_properties_fails ... ok -test analysis::diagnostics::trait_definition::tests::missing_message_fails ... ok -test analysis::diagnostics::trait_definition::tests::multiple_messages_works ... ok -test analysis::diagnostics::trait_definition::tests::one_message_works ... ok -test analysis::diagnostics::message::tests::non_self_return_type_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_quasi_direct_descendant_works ... ok -test analysis::diagnostics::message::tests::valid_callable_works ... ok -test analysis::diagnostics::message::tests::self_ref_receiver_works ... ok -test analysis::diagnostics::trait_definition::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::utils::tests::duplicate_attributes_and_arguments_fails ... ok -test analysis::diagnostics::utils::tests::identifiers_not_prefixed_with_ink_works ... ok -test analysis::diagnostics::utils::tests::identifiers_prefixed_with_ink_fails ... ok -test analysis::diagnostics::utils::tests::conflicting_attributes_and_arguments_fails ... ok -test analysis::diagnostics::utils::tests::invalid_attribute_argument_format_and_value_type_fails ... ok -test analysis::diagnostics::utils::tests::known_ink_attributes_works ... ok -test analysis::diagnostics::utils::tests::unknown_ink_attributes_fails ... ok -test analysis::diagnostics::utils::tests::no_conflicting_attributes_and_arguments_works ... ok -test analysis::diagnostics::message::tests::no_ink_descendants_works ... ok -test analysis::diagnostics::utils::tests::no_duplicate_attributes_and_arguments_works ... ok -test analysis::diagnostics::utils::tests::valid_attribute_argument_format_and_value_type_works ... ok -test analysis::hover::tests::hover_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_trait_properties_works ... ok -test analysis::diagnostics::message::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::trait_definition::tests::valid_trait_items_works ... ok -test analysis::diagnostics::ink_impl::tests::compound_diagnostic_works ... ok -test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok -test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok - -test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.54s - - Running tests/actions.rs (target/debug/deps/actions-9b69adca190e239e) - -running 1 test -test actions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s - - Running tests/completions.rs (target/debug/deps/completions-2fb385d575cb34b0) - -running 1 test -test completions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s - - Running tests/diagnostics.rs (target/debug/deps/diagnostics-35a69d5da649290e) - -running 1 test -test diagnostics_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.56s - - Running tests/hover.rs (target/debug/deps/hover-78b56127e91559bc) - -running 1 test -test hover_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s - - Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-8d6ce456156f44e8) - -running 36 tests -test attrs::meta::separator::tests::cast_works ... ok -test attrs::meta::name::tests::cast_works ... ok -test chain_extension::tests::cast_works ... ok -test event::tests::cast_works ... ok -test attrs::utils::tests::parse_ink_args_works ... ok -test attrs::meta::value::tests::cast_works ... ok -test attrs::utils::tests::sort_ink_args_works ... ok -test ink_test::tests::cast_works ... ok -test extension::tests::cast_works ... ok -test file::tests::parse_works ... ok -test constructor::tests::cast_works ... ok -test selector::tests::cast_arg_works ... ok -test storage::tests::cast_works ... ok -test attrs::tests::cast_ink_attribute_works ... ok -test topic::tests::cast_works ... ok -test storage_item::tests::cast_works ... ok -test trait_definition::tests::cast_works ... ok -test tree::ast_ext::tests::parent_ast_item_works ... ok -test message::tests::cast_works ... ok -test tree::item_at_offset::tests::probable_and_normalized_parent_variants_works ... ok -test tree::utils::tests::ink_args_works ... ok -test tree::utils::tests::ink_attrs_ancestors_works ... ok -test tree::utils::tests::ink_arg_by_kind_works ... ok -test ink_impl::tests::cast_works ... ok -test tree::utils::tests::ink_attrs_closest_ancestors_works ... ok -test tree::utils::tests::ink_attrs_closest_descendants_works ... ok -test tree::utils::tests::ink_attrs_in_scope_works ... ok -test tree::utils::tests::ink_attrs_descendants_works ... ok -test tree::item_at_offset::tests::prev_and_next_token_variants_works ... ok -test tree::item_at_offset::tests::focused_token_and_affixes_works ... ok -test tree::utils::tests::ink_attrs_works ... ok -test selector::tests::compose_works ... ok -test tree::item_at_offset::tests::parent_variants_works ... ok -test tree::utils::tests::ink_impl_closest_descendants_works ... ok -test tree::utils::tests::ink_callable_closest_descendants_works ... ok -test contract::tests::cast_works ... ok - -test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s - - Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-fb4c468f082713c0) - -running 13 tests -test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok -test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok -test from_ast::tests::struct_without_ast_field_fails ... ok -test utils::tests::contains_field_works ... ok -test utils::tests::find_attribute_by_path_works ... ok -test from_syntax::tests::struct_with_syntax_field_works ... ok -test from_syntax::tests::struct_with_ast_field_works ... ok -test utils::tests::find_field_works ... ok -test from_ast::tests::struct_with_ast_field_works ... ok -test utils::tests::parse_struct_fields_works ... ok -test from_syntax::tests::struct_with_ink_attr_field_works ... ok -test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok -test from_ink_attribute::tests::optional_fields_works ... ok - -test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running unittests src/lib.rs (target/debug/deps/ink_lsp_server-24199617d9fb7881) - -running 17 tests -test dispatch::handlers::notification::tests::handle_did_change_text_document_works ... ok -test dispatch::handlers::notification::tests::handle_did_close_text_document_works ... ok -test dispatch::handlers::notification::tests::handle_did_open_text_document_works ... ok -test initialize::tests::server_capabilities_works ... ok -test memory::tests::memory_works ... ok -test initialize::tests::initialize_works ... ok -test dispatch::routers::notification::tests::request_router_works ... ok -test dispatch::routers::request::tests::request_router_works ... ok -test dispatch::handlers::request::tests::handle_completion_works ... ok -test translator::from_lsp::tests::offset_works ... ok -test translator::to_lsp::tests::position_works ... ok -test dispatch::actions::tests::publish_diagnostics_works ... ok -test dispatch::handlers::request::tests::handle_hover_works ... ok -test dispatch::handlers::request::tests::handle_code_action_works ... ok -test utils::tests::code_actions_kinds_works ... ok -test utils::tests::position_encoding_works ... ok -test dispatch::tests::main_loop_and_dispatcher_works ... ok - -test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s - - Running unittests src/main.rs (target/debug/deps/ink_lsp_server-9baae7124d812d8b) - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/actions.rs (target/debug/deps/actions-a68334fdf55e473c) - -running 1 test -test actions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.47s - - Running tests/completions.rs (target/debug/deps/completions-7a5efa8c88c2963e) - -running 1 test -test completions_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.81s - - Running tests/diagnostics.rs (target/debug/deps/diagnostics-76f62205e26b96d8) - -running 1 test -test diagnostics_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s - - Running tests/hover.rs (target/debug/deps/hover-ce02a6d2c267a066) - -running 1 test -test hover_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s - - Running unittests src/lib.rs (target/debug/deps/test_utils-fc1fbe74d610e4ef) - -running 1 test -test tests::offset_at_variants_works ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests ink-analyzer - -running 1 test -test src/lib.rs - (line 7) ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s - - Doc-tests ink-analyzer-ir - -running 1 test -test src/lib.rs - (line 7) ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s - - Doc-tests ink-analyzer-macro - -running 4 tests -test src/lib.rs - from_ink_attribute_derive (line 70) ... ok -test src/lib.rs - from_ast_derive (line 35) ... ok -test src/lib.rs - (line 6) ... ok -test src/lib.rs - from_syntax_derive (line 100) ... ok - -test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s - - Doc-tests ink-lsp-server - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests test-utils - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s -``` -
    - -
    - -Docker - -```bash -> docker build -t ink-analyzer . - - => exporting to image 0.0s - => => exporting layers 0.0s - => => writing image sha256:f64cf8672748a96a6258864e5f85fb6d27b0c0c131fd1ae6c601934028801c6a 0.0s - => => naming to docker.io/library/ink-analyzer -``` - -
    \ No newline at end of file From 36247a7f88b9a920aa5a9bc2a9d168efb3317800 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Fri, 7 Jul 2023 20:45:07 +0300 Subject: [PATCH 214/253] Update diffychat_2_dastansam.md --- evaluations/diffychat_2_dastansam.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/evaluations/diffychat_2_dastansam.md b/evaluations/diffychat_2_dastansam.md index a7640154b..1215dcc39 100644 --- a/evaluations/diffychat_2_dastansam.md +++ b/evaluations/diffychat_2_dastansam.md @@ -25,6 +25,8 @@ I also though you would use `Polkadot.js` wallet when you mentioned that `web me ## Logs and screenshots +Hanging screenshot +
    Tests @@ -42,4 +44,4 @@ test tests::answer_chat_with_static_values ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s ``` -
    \ No newline at end of file + From 0d09ee46dd9423de380a667226f283408f03f76e Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Fri, 7 Jul 2023 20:46:19 +0300 Subject: [PATCH 215/253] Update diffychat_2_dastansam.md --- evaluations/diffychat_2_dastansam.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluations/diffychat_2_dastansam.md b/evaluations/diffychat_2_dastansam.md index 1215dcc39..ff45063d2 100644 --- a/evaluations/diffychat_2_dastansam.md +++ b/evaluations/diffychat_2_dastansam.md @@ -19,9 +19,9 @@ ## General Notes -Contact list feature works both locally and on production. However, main web messenger has different behaviour. I followed the tutorial [video](https://media.belsoft.rs/diffychat/diffychat.mp4) that was provided but chat windows just hang and lag for me. I attached screenshot of the failure. +Contact list feature works both locally and on production. However, main web messenger has different behaviour than expected. I followed the tutorial [video](https://media.belsoft.rs/diffychat/diffychat.mp4) that was provided but chat windows just hang and lag for me. I attached screenshot of the failure. -I also though you would use `Polkadot.js` wallet when you mentioned that `web messenger will use Polkadot.js`, but it seems that you are using `polkadot.js` library. It seemed strange to me that user inserts their `mnemonic` phrase into the form and not use their wallet directly. I think it would be nice if you could provide some context on that. +I also thought you would use `Polkadot.js` wallet when you mentioned that `web messenger will use Polkadot.js for authorization`, but it seems that you are using `polkadot.js` library. It seemed strange to me that user inserts their `mnemonic` phrase into the form and not use their wallet directly. I think it would be nice if you could provide some context on that. ## Logs and screenshots From 7bc4b50f2a4a0628f41a3a6801d032fb5d0c5395 Mon Sep 17 00:00:00 2001 From: dastansam Date: Sun, 9 Jul 2023 02:47:37 +0600 Subject: [PATCH 216/253] Add evaluation --- evaluations/ScoutCoinFabrik_2_dastansam.md | 193 +++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 evaluations/ScoutCoinFabrik_2_dastansam.md diff --git a/evaluations/ScoutCoinFabrik_2_dastansam.md b/evaluations/ScoutCoinFabrik_2_dastansam.md new file mode 100644 index 000000000..b675bffb8 --- /dev/null +++ b/evaluations/ScoutCoinFabrik_2_dastansam.md @@ -0,0 +1,193 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** [Application](https://github.com/w3f/Grants-Program/pull/1666) +- **Milestone:** 2 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ScoutCoinFabrik_1_keeganquigley.md) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------ | ----------- | ---- | ----- | +| 0a. | License | https://github.com/CoinFabrik/scout/blob/web3-v2/LICENSE | Correct license | +| 0b. | Documentation | https://coinfabrik.github.io/scout/docs/intro | Extensive documentation | +| 0c. | Testing | https://github.com/CoinFabrik/scout/tree/web3-v2/apps/cargo-scout-audit/tests | Test cases are passing, but only after I fixed a small typo. Details below. | +| 0d. | Docker | - | Does not apply at this stage. | +| 0e. | Article | https://blog.coinfabrik.com/bigger-better-and-faster-vulnerability-detection-in-ink | Article is posted, explains well what the project does and why there is a need for it. | +| 1.a | Research and Development | https://coinfabrik.github.io/scout/docs/vulnerabilities | More vulnerability examples are provided, as per the application milestone delivery checklist. | +| 1.b | Research and Development | https://github.com/CoinFabrik/scout/tree/web3-v2/test-cases | `integer-overflow-underflow` and `unused-return-enum` example vulnerabilities are added to the test cases and documentation. | +| 2.a | Development | https://github.com/CoinFabrik/scout/tree/web3-v2 | More detectors are added, tool is improved from the previous milestone. | +| 2.b | Development | https://github.com/CoinFabrik/scout/tree/web3-v2/apps/cargo-scout-audit | CLI tool is deployed and works as expected. Integration tests are run using this CLI tool. Logs attached below. | +| 2.c | Development | https://marketplace.visualstudio.com/items?itemName=CoinFabrik.scout-audit | VSCode extension is deployed and can be installed. However, using it wasn't possible for me, maybe due to the `rust-analyzer` issue described below? | +| 3 | Evaluation | https://github.com/CoinFabrik/scout/blob/web3-v2/assets/false-positives-report.md | Prototype validation was performed and evaluation report is provided. | + + +## General Notes + +In general, I think the project is well documented and the code is well written. I tried to run the integration tests, but I had to fix a small typo in the code for it to pass. I think the tool is already very helpful, but there are a few things that can be improved. + +### `rust-analyzer` error + +As far as I understand, `rust-analyzer` is an integral part of `scout-audit`, however, when I open the `scout` repository, `rust-analyzer` extension fails to load with this log: + +```log +rust-analyzer failed to load workspace: Failed to read Cargo metadata from Cargo.toml file ~/scout/detectors/Cargo.toml, cargo 1.67.0 (8ecd4f20a 2023-01-10): Failed to run `"cargo" "metadata" "--format-version" "1" "--manifest-path" "~/scout/detectors/Cargo.toml" "--filter-platform" "aarch64-apple-darwin"`: `cargo metadata` exited with an error: error: manifest path `~/scout/detectors/Cargo.toml` does not exist +``` + +### Typos in integration tests + +In the `integration_test.rs` file, there are two typos that prevent the tests from passing. First one is in [line 32](https://github.com/CoinFabrik/scout/blob/3dcde6d88ddbb551e4a11c64842c0beae09a968a/apps/cargo-scout-audit/tests/integration_test.rs#L32-L33), second one is in [line 124](https://github.com/CoinFabrik/scout/blob/3dcde6d88ddbb551e4a11c64842c0beae09a968a/apps/cargo-scout-audit/tests/integration_test.rs#L124). In both of them, `scout` should be renamed to `scout-audit`, since this is the name of the CLI tool. + +### `unused-return-enum` + +In the documentation of the [`unused-return-enum`](https://coinfabrik.github.io/scout/docs/detectors/unused-return-enum) vulnerability, the following pieces of code are provided as `example` and `remediated` vulnerable code, respectively: + +```rust +// --- snip --- +// vulnerable code +let sum = value1 + value2; +let percentage_difference = match 100u128.checked_mul(absolute_difference / sum) { + Some(result) => result, + None => Err(TradingPairErrors::Overflow), +} +// --- snip --- +// remediation +let sum = value1 + value2; +let percentage_difference = match 100u128.checked_mul(absolute_difference / sum) { + Some(result) => Ok(result), + None => panic!("overflow!"), +}; + +return Err(TradingPairErrors::Overflow); +// --- snip --- +``` +I think this directly contradicts to [`panic-error`](https://coinfabrik.github.io/scout/docs/detectors/panic-error) and [`arithmetic-overflow-underflow`](https://coinfabrik.github.io/scout/docs/detectors/integer-overflow-or-underflow) vulnerabilities, since usage of `panic!` and unsafe arithmetic operations should be discouraged in any production environment. I think the remediation should be something like this: + +```rust +// --- snip --- +let sum = value1.checked_add(value2).ok_or(TradingPairErrors::Overflow)?; +let coeff = absolute_difference.checked_div(sum).ok_or(TradingPairErrors::DivisionByZero)?; +let percentage_difference = 100_u128.checked_mul().ok_or(TradingPairErrors::Overflow)?; +Ok(result) +``` + +## Logs + +
    + +Run on custom pseudo code + +```rust +let test = 2 + 2; +let stuff = { + if test == 3 { + Some(1) + } else { + None + } +}; + +let unsafe_unwrap = stuff.unwrap(); +let unsafe_expect = stuff.expect("stuff is none"); + +self.env().terminate_contract(self.env().caller()); +``` + +Result: + +```log +warning: Unsafe usage of `expect` + --> lib.rs:33:33 + | +33 | let unsafe_expect = stuff.expect("stuff is none"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: Please, use a custom error instead of `expect` + = note: `#[warn(unsafe_expect)]` on by default + +warning: Unsafe usage of `unwrap` + --> lib.rs:32:33 + | +32 | let unsafe_unwrap = stuff.unwrap(); + | ^^^^^^^^^^^^^^ + | + = help: Please, use a custom error instead of `unwrap` + = note: `#[warn(unsafe_unwrap)]` on by default + +warning: Potential for integer arithmetic overflow/underflow in operation '+'. Consider checked, wrapping or saturating arithmetic. + --> lib.rs:23:24 + | +23 | let test = 2 + 2; + | ^^^^^ + | + = note: `#[warn(integer_overflow_underflow)]` on by default +``` +
    + + +
    + +Integration tests + +This is also a bit slow, is there any specific reason for that? + +```log +Running detector: dos-unbounded-operation +Running example: ../../test-cases/dos-unbounded-operation/dos-unbounded-operation-1/vulnerable-example/Cargo.toml - Elapsed time: 40.562 secs. +Running example: ../../test-cases/dos-unbounded-operation/dos-unbounded-operation-1/remediated-example/Cargo.tomltest test has been running for over 60 seconds + - Elapsed time: 39.727 secs. + +Running detector: unsafe-expect +Running example: ../../test-cases/unsafe-expect/unsafe-expect-1/vulnerable-example/Cargo.toml - Elapsed time: 38.375 secs. +Running example: ../../test-cases/unsafe-expect/unsafe-expect-1/remediated-example/Cargo.toml - Elapsed time: 38.742 secs. + +Running detector: panic-error +Running example: ../../test-cases/panic-error/panic-error-1/vulnerable-example/Cargo.toml - Elapsed time: 38.372 secs. +Running example: ../../test-cases/panic-error/panic-error-1/remediated-example/Cargo.toml - Elapsed time: 38.342 secs. + +Running detector: integer-overflow-or-underflow +Running example: ../../test-cases/integer-overflow-or-underflow/integer-overflow-or-underflow-1/vulnerable-example/Cargo.toml - Elapsed time: 38.514 secs. +Running example: ../../test-cases/integer-overflow-or-underflow/integer-overflow-or-underflow-1/remediated-example/Cargo.toml - Elapsed time: 39.103 secs. + +Running detector: dos-unexpected-revert-with-vector +Running example: ../../test-cases/dos-unexpected-revert-with-vector/dos-unexpected-revert-with-vector-1/vulnerable-example/Cargo.toml - Elapsed time: 39.92 secs. +Running example: ../../test-cases/dos-unexpected-revert-with-vector/dos-unexpected-revert-with-vector-1/remediated-example/Cargo.toml - Elapsed time: 39.965 secs. + +Running detector: divide-before-multiply +Running example: ../../test-cases/divide-before-multiply/divide-before-multiply-1/vulnerable-example/Cargo.toml - Elapsed time: 38.366 secs. +Running example: ../../test-cases/divide-before-multiply/divide-before-multiply-1/remediated-example/Cargo.toml - Elapsed time: 39.306 secs. + +Running detector: zero-or-test-address +Running example: ../../test-cases/zero-or-test-address/zero-or-test-address-1/vulnerable-example/Cargo.toml - Elapsed time: 39.709 secs. +Running example: ../../test-cases/zero-or-test-address/zero-or-test-address-1/remediated-example/Cargo.toml - Elapsed time: 38.618 secs. + +Running detector: reentrancy +Running example: ../../test-cases/reentrancy/reentrancy-1/vulnerable-example/vault/Cargo.toml - Elapsed time: 38.8 secs. +Running example: ../../test-cases/reentrancy/reentrancy-1/remediated-example/vault/Cargo.toml - Elapsed time: 38.883 secs. +Running example: ../../test-cases/reentrancy/reentrancy-2/vulnerable-example/vault/Cargo.toml - Elapsed time: 40.892 secs. +Running example: ../../test-cases/reentrancy/reentrancy-2/remediated-example/vault/Cargo.toml - Elapsed time: 4.492 secs. + +Running detector: unsafe-unwrap +Running example: ../../test-cases/unsafe-unwrap/unsafe-unwrap-1/vulnerable-example/Cargo.toml - Elapsed time: 38.258 secs. +Running example: ../../test-cases/unsafe-unwrap/unsafe-unwrap-1/remediated-example/Cargo.toml - Elapsed time: 40.645 secs. + +Running detector: set-contract-storage +Running example: ../../test-cases/set-contract-storage/set-contract-storage-1/vulnerable-example/Cargo.toml - Elapsed time: 41.287 secs. +Running example: ../../test-cases/set-contract-storage/set-contract-storage-1/remediated-example/Cargo.toml - Elapsed time: 39.901 secs. + +Running detector: delegate-call +Running example: ../../test-cases/delegate-call/delegate-call-1/vulnerable-example/Cargo.toml - Elapsed time: 38.415 secs. +Running example: ../../test-cases/delegate-call/delegate-call-1/remediated-example/Cargo.toml - Elapsed time: 39.308 secs. + +Running detector: unused-return-enum +Running example: ../../test-cases/unused-return-enum/unused-return-enum-1/vulnerable-example/Cargo.toml - Elapsed time: 40.63 secs. +Running example: ../../test-cases/unused-return-enum/unused-return-enum-1/remediated-example/Cargo.toml - Elapsed time: 40.311 secs. +Running example: ../../test-cases/unused-return-enum/unused-return-enum-2/vulnerable-example/Cargo.toml - Elapsed time: 43.796 secs. +Running example: ../../test-cases/unused-return-enum/unused-return-enum-2/remediated-example/Cargo.toml - Elapsed time: 37.999 secs. +test test ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1071.30s +``` + +
    \ No newline at end of file From 3945e1915fd07e742e5e70e996ac2ed923fc947b Mon Sep 17 00:00:00 2001 From: dastansam Date: Sun, 9 Jul 2023 02:55:44 +0600 Subject: [PATCH 217/253] Update code --- evaluations/ScoutCoinFabrik_2_dastansam.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/evaluations/ScoutCoinFabrik_2_dastansam.md b/evaluations/ScoutCoinFabrik_2_dastansam.md index b675bffb8..588f2c49e 100644 --- a/evaluations/ScoutCoinFabrik_2_dastansam.md +++ b/evaluations/ScoutCoinFabrik_2_dastansam.md @@ -35,6 +35,8 @@ As far as I understand, `rust-analyzer` is an integral part of `scout-audit`, ho rust-analyzer failed to load workspace: Failed to read Cargo metadata from Cargo.toml file ~/scout/detectors/Cargo.toml, cargo 1.67.0 (8ecd4f20a 2023-01-10): Failed to run `"cargo" "metadata" "--format-version" "1" "--manifest-path" "~/scout/detectors/Cargo.toml" "--filter-platform" "aarch64-apple-darwin"`: `cargo metadata` exited with an error: error: manifest path `~/scout/detectors/Cargo.toml` does not exist ``` +I wanted to see how the extension behaves when opening vulnerable code examples in `test-cases`, but it wasn't possible. I think this might be the reason why. + ### Typos in integration tests In the `integration_test.rs` file, there are two typos that prevent the tests from passing. First one is in [line 32](https://github.com/CoinFabrik/scout/blob/3dcde6d88ddbb551e4a11c64842c0beae09a968a/apps/cargo-scout-audit/tests/integration_test.rs#L32-L33), second one is in [line 124](https://github.com/CoinFabrik/scout/blob/3dcde6d88ddbb551e4a11c64842c0beae09a968a/apps/cargo-scout-audit/tests/integration_test.rs#L124). In both of them, `scout` should be renamed to `scout-audit`, since this is the name of the CLI tool. @@ -69,7 +71,8 @@ I think this directly contradicts to [`panic-error`](https://coinfabrik.github.i let sum = value1.checked_add(value2).ok_or(TradingPairErrors::Overflow)?; let coeff = absolute_difference.checked_div(sum).ok_or(TradingPairErrors::DivisionByZero)?; let percentage_difference = 100_u128.checked_mul().ok_or(TradingPairErrors::Overflow)?; -Ok(result) + +Ok(percentage_difference) ``` ## Logs From 77727ce7fd2719e332a939575742458e715d9b40 Mon Sep 17 00:00:00 2001 From: salaheldinsoliman Date: Sun, 9 Jul 2023 02:49:19 +0300 Subject: [PATCH 218/253] add solang milestone 2 Signed-off-by: salaheldinsoliman --- ...ang-developer-experience-improvements-2.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 deliveries/Solang-developer-experience-improvements-2.md diff --git a/deliveries/Solang-developer-experience-improvements-2.md b/deliveries/Solang-developer-experience-improvements-2.md new file mode 100644 index 000000000..c27e9be70 --- /dev/null +++ b/deliveries/Solang-developer-experience-improvements-2.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/Solang_developer_experience_improvements.md +* **Milestone Number:** 2 + +**Context** +This milestone improves Solidity development experience on Substrate based chains, by providing a way to read compiler configurations from a `solang.toml` file, as well as providing a command `solang new` responsible for creating a solang project directory with an example contract as well as an example configuration file. + + +**Deliverables** + + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/hyperledger/solang/blob/main/LICENSE | Apache-2.0 | +| 0b. | Documentation | https://solang.readthedocs.io/en/latest/running.html#compiler-usage https://solang.readthedocs.io/en/latest/running.html#starting-a-new-project| In Solang's documentation, one can find the flags `contract-authors`, `version` and `config-file`. `solang new` can be found at the second link.| +| 0c. | Testing |https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs https://github.com/hyperledger/solang/blob/main/tests/cli.rs| The provided tests cover the newly added functionalities: `solang new` as well as unit tests for reading the configurations from `solang.toml` | +| **0d.** | Docker | There will be no independent DockerFiler for this milestone, because Solang has its own DockerFile, which can be used to test the mentioned functionalities.| +| 0e. | Article |https://forum.polkadot.network/t/introducing-solang-improvements/3361 | +| 1. | Implement [Solang projects](https://github.com/hyperledger/solang/milestone/6) | https://github.com/hyperledger/solang/pull/1316 https://github.com/hyperledger/solang/pull/1347 https://github.com/hyperledger/solang/pull/1392 | Regarding the substrate target configuration, I added a comment on the milestone describing why it should be left as is. I took a week of researching this issue, then spoke with the maintainers and agreed that this was the best option for the users. | + + +**Repositories** +(Apache-2.0) +| Component | Repo | Language | +| -----: | ----------- | ------- | +| All components | https://github.com/hyperledger/solang | Rust/Solidity | \ No newline at end of file From 3b2b5ffd212d39e1468e44563dd86b308ce12990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Mon, 10 Jul 2023 12:32:23 +0200 Subject: [PATCH 219/253] Tokenomics Survey M2 in progress --- .../tokenomics-survey-2022_2_semuelle.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 evaluations/tokenomics-survey-2022_2_semuelle.md diff --git a/evaluations/tokenomics-survey-2022_2_semuelle.md b/evaluations/tokenomics-survey-2022_2_semuelle.md new file mode 100755 index 000000000..0d1efa5ff --- /dev/null +++ b/evaluations/tokenomics-survey-2022_2_semuelle.md @@ -0,0 +1,24 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/tokenomics-survey-2022.md +- **Milestone:** 2 +- **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) +- **Previously successfully merged evaluation:** All by semuelle + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | Copyright and Licenses |
    • [x]
    | [taqtiqa-mark/tokenomics-survey-2022](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/LICENSE) | Creative Commons Attribution 4.0 International License (article) (no code) | +| **0b.** | Documentation/Tutorial |
    • [x]
    | [README](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/README.md) | — | +| **0c.** | Methodology |
    • [x]
    | [main.tex](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/main.tex#L675) | — | +| **0d.** | Infrastructure |
    • [x]
    | [README](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/README.md#build-pdf) | No infrastructure/setup instructions due to using Overleaf | +| **0e.1** | Article |
    • [x]
    | [milestones/milestone_2.pdf](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/milestones/milestone_2.pdf) | — | +| **0e.2** | - Section: Published models |
    • [x]
    | [annotated_bibliography.bib](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/annotated_bibliography.bib) | — | +| **0e.3** | - Section: Polkadot Parachain Economies |
    • [x]
    | [main.tex](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a3444a73122d3d1bf25fe3cd5c8ababa64/main.tex#L278) | Summaries in the form of one flowchart per section | + + +## General Notes + +### Jul 10 2023 + +Asked for minor clarifications in the text. Article is still very much in draft shape. Summary and conclusions are scheduled for M3. From 9337267d4e0cd724ff1f163579f035556b596e87 Mon Sep 17 00:00:00 2001 From: BelSoft Dev DOO <126072104+beoblock@users.noreply.github.com> Date: Mon, 10 Jul 2023 16:45:39 +0200 Subject: [PATCH 220/253] Update Diffy_messenger_st1_ms2.md --- deliveries/Diffy_messenger_st1_ms2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deliveries/Diffy_messenger_st1_ms2.md b/deliveries/Diffy_messenger_st1_ms2.md index 21293ad04..a18719f45 100644 --- a/deliveries/Diffy_messenger_st1_ms2.md +++ b/deliveries/Diffy_messenger_st1_ms2.md @@ -28,4 +28,4 @@ In this milestone our team has executed the following deliverables A short video showing delivered functionality: -[![Preview](https://github.com/beoblock/Grant-Milestone-Delivery/assets/126072104/7fee3eb1-b81e-4ce2-ac20-1ffd6b04216a)](https://media.belsoft.rs/diffychat/diffychat.mp4) +[![Preview](https://github-production-user-asset-6210df.s3.amazonaws.com/126072104/251771167-7fee3eb1-b81e-4ce2-ac20-1ffd6b04216a.png)](https://media.belsoft.rs/diffychat/diffychat.mp4) From 303741e0a3e761a5f701652d237db99797e5a2fc Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 10 Jul 2023 12:00:56 -0300 Subject: [PATCH 221/253] Update saas3_2_dsm-w3f.md --- evaluations/saas3_2_dsm-w3f.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/evaluations/saas3_2_dsm-w3f.md b/evaluations/saas3_2_dsm-w3f.md index 16ef475ac..83d66b163 100644 --- a/evaluations/saas3_2_dsm-w3f.md +++ b/evaluations/saas3_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/SaaS3.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -8,20 +8,24 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | -| 0a. | License |
    • [ ]
    | Apache 2.0 | License file is missing in the root of the repository -| 0b. | Documentation |
    • [ ]
    |https://github.com/SaaS3-Foundation/saas3-dao| Not fully evaluated yet | -| 0c. | Testing Guide |
    • [ ]
    |https://github.com/SaaS3-Foundation/saas3-dao| Need a manual testing guide | -| 0d. | Docker |
    • [ ]
    | We are not able to provide a Dockerfile | Would be easier to setup with a zombienet | -| oe. | Article/Tutorial |
    • [ ]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/Tutorial.md | Not fully evaluated yet | -| 1. | pallet-court |
    • [ ]
    | https://github.com/SaaS3-Foundation/saas3-dao/tree/main/pallets/court |Not fully evaluated yet | -| | Functions |
    • [ ]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L233
    https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L262
    https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L286| Not fully evaluated yet | +| 0a. | License |
    • [x]
    | Apache 2.0 | +| 0b. | Documentation |
    • [x]
    |https://github.com/SaaS3-Foundation/saas3-dao| | +| 0c. | Testing Guide |
    • [x]
    |https://github.com/SaaS3-Foundation/saas3-dao| | +| 0d. | Docker |
    • [x]
    | We are not able to provide a Dockerfile | I was able to test it locally without docker | +| oe. | Article/Tutorial |
    • [x]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/Tutorial.md | | +| 1. | pallet-court |
    • [x]
    | https://github.com/SaaS3-Foundation/saas3-dao/tree/main/pallets/court | | +| | Functions |
    • [x]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L233
    https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L262
    https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L286| | | | Structs | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL68C1-L79C2 | | | | Storage | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#LL115C2-L121C4 | | | | Events | |https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/court/src/lib.rs#L160 | -| 2. | pallet-treasury |
    • [ ]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/pallets/treasury/src/lib.rs| Not fully evaluated yet | +| 2. | pallet-treasury |
    • [x]
    | https://github.com/SaaS3-Foundation/saas3-dao/blob/main/pallets/treasury/src/lib.rs| | | | Storage | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L117 | | | Events | | https://github.com/SaaS3-Foundation/saas3-dao/blob/ce2447ab1d54b2723f9ab72d8aabe5d65fff34d5/pallets/treasury/src/lib.rs#L169| | -| 3. | UI & Frontend |
    • [ ]
    | https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| Not fully evaluated yet | +| 3. | UI & Frontend |
    • [x]
    | https://github.com/SaaS3-Foundation/SaaS3-DAO-Pallets| | + +## Evaluation V6 + +The licenses were added and now the tests are passing. As declared [here](https://github.com/w3f/Grant-Milestone-Delivery/pull/872#issuecomment-1616628303), the `removeSue` is out of the scope of the grant. ## Evaluation V5 From 9e3ab3a28aaa09d4ec4e86e52d557c3ae1566ba5 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:21:10 -0300 Subject: [PATCH 222/253] Update ismp_2_dsm-w3f.md --- evaluations/ismp_2_dsm-w3f.md | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/evaluations/ismp_2_dsm-w3f.md b/evaluations/ismp_2_dsm-w3f.md index a55dfd82a..38be40e71 100644 --- a/evaluations/ismp_2_dsm-w3f.md +++ b/evaluations/ismp_2_dsm-w3f.md @@ -21,6 +21,73 @@ | 1e. | Runtime-APIs |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| Not fully evaluated yet | | 1f. | Bechmarks |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| Not fully evaluated yet | +## Evaluation V4 + +### Test + +To configure the system, I ran the polkadot-lauch, after that, I ran the docker provided. I was able to use the ismpDemo pallet to transfer some balance from Parachain 2001 to 2000 and request the timestamp. The docker registered these actions in the log. + +I also tried, without success, to run the tests from tesserac inside the docker container, using the tesserac-blake2b and the tesserac-main. + +Using `docker exec -it container_id /bin/bash` and running the tests: +``` += note: ld: error: duplicate symbol: memory32_grow + >>> defined at wasmtime_runtime.f727c6301590d743-cgu.12 + >>> wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.f727c6301590d743-cgu.12.rcgu.o:(memory32_grow) in archive /builds/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib + >>> defined at wasmtime_runtime.cbb1d63ff2563d91-cgu.3 + >>> wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.cbb1d63ff2563d91-cgu.3.rcgu.o:(.text+0x0) in archive /builds/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib + + ld: error: duplicate symbol: table_copy + >>> defined at wasmtime_runtime.f727c6301590d743-cgu.12 + >>> wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.f727c6301590d743-cgu.12.rcgu.o:(table_copy) in archive /builds/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib + >>> defined at wasmtime_runtime.cbb1d63ff2563d91-cgu.3 + >>> wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.cbb1d63ff2563d91-cgu.3.rcgu.o:(.text+0x20) in archive /builds/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib + . + . + . + ld: error: duplicate symbol: externref_global_set + >>> defined at wasmtime_runtime.f727c6301590d743-cgu.12 + >>> wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.f727c6301590d743-cgu.12.rcgu.o:(externref_global_set) in archive /builds/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib + >>> defined at wasmtime_runtime.cbb1d63ff2563d91-cgu.3 + >>> wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.cbb1d63ff2563d91-cgu.3.rcgu.o:(.text+0x220) in archive /builds/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib + + ld: error: duplicate symbol: memory_atomic_notify + >>> defined at wasmtime_runtime.f727c6301590d743-cgu.12 + >>> wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.f727c6301590d743-cgu.12.rcgu.o:(memory_atomic_notify) in archive /builds/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib + >>> defined at wasmtime_runtime.cbb1d63ff2563d91-cgu.3 + >>> wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.cbb1d63ff2563d91-cgu.3.rcgu.o:(.text+0x240) in archive /builds/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib + + ld: error: duplicate symbol: memory_atomic_wait32 + >>> defined at wasmtime_runtime.f727c6301590d743-cgu.12 + >>> wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.f727c6301590d743-cgu.12.rcgu.o:(memory_atomic_wait32) in archive /builds/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib + >>> defined at wasmtime_runtime.cbb1d63ff2563d91-cgu.3 + >>> wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.cbb1d63ff2563d91-cgu.3.rcgu.o:(.text+0x260) in archive /builds/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib + + ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) + clang: error: linker command failed with exit code 1 (use -v to see invocation) + + +error: could not compile `tesseract-integration-tests` (lib test) due to previous error +``` + +Running the test in tesseract-main and tesseract-blake2b: +``` + . + . + . + /usr/bin/ld: /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib(wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.ad68ba448d2d484b-cgu.4.rcgu.o): in function `out_of_gas': + wasmtime_runtime.ad68ba448d2d484b-cgu.4:(.text+0x2a0): multiple definition of `out_of_gas'; /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib(wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.782be41ea348b988-cgu.15.rcgu.o):wasmtime_runtime.782be41ea348b988-cgu.15:(.text+0x2a0): first defined here + /usr/bin/ld: /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib(wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.ad68ba448d2d484b-cgu.4.rcgu.o): in function `new_epoch': + wasmtime_runtime.ad68ba448d2d484b-cgu.4:(.text+0x2c0): multiple definition of `new_epoch'; /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib(wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.782be41ea348b988-cgu.15.rcgu.o):wasmtime_runtime.782be41ea348b988-cgu.15:(.text+0x2c0): first defined here + /usr/bin/ld: /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib(wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.ad68ba448d2d484b-cgu.7.rcgu.o): in function `wasm_to_host_trampoline': + wasmtime_runtime.ad68ba448d2d484b-cgu.7:(.text+0x0): multiple definition of `wasm_to_host_trampoline'; /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib(wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.782be41ea348b988-cgu.3.rcgu.o):wasmtime_runtime.782be41ea348b988-cgu.3:(.text+0x0): first defined here + /usr/bin/ld: /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-02e91c626dd0510d.rlib(wasmtime_runtime-02e91c626dd0510d.wasmtime_runtime.ad68ba448d2d484b-cgu.7.rcgu.o): in function `host_to_wasm_trampoline': + wasmtime_runtime.ad68ba448d2d484b-cgu.7:(.text+0x20): multiple definition of `host_to_wasm_trampoline'; /home/user/Documents/ismp/tesseract-main/target/debug/deps/libwasmtime_runtime-2ecb720b7671101e.rlib(wasmtime_runtime-2ecb720b7671101e.wasmtime_runtime.782be41ea348b988-cgu.3.rcgu.o):wasmtime_runtime.782be41ea348b988-cgu.3:(.text+0x20): first defined here + collect2: error: ld returned 1 exit status + +error: could not compile `tesseract-integration-tests` (lib test) due to previous error +``` + ## Evaluation V3 While running [these instructions for integration test](https://github.com/polytope-labs/tesseract/tree/blake2b#integration-test-guide) (private repo) I had some problems: From 95ed288a8ecd583cd9f437fd73bcb877ded47c5b Mon Sep 17 00:00:00 2001 From: Jose Ramirez Date: Mon, 10 Jul 2023 15:56:12 -0400 Subject: [PATCH 223/253] Kuma Wallet M3 --- deliveries/kuma-wallet_milestone_3.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deliveries/kuma-wallet_milestone_3.md diff --git a/deliveries/kuma-wallet_milestone_3.md b/deliveries/kuma-wallet_milestone_3.md new file mode 100644 index 000000000..33ff58ba5 --- /dev/null +++ b/deliveries/kuma-wallet_milestone_3.md @@ -0,0 +1,22 @@ +# 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/milestone-deliverables-guidelines.md).** + +* **Application Document:** [Kuma Wallet Grant](https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md) +* **Milestone Number:** 3 + +**Context** (optional) + +Kuma Wallet is the first of its kind, a cross-chain wallet that offers seamless management and transfer of assets between EVM and WASM chains. This wallet has been designed to make the experience of handling cross-chain assets as smooth and intuitive as possible. With Kuma Wallet, users can easily import and create accounts on both EVM and WASM chains and transfer their assets with ease, thanks to the integration of XCM. The sleek and user-friendly design of Kuma Wallet has been inspired by the highly successful Astar UI. We are committed to providing ongoing support to Kuma Wallet, including the establishment of Telegram and Discord channels, to ensure that users have a platform for feedback and to address any issues that may arise. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License | https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | +| 0b. | Documentation | https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | **english** and **spanish** versions of the documentation | +| 0c. | Testing Guide | https://github.com/blockcoders/kuma-wallet#running-locally | Unit test and end to end tests will cover the core functions to ensure everything works as expected | +| 1. | XCM/XVM standard for transfers | https://github.com/kumawallet/extension/blob/main/src/constants/xcm.ts | Implement the XCM/XVM standard to enable the transfer of assets between EVM and WASM accounts on different chains. | +| 2. | Call to custom smart contracts | https://github.com/kumawallet/extension/blob/main/src/pages/callContract/CallContract.tsx | Provide the ability to call custom smart contracts for both EVM and WASM accounts. | +| 3. | Transactions to custom smart contracts | https://github.com/kumawallet/extension/blob/main/src/providers/txProvider/TxProvider.tsx | Enable users to execute transactions on custom smart contracts for both EVM and WASM. | +| 4. | Open Beta | https://kumawallet.io/, https://chrome.google.com/webstore/detail/kuma-wallet/hbinmkhlebcnghpikoekkbeljbealbje, https://addons.mozilla.org/en-US/firefox/addon/kuma-wallet/, https://twitter.com/getkuma/status/1678075363165888513 | Create an open Beta of the wallet for Moonbeam and Astar users to test it (with both mainnets and testnets available). Telegram and Discord channels will be created for the beta that will be announced on Twitter. | \ No newline at end of file From 560ccc2e0f32840e152a9adcdb91106c369450d4 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Tue, 11 Jul 2023 00:04:08 +0300 Subject: [PATCH 224/253] Update subrelay_2_dastansam.md --- evaluations/subrelay_2_dastansam.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/subrelay_2_dastansam.md b/evaluations/subrelay_2_dastansam.md index 0fc014a15..c53c2beb3 100644 --- a/evaluations/subrelay_2_dastansam.md +++ b/evaluations/subrelay_2_dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [Subrelay](https://github.com/w3f/Grants-Program/pull/1252) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) From 5e70015e68fdf215623f78fc9b29cf67a5f2b07f Mon Sep 17 00:00:00 2001 From: dastansam Date: Tue, 11 Jul 2023 03:07:58 +0600 Subject: [PATCH 225/253] Add back missing file --- evaluations/ink_analyzer_3_dastansam.md | 533 ++++++++++++++++++++++++ 1 file changed, 533 insertions(+) create mode 100644 evaluations/ink_analyzer_3_dastansam.md diff --git a/evaluations/ink_analyzer_3_dastansam.md b/evaluations/ink_analyzer_3_dastansam.md new file mode 100644 index 000000000..06b1db0b8 --- /dev/null +++ b/evaluations/ink_analyzer_3_dastansam.md @@ -0,0 +1,533 @@ +- **Status:** Accepted +- **Application Document:** [ink! Analyzer](https://github.com/w3f/Grants-Program/blob/master/applications/ink-analyzer.md) +- **Milestone:** 3 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 2](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/ink_analyzer_2_dsm-w3f.md) + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|---------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **0a.** | License | [MIT](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-MIT) or [Apache 2.0](https://github.com/ink-analyzer/ink-analyzer/blob/master/LICENSE-APACHE). | Correct licenses | +| **0b.** | Documentation | [Project README](https://github.com/ink-analyzer/ink-analyzer#readme), [language server (ink-lsp-server) crate README](https://github.com/ink-analyzer/ink-analyzer/tree/master/crates/lsp-server#readme) on GitHub (and [crates.io](https://crates.io/crates/ink-lsp-server)), [language server (ink-lsp-server) crate rustdoc](https://docs.rs/ink-lsp-server/latest/ink_lsp_server/) library documentation on docs.rs and extensive inline source documentation. | Extensive documentation. | +| **0c.** | Testing and Testing Guide | [Testing guide](https://github.com/ink-analyzer/ink-analyzer#testing). | Extensive unit tests and integration are provided. All tests are passing by running it with both native Rust and Docker image. | +| **0d.** | Docker | [Dockerfile](https://github.com/ink-analyzer/ink-analyzer/blob/master/Dockerfile). | Dockerfile builds and all tests are passing. | +| 1. | Language Server: Rust binary crate: ink! Language Server Protocol implementation | [GitHub repository](https://github.com/ink-analyzer/ink-analyzer), [Language server crate (ink-lsp-server)](https://crates.io/crates/ink-lsp-server). | Very well-written code, every piece code is commented and code coverage is high. The only non-critical issue is some warnings that clippy produces (logs attached below) | + +## General Notes + +The project is well documented and the code is almost flawless. Can't wait to see it in action after VSCode integration in the next milestone! + +### Outputs + +
    + Clippy + +```bash +warning: variables can be used directly in the `format!` string + --> crates/test-utils/src/lib.rs:28:36 + | +28 | lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + = note: `#[warn(clippy::uninlined_format_args)]` on by default +help: change this to + | +28 - lsp_types::Url::from_file_path(format!("/test_data/{}.rs", location)).unwrap() +28 + lsp_types::Url::from_file_path(format!("/test_data/{location}.rs")).unwrap() + | + +warning: `test-utils` (lib) generated 1 warning + Checking ink-analyzer-ir v0.7.0 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/ir) + Checking ink-analyzer v0.6.1 (/Users/dastan@enjin.io/Documents/dastan/evaluations/ink-analyzer/crates/analyzer) +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/completions.rs:141:50 + | +141 | ... .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + = note: `#[warn(clippy::uninlined_format_args)]` on by default +help: change this to + | +141 - .retain(|macro_kind| format!("{}", macro_kind).starts_with(prefix)); +141 + .retain(|macro_kind| format!("{macro_kind}").starts_with(prefix)); + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/completions.rs:311:48 + | +311 | ... .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); + | ^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +311 - .retain(|arg_kind| format!("{}", arg_kind).starts_with(prefix)); +311 + .retain(|arg_kind| format!("{arg_kind}").starts_with(prefix)); + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:131:25 + | +131 | format!("Unknown ink! attribute argument: '{}'.", arg_name_text) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +131 - format!("Unknown ink! attribute argument: '{}'.", arg_name_text) +131 + format!("Unknown ink! attribute argument: '{arg_name_text}'.") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:148:42 + | +148 | ... message: format!("`{}` argument shouldn't have a value.", arg_name_text), + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +148 - message: format!("`{}` argument shouldn't have a value.", arg_name_text), +148 + message: format!("`{arg_name_text}` argument shouldn't have a value."), + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:220:42 + | +220 | ... message: format!( + | ________________________________^ +221 | | ... "`{}` argument should have a `boolean` (`bool`) value.", +222 | | ... arg_name_text +223 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:238:42 + | +238 | ... message: format!( + | ________________________________^ +239 | | ... "`{}` argument should have a `path` (e.g `my::env::Types`) value.", +240 | | ... arg_name_text +241 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:467:41 + | +467 | ... format!("`ink! {}`", arg_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +467 - format!("`ink! {}`", arg_kind) +467 + format!("`ink! {arg_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:470:41 + | +470 | ... format!("`ink! {}`", macro_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +470 - format!("`ink! {}`", macro_kind) +470 + format!("`ink! {macro_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:543:45 + | +543 | ... format!("argument `{}`", arg_kind,) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +543 - format!("argument `{}`", arg_kind,) +543 + format!("argument `{arg_kind}`",) + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/utils.rs:546:45 + | +546 | ... format!("macro `{}`", macro_kind) + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +help: change this to + | +546 - format!("macro `{}`", macro_kind) +546 + format!("macro `{macro_kind}`") + | + +warning: variables can be used directly in the `format!` string + --> crates/analyzer/src/analysis/diagnostics/event.rs:95:42 + | +95 | ... message: format!( + | ________________________________^ +96 | | ... "`{}` attributes on event fields are not supported.", +97 | | ... attr +98 | | ... ), + | |_______________________^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args +``` + +
    + +
    + + Unit and integration tests + +```bash +running 132 tests +test analysis::diagnostics::chain_extension::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::actions::tests::ast_item_actions_works ... ok +test analysis::diagnostics::chain_extension::tests::invalid_trait_properties_fails ... ok +test analysis::diagnostics::chain_extension::tests::missing_error_code_type_fails ... ok +test analysis::completions::tests::macro_completions_works ... ok +test analysis::diagnostics::chain_extension::tests::multiple_error_code_types_fails ... ok +test analysis::diagnostics::chain_extension::tests::overlapping_ids_fails ... ok +test analysis::completions::tests::argument_completions_works ... ok +test analysis::actions::tests::ink_attribute_actions_works ... ok +test analysis::diagnostics::chain_extension::tests::one_error_code_type_works ... ok +test analysis::diagnostics::constructor::tests::ink_descendants_fails ... ok +test analysis::diagnostics::constructor::tests::missing_return_type_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_trait_properties_works ... ok +test analysis::diagnostics::constructor::tests::invalid_callable_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::chain_extension::tests::invalid_trait_items_fails ... ok +test analysis::diagnostics::chain_extension::tests::non_overlapping_ids_works ... ok +test analysis::diagnostics::contract::tests::attribute_in_mod_body_fails ... ok +test analysis::diagnostics::constructor::tests::self_receiver_fails ... ok +test analysis::diagnostics::chain_extension::tests::valid_trait_items_works ... ok +test analysis::diagnostics::chain_extension::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::contract::tests::missing_constructor_fails ... ok +test analysis::diagnostics::contract::tests::missing_message_fails ... ok +test analysis::diagnostics::contract::tests::missing_storage_fails ... ok +test analysis::diagnostics::contract::tests::multiple_storage_items_fails ... ok +test analysis::diagnostics::contract::tests::multiple_wildcard_selectors_fails ... ok +test analysis::diagnostics::contract::tests::non_impl_parent_for_callables_fails ... ok +test analysis::diagnostics::contract::tests::non_mod_fails ... ok +test analysis::diagnostics::constructor::tests::valid_callable_works ... ok +test analysis::diagnostics::constructor::tests::no_self_receiver_works ... ok +test analysis::diagnostics::constructor::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::constructor::tests::return_type_works ... ok +test analysis::actions::tests::is_focused_on_ast_item_declaration_works ... ok +test analysis::diagnostics::contract::tests::out_of_line_mod_fails ... ok +test analysis::diagnostics::constructor::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::overlapping_selectors_fails ... ok +test analysis::diagnostics::contract::tests::root_items_not_in_root_fails ... ok +test analysis::diagnostics::contract::tests::one_or_multiple_constructors_works ... ok +test analysis::diagnostics::event::tests::cfg_field_fails ... ok +test analysis::diagnostics::contract::tests::impl_parent_for_callables_works ... ok +test analysis::diagnostics::event::tests::contract_parent_works ... ok +test analysis::diagnostics::event::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::event::tests::ink_topic_field_works ... ok +test analysis::diagnostics::event::tests::non_contract_parent_fails ... ok +test analysis::diagnostics::event::tests::non_cfg_field_works ... ok +test analysis::diagnostics::event::tests::non_pub_struct_fails ... ok +test analysis::diagnostics::event::tests::non_topic_ink_field_fails ... ok +test analysis::diagnostics::event::tests::struct_with_generics_fails ... ok +test analysis::diagnostics::event::tests::pub_struct_works ... ok +test analysis::diagnostics::event::tests::struct_with_no_generics_works ... ok +test analysis::diagnostics::extension::tests::ink_descendants_fails ... ok +test analysis::diagnostics::extension::tests::invalid_method_fails ... ok +test analysis::diagnostics::contract::tests::one_or_no_wildcard_selectors_works ... ok +test analysis::diagnostics::extension::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::extension::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::extension::tests::self_receiver_fails ... ok +test analysis::diagnostics::file::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::file::tests::multiple_contract_definitions_fails ... ok +test analysis::diagnostics::file::tests::no_contract_definitions_works ... ok +test analysis::diagnostics::file::tests::one_contract_definition_works ... ok +test analysis::diagnostics::file::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::extension::tests::no_self_receiver_works ... ok +test analysis::diagnostics::extension::tests::valid_method_works ... ok +test analysis::diagnostics::contract::tests::non_overlapping_selectors_works ... ok +test analysis::diagnostics::contract::tests::inline_mod_works ... ok +test analysis::diagnostics::contract::tests::one_or_multiple_messages_works ... ok +test analysis::diagnostics::ink_impl::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::ink_impl::tests::missing_annotation_and_no_callables_fails ... ok +test analysis::diagnostics::ink_impl::tests::invalid_impl_properties_fails ... ok +test analysis::diagnostics::ink_impl::tests::non_impl_fails ... ok +test analysis::diagnostics::ink_impl::tests::non_impl_parent_for_callables_fails ... ok +test analysis::diagnostics::contract::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::ink_test::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::ink_test::tests::fn_works ... ok +test analysis::diagnostics::ink_test::tests::ink_descendants_fails ... ok +test analysis::diagnostics::ink_test::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::ink_test::tests::non_fn_fails ... ok +test analysis::diagnostics::contract::tests::one_storage_item_works ... ok +test analysis::diagnostics::message::tests::ink_descendants_fails ... ok +test analysis::diagnostics::ink_impl::tests::annotated_or_contains_callables_works ... ok +test analysis::diagnostics::message::tests::invalid_callable_fails ... ok +test analysis::diagnostics::message::tests::non_self_ref_receiver_fails ... ok +test analysis::diagnostics::ink_impl::tests::impl_works ... ok +test analysis::diagnostics::ink_impl::tests::impl_parent_for_callables_works ... ok +test analysis::diagnostics::message::tests::self_return_type_fails ... ok +test analysis::diagnostics::ink_impl::tests::valid_impl_properties_works ... ok +test analysis::diagnostics::storage::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::storage::tests::contract_parent_works ... ok +test analysis::diagnostics::storage::tests::ink_descendants_fails ... ok +test analysis::diagnostics::storage::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::storage::tests::non_contract_parent_fails ... ok +test analysis::diagnostics::storage::tests::non_pub_struct_fails ... ok +test analysis::diagnostics::storage::tests::pub_struct_works ... ok +test analysis::diagnostics::storage_item::tests::adt_works ... ok +test analysis::diagnostics::storage_item::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::storage_item::tests::ink_descendants_fails ... ok +test analysis::diagnostics::storage_item::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::storage_item::tests::non_adt_fails ... ok +test analysis::diagnostics::topic::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::topic::tests::non_struct_field_fails ... ok +test analysis::diagnostics::topic::tests::struct_field_works ... ok +test analysis::diagnostics::ink_impl::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::trait_definition::tests::invalid_quasi_direct_descendant_fails ... ok +test analysis::diagnostics::trait_definition::tests::invalid_trait_items_fails ... ok +test analysis::diagnostics::trait_definition::tests::invalid_trait_properties_fails ... ok +test analysis::diagnostics::trait_definition::tests::missing_message_fails ... ok +test analysis::diagnostics::trait_definition::tests::multiple_messages_works ... ok +test analysis::diagnostics::trait_definition::tests::one_message_works ... ok +test analysis::diagnostics::message::tests::non_self_return_type_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_quasi_direct_descendant_works ... ok +test analysis::diagnostics::message::tests::valid_callable_works ... ok +test analysis::diagnostics::message::tests::self_ref_receiver_works ... ok +test analysis::diagnostics::trait_definition::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::utils::tests::duplicate_attributes_and_arguments_fails ... ok +test analysis::diagnostics::utils::tests::identifiers_not_prefixed_with_ink_works ... ok +test analysis::diagnostics::utils::tests::identifiers_prefixed_with_ink_fails ... ok +test analysis::diagnostics::utils::tests::conflicting_attributes_and_arguments_fails ... ok +test analysis::diagnostics::utils::tests::invalid_attribute_argument_format_and_value_type_fails ... ok +test analysis::diagnostics::utils::tests::known_ink_attributes_works ... ok +test analysis::diagnostics::utils::tests::unknown_ink_attributes_fails ... ok +test analysis::diagnostics::utils::tests::no_conflicting_attributes_and_arguments_works ... ok +test analysis::diagnostics::message::tests::no_ink_descendants_works ... ok +test analysis::diagnostics::utils::tests::no_duplicate_attributes_and_arguments_works ... ok +test analysis::diagnostics::utils::tests::valid_attribute_argument_format_and_value_type_works ... ok +test analysis::hover::tests::hover_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_trait_properties_works ... ok +test analysis::diagnostics::message::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::trait_definition::tests::valid_trait_items_works ... ok +test analysis::diagnostics::ink_impl::tests::compound_diagnostic_works ... ok +test analysis::diagnostics::contract::tests::root_items_in_root_works ... ok +test analysis::diagnostics::contract::tests::compound_diagnostic_works ... ok + +test result: ok. 132 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.54s + + Running tests/actions.rs (target/debug/deps/actions-9b69adca190e239e) + +running 1 test +test actions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s + + Running tests/completions.rs (target/debug/deps/completions-2fb385d575cb34b0) + +running 1 test +test completions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-35a69d5da649290e) + +running 1 test +test diagnostics_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.56s + + Running tests/hover.rs (target/debug/deps/hover-78b56127e91559bc) + +running 1 test +test hover_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_ir-8d6ce456156f44e8) + +running 36 tests +test attrs::meta::separator::tests::cast_works ... ok +test attrs::meta::name::tests::cast_works ... ok +test chain_extension::tests::cast_works ... ok +test event::tests::cast_works ... ok +test attrs::utils::tests::parse_ink_args_works ... ok +test attrs::meta::value::tests::cast_works ... ok +test attrs::utils::tests::sort_ink_args_works ... ok +test ink_test::tests::cast_works ... ok +test extension::tests::cast_works ... ok +test file::tests::parse_works ... ok +test constructor::tests::cast_works ... ok +test selector::tests::cast_arg_works ... ok +test storage::tests::cast_works ... ok +test attrs::tests::cast_ink_attribute_works ... ok +test topic::tests::cast_works ... ok +test storage_item::tests::cast_works ... ok +test trait_definition::tests::cast_works ... ok +test tree::ast_ext::tests::parent_ast_item_works ... ok +test message::tests::cast_works ... ok +test tree::item_at_offset::tests::probable_and_normalized_parent_variants_works ... ok +test tree::utils::tests::ink_args_works ... ok +test tree::utils::tests::ink_attrs_ancestors_works ... ok +test tree::utils::tests::ink_arg_by_kind_works ... ok +test ink_impl::tests::cast_works ... ok +test tree::utils::tests::ink_attrs_closest_ancestors_works ... ok +test tree::utils::tests::ink_attrs_closest_descendants_works ... ok +test tree::utils::tests::ink_attrs_in_scope_works ... ok +test tree::utils::tests::ink_attrs_descendants_works ... ok +test tree::item_at_offset::tests::prev_and_next_token_variants_works ... ok +test tree::item_at_offset::tests::focused_token_and_affixes_works ... ok +test tree::utils::tests::ink_attrs_works ... ok +test selector::tests::compose_works ... ok +test tree::item_at_offset::tests::parent_variants_works ... ok +test tree::utils::tests::ink_impl_closest_descendants_works ... ok +test tree::utils::tests::ink_callable_closest_descendants_works ... ok +test contract::tests::cast_works ... ok + +test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s + + Running unittests src/lib.rs (target/debug/deps/ink_analyzer_macro-fb4c468f082713c0) + +running 13 tests +test from_ink_attribute::tests::struct_without_ink_attr_field_fails ... ok +test from_syntax::tests::struct_with_none_of_expected_fields_fails ... ok +test from_ast::tests::struct_without_ast_field_fails ... ok +test utils::tests::contains_field_works ... ok +test utils::tests::find_attribute_by_path_works ... ok +test from_syntax::tests::struct_with_syntax_field_works ... ok +test from_syntax::tests::struct_with_ast_field_works ... ok +test utils::tests::find_field_works ... ok +test from_ast::tests::struct_with_ast_field_works ... ok +test utils::tests::parse_struct_fields_works ... ok +test from_syntax::tests::struct_with_ink_attr_field_works ... ok +test from_ink_attribute::tests::struct_with_ink_attr_field_works ... ok +test from_ink_attribute::tests::optional_fields_works ... ok + +test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/lib.rs (target/debug/deps/ink_lsp_server-24199617d9fb7881) + +running 17 tests +test dispatch::handlers::notification::tests::handle_did_change_text_document_works ... ok +test dispatch::handlers::notification::tests::handle_did_close_text_document_works ... ok +test dispatch::handlers::notification::tests::handle_did_open_text_document_works ... ok +test initialize::tests::server_capabilities_works ... ok +test memory::tests::memory_works ... ok +test initialize::tests::initialize_works ... ok +test dispatch::routers::notification::tests::request_router_works ... ok +test dispatch::routers::request::tests::request_router_works ... ok +test dispatch::handlers::request::tests::handle_completion_works ... ok +test translator::from_lsp::tests::offset_works ... ok +test translator::to_lsp::tests::position_works ... ok +test dispatch::actions::tests::publish_diagnostics_works ... ok +test dispatch::handlers::request::tests::handle_hover_works ... ok +test dispatch::handlers::request::tests::handle_code_action_works ... ok +test utils::tests::code_actions_kinds_works ... ok +test utils::tests::position_encoding_works ... ok +test dispatch::tests::main_loop_and_dispatcher_works ... ok + +test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + Running unittests src/main.rs (target/debug/deps/ink_lsp_server-9baae7124d812d8b) + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Running tests/actions.rs (target/debug/deps/actions-a68334fdf55e473c) + +running 1 test +test actions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.47s + + Running tests/completions.rs (target/debug/deps/completions-7a5efa8c88c2963e) + +running 1 test +test completions_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.81s + + Running tests/diagnostics.rs (target/debug/deps/diagnostics-76f62205e26b96d8) + +running 1 test +test diagnostics_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.55s + + Running tests/hover.rs (target/debug/deps/hover-ce02a6d2c267a066) + +running 1 test +test hover_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s + + Running unittests src/lib.rs (target/debug/deps/test_utils-fc1fbe74d610e4ef) + +running 1 test +test tests::offset_at_variants_works ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests ink-analyzer + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s + + Doc-tests ink-analyzer-ir + +running 1 test +test src/lib.rs - (line 7) ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s + + Doc-tests ink-analyzer-macro + +running 4 tests +test src/lib.rs - from_ink_attribute_derive (line 70) ... ok +test src/lib.rs - from_ast_derive (line 35) ... ok +test src/lib.rs - (line 6) ... ok +test src/lib.rs - from_syntax_derive (line 100) ... ok + +test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s + + Doc-tests ink-lsp-server + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + + Doc-tests test-utils + +running 0 tests + +test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` +
    + +
    + +Docker + +```bash +> docker build -t ink-analyzer . + + => exporting to image 0.0s + => => exporting layers 0.0s + => => writing image sha256:f64cf8672748a96a6258864e5f85fb6d27b0c0c131fd1ae6c601934028801c6a 0.0s + => => naming to docker.io/library/ink-analyzer +``` + +
    \ No newline at end of file From 7090fa18d8cbd1ae234838a89e7db492f8135f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 11 Jul 2023 11:13:57 +0200 Subject: [PATCH 226/253] Tokenomics survey 2022 M2 accepted --- evaluations/tokenomics-survey-2022_2_semuelle.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/evaluations/tokenomics-survey-2022_2_semuelle.md b/evaluations/tokenomics-survey-2022_2_semuelle.md index 0d1efa5ff..a7cc41a8e 100755 --- a/evaluations/tokenomics-survey-2022_2_semuelle.md +++ b/evaluations/tokenomics-survey-2022_2_semuelle.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/tokenomics-survey-2022.md - **Milestone:** 2 - **Kusama Identity:** [ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA](https://polkascan.io/pre/kusama/account/ESxS4A7GHMLzve4Mbc9t27RpXtVTnV3LtcMTtcnD26jcUHA) @@ -19,6 +19,10 @@ ## General Notes +### Jul 11 2023 + +All issues addressed in pull request comment and Overleaf project. + ### Jul 10 2023 Asked for minor clarifications in the text. Article is still very much in draft shape. Summary and conclusions are scheduled for M3. From 2ccef7d36835e62a1bbb265d4c65b619c6a9b6e5 Mon Sep 17 00:00:00 2001 From: Mark Van de Vyver Date: Tue, 11 Jul 2023 19:49:18 +1000 Subject: [PATCH 227/253] Token-economics Survey 2022: Milestone 2 (#903) --- .../tokeneconomics-survey-2022-milestone_2.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 deliveries/tokeneconomics-survey-2022-milestone_2.md diff --git a/deliveries/tokeneconomics-survey-2022-milestone_2.md b/deliveries/tokeneconomics-survey-2022-milestone_2.md new file mode 100644 index 000000000..aed76dfa8 --- /dev/null +++ b/deliveries/tokeneconomics-survey-2022-milestone_2.md @@ -0,0 +1,32 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) Pending setup of required corporate entities.** + +* **Application Document:** [Tokeneconomics Survey 2022](https://github.com/w3f/Grants-Program/blob/master/applications/tokenomics-survey-2022.md). + +* **Milestone Number:** 2 + +**Context** (optional) +This project uses Overleaf to simplify the setup. +Let me know if the reviewer prefers to be able to edit. + +Otherwise, [the Overleaf project can be viewed here](https://www.overleaf.com/read/wpwkmcztmytd). + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ------------- | +| **0a.** | Copyright and Licenses | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/LICENSE) | Creative Commons Attribution 4.0 International License (article), Dual Apache 2 or MIT License (code) | +| **0b.** | Documentation/Tutorial | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/README.md) | We will update both **artifacts documentation** of the deliverables and a basic **tutorial** that explains how a user can (for example) execute the code included or can visualize data or use any artifacts included. | +| **0c.** | Methodology | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/main.tex#L675) | Update the detailed explanation of how the results were achieved and how to reproduce/verify the results. | +| **0d.** | Infrastructure | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/README.md#build-pdf) | We will update the list of all infrastructure requirements (text editors with proper versions, software packages, data packages, etc) that can be used to verify the deliveries with this milestone. LaTeX for article production and Docker files for software execution. | +| **0e.** | Article | [Github (2cbf15a)](https://raw.githubusercontent.com/taqtiqa-mark/tokenomics-survey-2022/main/milestones/milestone_2.pdf) | We will send a **draft article** (with source code), in the English language. There will be an acknowledgement "This work was supported by a research grant from the Web3 Foundation. The analysis and opinions expressed are the authors and do not reflect the opinions of the Web3 Foundation."| +| **0e.1** | Article | [As above](https://raw.githubusercontent.com/taqtiqa-mark/tokenomics-survey-2022/main/milestones/milestone_2.pdf) | We will publish an **working paper** as indicated above. | +| **0e.2** | - Section: Published models | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/annotated_bibliography.bib) | Initial annotated bibliography | +| **0e.3** | - Section: Polkadot Parachain Economies | [Github (2cbf15a)](https://github.com/taqtiqa-mark/tokenomics-survey-2022/blob/2cbf15a/main.tex#L278) | Parachain summary updated with references to published models | + +**Additional Information** + +Setup is simplified considerably by using Overleaf. +I expect to be able to devote more time to this in the coming weeks. +Hence, I hope the final milestone will be completed within a month. From cb557a1f79a936cf75098cfce8995ecf34d083c3 Mon Sep 17 00:00:00 2001 From: Usama Ali Date: Tue, 11 Jul 2023 17:16:07 +0500 Subject: [PATCH 228/253] High Availability Validator setup Evaluation (#910) --- ...vailability-validator-setup_3_ali-usama.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 evaluations/high-availability-validator-setup_3_ali-usama.md diff --git a/evaluations/high-availability-validator-setup_3_ali-usama.md b/evaluations/high-availability-validator-setup_3_ali-usama.md new file mode 100644 index 000000000..1910162d2 --- /dev/null +++ b/evaluations/high-availability-validator-setup_3_ali-usama.md @@ -0,0 +1,94 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** [High Availability Validator Setup](https://github.com/w3f/Grants-Program/blob/master/applications/High_availability_validator_setup.md) +- **Milestone:** 3 +- **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs +- **Previously successfully merged evaluation:** All evaluations by ali-usama + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +|--------|---------------------------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| +| 0a. | Licence |
    • [x]
    | [Unlicense](https://github.com/bright/substrate-raft-setup/blob/milestone-3/LICENSE) | Correct Licence | +| 0b. | Documentation |
    • [x]
    | [Setup Docs](https://github.com/bright/substrate-raft-setup/blob/milestone-3/docs/rust-setup.md)
    [ReadMe](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md) | Well-structured doc files and inline documentation is well-explained too. | +| 0c. | Testing Guide |
    • [x]
    | `cargo test` | `cargo test` fails with the following output. | +| 0d. | Docker |
    • [x]
    | [Running locally](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-locally-1) | Builds and runs successfully. | +| 1. | Run necessary Raft services |
    • [x]
    | [Running docker-compose](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-docker-compose-1) | Working as per the application | +| 2. | Integrate Raft client into Node |
    • [x]
    | [Running docker-compose](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-docker-compose-1) | Working as per the application | +| 3. | Integration test |
    • [x]
    | `docker-compose up` | Builds and runs successfully. | + + +## General Notes + +The delivery is well-structured and well-documented, however, the only issue I found is tha failing `cargo test` command in the root directory of the terminal. I tried with updated and older rustc versions too, but both failed with the same error mentioned below. + +### `cargo test` output +``` +CMake Warning: + Manually-specified variables were not used by the project: + + CMAKE_ASM_COMPILER + CMAKE_ASM_FLAGS + + + gmake: warning: -j8 forced in submake: resetting jobserver mode. + /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.8.1/grpc/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc: In member function ‘void absl::lts_2020_09_23::synchronization_internal::GraphCycles::RemoveNode(void*)’: + /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.8.1/grpc/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc:451:26: error: ‘numeric_limits’ is not a member of ‘std’ + 451 | if (x->version == std::numeric_limits::max()) { + | ^~~~~~~~~~~~~~ + /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.8.1/grpc/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc:451:49: error: expected primary-expression before ‘>’ token + 451 | if (x->version == std::numeric_limits::max()) { + | ^ + /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.8.1/grpc/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc:451:52: error: ‘::max’ has not been declared; did you mean ‘std::max’? + 451 | if (x->version == std::numeric_limits::max()) { + | ^~~ + | std::max + In file included from /usr/include/c++/11/algorithm:62, + from /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.8.1/grpc/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc:38: + /usr/include/c++/11/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here + 3467 | max(initializer_list<_Tp> __l, _Compare __comp) + | ^~~ + gmake[3]: *** [third_party/abseil-cpp/absl/synchronization/CMakeFiles/absl_graphcycles_internal.dir/build.make:76: third_party/abseil-cpp/absl/synchronization/CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o] Error 1 + gmake[2]: *** [CMakeFiles/Makefile2:3153: third_party/abseil-cpp/absl/synchronization/CMakeFiles/absl_graphcycles_internal.dir/all] Error 2 + gmake[2]: *** Waiting for unfinished jobs.... + gmake[1]: *** [CMakeFiles/Makefile2:848: CMakeFiles/grpc.dir/rule] Error 2 + gmake: *** [Makefile:247: grpc] Error 2 + thread 'main' panicked at ' + command did not execute successfully, got: exit status: 2 + + build script failed, must exit now', /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cmake-0.1.48/src/lib.rs:975:5 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +``` + +### `bash docker/build.sh` output +``` +Building bright/substrate-raft-setup:latest docker image, hang on! +[+] Building 2676.3s (15/15) FINISHED + => [internal] load .dockerignore 0.0s + => => transferring context: 2B 0.0s + => [internal] load build definition from Dockerfile 0.0s + => => transferring dockerfile: 1.52kB 0.0s + => [internal] load metadata for docker.io/library/ubuntu:20.04 15.2s + => [internal] load metadata for docker.io/paritytech/ci-linux:1c0fde6a-20220811 16.0s + => [builder 1/4] FROM docker.io/paritytech/ci-linux:1c0fde6a-20220811@sha256:4e8c072ea12bc17d99cb531adb58dea5a4c7d4880a8a86525052d24d1454e89e 0.0s + => [stage-1 1/5] FROM docker.io/library/ubuntu:20.04@sha256:c9820a44b950956a790c354700c1166a7ec648bc0d215fa438d3a339812f1d01 0.0s + => [internal] load build context 168.8s + => => transferring context: 9.24GB 167.7s + => CACHED [builder 2/4] WORKDIR /node-template 0.0s + => [builder 3/4] COPY . . 35.0s + => [builder 4/4] RUN cargo build --locked --release 2454.9s + => CACHED [stage-1 2/5] RUN apt-get update 0.0s + => CACHED [stage-1 3/5] RUN apt-get install -y openssl 0.0s + => [stage-1 4/5] COPY --from=builder /node-template/target/release/node-template /usr/local/bin 0.2s + => [stage-1 5/5] RUN useradd -m -u 1000 -U -s /bin/sh -d /node-dev node-dev && mkdir -p /chain-data /node-dev/.local/share && chown -R node-dev:node-dev /chain-data && 0.4s + => exporting to image 0.4s + => => exporting layers 0.4s + => => writing image sha256:2e766c6e9b34a20c4f749762e5bbe9befda7ca6afa96f0ea05cf510448ab24ac 0.0s + => => naming to docker.io/bright/substrate-raft-setup:latest 0.0s + +real 44m37.150s +user 1m5.707s +sys 0m29.217s +Image is ready +bright/substrate-raft-setup latest 2e766c6e9b34 1 second ago 202MB +bright/substrate-raft-setup v4.0.0 2e766c6e9b34 1 second ago 202MB +``` \ No newline at end of file From 0d71fcabfa25ba8e01a14c662b6c0483237b7a8b Mon Sep 17 00:00:00 2001 From: Joseph Knecht <83087510+JosephKnecht-lab@users.noreply.github.com> Date: Tue, 11 Jul 2023 15:31:25 +0200 Subject: [PATCH 229/253] External Evaluation Soland M2 --- evaluations/solang_2_si.md | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 evaluations/solang_2_si.md diff --git a/evaluations/solang_2_si.md b/evaluations/solang_2_si.md new file mode 100644 index 000000000..2ee5a9988 --- /dev/null +++ b/evaluations/solang_2_si.md @@ -0,0 +1,74 @@ +# Evaluation Solang + + +- **Status:** Accepted +- **Application Document:** https://github.com/w3f/Grants-Program/pull/1334 +- **Milestone:** 2 +- **Kusama Identity:** Ha27MB4gKH36ieRPa1T1ASqhUz4sVxMoVmK7o5CS6tXDqjW +- **Previously successfully merged evaluation:** https://github.com/w3f/Grant-Milestone-Delivery/pull/883 + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License |
    • [x]
    |[Link](https://github.com/hyperledger/solang/blob/main/LICENSE)| License is Acceptable. Please write year and owner of cpyright on line 189 of the license. | +| 0b. | Documentation |
    • [x]
    |[Link](https://solang.readthedocs.io/en/latest/running.html#starting-a-new-project)|Good | +| 0c. | Testing and Testing Guide |
    • [x]
    |[Link](https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs)|Refer to Item 1 in General Notes regarding Testing Guide.| +| 0d. | Docker |
    • []
    || No docker image provided. Refer to item 2 in General Notes. | +| 0e. | Article |
    • [x]
    |[Link](https://forum.polkadot.network/t/introducing-solang-improvements/3361)| Link provided.| +| 1. | Implement Solang projects |
    • [ ]
    |[Link](https://github.com/hyperledger/solang/pull/1392)| See Item 4 in General Notes. | + + + +## General Notes + +1. You have not provided a testing guide for running the tests. See the existing documentation about how tests are run: https://github.com/hyperledger/solang/blob/main/docs/testing.rst + +2. There is an existing docker image for hyperledger already. The implemented soltution exists within that container. + +``` +docker run --rm -it -v $(pwd):/sources ghcr.io/hyperledger/solang compile -v -o /sources --target polkadot /sources/flipper.sol + +``` + +3. Installation was successful. + +``` +You have 26 outdated formulae installed. +==> Downloading https://formulae.brew.sh/api/cask_tap_migrations.jws.json +################################################################################################################################# 100.0% + +==> Tapping hyperledger/solang +Cloning into '/opt/homebrew/Library/Taps/hyperledger/homebrew-solang'... +remote: Enumerating objects: 56, done. +remote: Counting objects: 100% (56/56), done. +remote: Compressing objects: 100% (28/28), done. +remote: Total 56 (delta 19), reused 49 (delta 17), pack-reused 0 +Receiving objects: 100% (56/56), 14.14 KiB | 7.07 MiB/s, done. +Resolving deltas: 100% (19/19), done. +Tapped 1 cask (17 files, 33.4KB). +==> Downloading https://github.com/hyperledger/solang/releases/download/v0.3.1/solang-mac-arm +==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/163517929/021a1e14-702f-4cce-9d18-5da3 +################################################################################################################################# 100.0% +==> Installing Cask solang +==> Linking Binary 'solang-mac-arm' to '/opt/homebrew/bin/solang' +🍺 solang was successfully installed! +``` +Some of the documentaiton seems to be outdated. For example, the following command fails: + +``` +solang compile --target polkadot examples/polkadot/flipper.sol +``` + +because there is no ***polkadot*** target, but rather ***substrate***. + +``` +error: invalid value 'polkadot' for '--target ' + [possible values: solana, substrate, evm] + +For more information, try '--help'. +``` + +4. Tested the solang new command and it runs successfully locally. + +``` +solang new --target substrate +``` \ No newline at end of file From ff392a0b9d7a897d68c8c9390be4268e09d4f693 Mon Sep 17 00:00:00 2001 From: Joseph Knecht <83087510+JosephKnecht-lab@users.noreply.github.com> Date: Tue, 11 Jul 2023 15:36:42 +0200 Subject: [PATCH 230/253] accepted status --- evaluations/solang_2_si.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/solang_2_si.md b/evaluations/solang_2_si.md index 2ee5a9988..c5d4d1628 100644 --- a/evaluations/solang_2_si.md +++ b/evaluations/solang_2_si.md @@ -14,7 +14,7 @@ | 0c. | Testing and Testing Guide |
    • [x]
    |[Link](https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs)|Refer to Item 1 in General Notes regarding Testing Guide.| | 0d. | Docker |
    • []
    || No docker image provided. Refer to item 2 in General Notes. | | 0e. | Article |
    • [x]
    |[Link](https://forum.polkadot.network/t/introducing-solang-improvements/3361)| Link provided.| -| 1. | Implement Solang projects |
    • [ ]
    |[Link](https://github.com/hyperledger/solang/pull/1392)| See Item 4 in General Notes. | +| 1. | Implement Solang projects |
    • [x]
    |[Link](https://github.com/hyperledger/solang/pull/1392)| See Item 4 in General Notes. | From 6aa968415db37c4a630d29f9cd8321f3d1b93aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Tue, 11 Jul 2023 17:00:06 +0200 Subject: [PATCH 231/253] High Availability Validator Setup M3 accepted --- ...vailability-validator-setup_3_ali-usama.md | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/evaluations/high-availability-validator-setup_3_ali-usama.md b/evaluations/high-availability-validator-setup_3_ali-usama.md index 1910162d2..d79b9d010 100644 --- a/evaluations/high-availability-validator-setup_3_ali-usama.md +++ b/evaluations/high-availability-validator-setup_3_ali-usama.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [High Availability Validator Setup](https://github.com/w3f/Grants-Program/blob/master/applications/High_availability_validator_setup.md) - **Milestone:** 3 - **Kusama Identity:** Eexv1mKLiCidz2gGh6vfowtXgSSc7mvD4xEb2ji998W4DPs @@ -9,8 +9,8 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | |--------|---------------------------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------| | 0a. | Licence |
    • [x]
    | [Unlicense](https://github.com/bright/substrate-raft-setup/blob/milestone-3/LICENSE) | Correct Licence | -| 0b. | Documentation |
    • [x]
    | [Setup Docs](https://github.com/bright/substrate-raft-setup/blob/milestone-3/docs/rust-setup.md)
    [ReadMe](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md) | Well-structured doc files and inline documentation is well-explained too. | -| 0c. | Testing Guide |
    • [x]
    | `cargo test` | `cargo test` fails with the following output. | +| 0b. | Documentation |
    • [x]
    | [ReadMe](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md) | Minimal inline docs and documentation | +| 0c. | Testing Guide |
    • [x]
    | `cargo test` | -- | | 0d. | Docker |
    • [x]
    | [Running locally](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-locally-1) | Builds and runs successfully. | | 1. | Run necessary Raft services |
    • [x]
    | [Running docker-compose](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-docker-compose-1) | Working as per the application | | 2. | Integrate Raft client into Node |
    • [x]
    | [Running docker-compose](https://github.com/bright/substrate-raft-setup/blob/milestone-3/README.md#running-docker-compose-1) | Working as per the application | @@ -19,9 +19,16 @@ ## General Notes +### Jul 11, 2023 + +Tests work as expected. + +### Jul 10, 2023 + The delivery is well-structured and well-documented, however, the only issue I found is tha failing `cargo test` command in the root directory of the terminal. I tried with updated and older rustc versions too, but both failed with the same error mentioned below. ### `cargo test` output + ``` CMake Warning: Manually-specified variables were not used by the project: @@ -60,6 +67,7 @@ CMake Warning: ``` ### `bash docker/build.sh` output + ``` Building bright/substrate-raft-setup:latest docker image, hang on! [+] Building 2676.3s (15/15) FINISHED @@ -85,10 +93,10 @@ Building bright/substrate-raft-setup:latest docker image, hang on! => => writing image sha256:2e766c6e9b34a20c4f749762e5bbe9befda7ca6afa96f0ea05cf510448ab24ac 0.0s => => naming to docker.io/bright/substrate-raft-setup:latest 0.0s -real 44m37.150s -user 1m5.707s -sys 0m29.217s +real 44m37.150s +user 1m5.707s +sys 0m29.217s Image is ready bright/substrate-raft-setup latest 2e766c6e9b34 1 second ago 202MB bright/substrate-raft-setup v4.0.0 2e766c6e9b34 1 second ago 202MB -``` \ No newline at end of file +``` From 146eae53146ef12c2675939ccb6d775931ccb2f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasia=20=C5=81ukasiewicz?= Date: Tue, 11 Jul 2023 17:06:27 +0200 Subject: [PATCH 232/253] High-availability validator setup - Milestone 3 (#898) --- ...ilability validator setup - Milestone 3.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 deliveries/High-Availability validator setup - Milestone 3.md diff --git a/deliveries/High-Availability validator setup - Milestone 3.md b/deliveries/High-Availability validator setup - Milestone 3.md new file mode 100644 index 000000000..9325ca36d --- /dev/null +++ b/deliveries/High-Availability validator setup - Milestone 3.md @@ -0,0 +1,34 @@ +# 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/High_availability_validator_setup.md +* **Milestone Number:** 3 + +**Context** + +Replace the dummy microservice as an infrastructure component with a [TiKV](https://github.com/tikv/tikv) cluster used for leader selection. +Each node should try to get authorship permission based on the KV (Key-value) state. Replace the current microservice client with a TiKV client and add corresponding logic. + + + +**Deliverables** + +Milestone 1 is deliveried under the [milestone-3](https://github.com/bright/substrate-raft-setup/blob/milestone-3) branch in our repository. + + +| Number | Deliverable | Specification | Testing | +| ------------- | ------------- | ------------- | ------------- | +| **0a.** | License | Apache 2.0 / GPLv3 / MIT / Unlicense | License can be found under: [substrate-raft-setup](https://github.com/bright/substrate-raft-setup/blob/milestone-3/LICENSE) +| **0b.** | Documentation | We will provide inline documentation.| +| **0c.** | Testing and Testing Guide | We will provide unit tests and the guidelines for running and testing it the scope. | Run `cargo test` in the `substrate-raft-setup` root directory +| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | In the root directory of the `substrate-raft-setup` please run `bash docker/build.sh` +| 1. | Run the necessary Raft services | Set up a local dev infrastructure to run TiKV components in order to provide a distributed KV store. | Basicly [docker-compose.yml](https://github.com/bright/substrate-raft-setup/blob/milestone-3/docker-compose.yml) setups 6 validator nodes where two of them (`alice-1`, `alice-2`) works with authorship permission. We are running there a Placement Drivers (PD) with three TiKV nodes. +| 2. | Integrate a Raft client into the node | Replace the previous logic with a TiKV based one and modify configs to allow the TiKV client to connect to Placement Drivers. Placement Drivers (PD) is one of the components which stores metadata for the entire TiKV cluster. It is responsible for sending commands to the TiKV nodes. The minimum setup for PD is to manage three TiKV nodes. | Same as in point **1**. +| 3. | Integration test | A dockerised setup that allows to test the Raft consensus mechanism. | Build docker as pointed in **0d** and than run `docker-compose up` in the root of the `substrate-raft-setup`. + + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From 5aa8564f228d7d7f8870d6b6e8af2ef27b427385 Mon Sep 17 00:00:00 2001 From: Seraya Takahashi Date: Tue, 11 Jul 2023 18:34:02 +0200 Subject: [PATCH 233/253] update larch m1 eval --- evaluations/larch_1_takahser.md | 458 ++++++++++++++++++++++++++++---- 1 file changed, 407 insertions(+), 51 deletions(-) diff --git a/evaluations/larch_1_takahser.md b/evaluations/larch_1_takahser.md index b586753d0..8916657b3 100644 --- a/evaluations/larch_1_takahser.md +++ b/evaluations/larch_1_takahser.md @@ -9,14 +9,14 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
    • [x]
    | [GPLv3](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/license) | - | -| 0b. | Documentation |
    • [ ]
    | [README](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/readme.md), [docs](https://github.com/Zeeve-App/larch/tree/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs), [web docs instructions](https://github.com/Zeeve-App/larch/blob/main/docs/development/index.md), [about page](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/packages/ui/src/pages/documentation/page.tsx) | See [documentation feedback](#documentation-feedback). | +| 0b. | Documentation |
    • [x]
    | [README](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/readme.md), [docs](https://github.com/Zeeve-App/larch/tree/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs), [web docs instructions](https://github.com/Zeeve-App/larch/blob/main/docs/development/index.md), [about page](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/packages/ui/src/pages/documentation/page.tsx), [tutorial](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/docs/user/tutorial.md) | See [documentation feedback](#documentation-feedback). | | 0c. | Testing Guide |
    • [ ]
    | [v1.0.0 release](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | See [Testing Guide Feedback](#testing-guide-feedback) | | 0d. | Standalone Executable |
    • [x]
    | [v1.0.0 release binaries](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | Binary for linux x64 platform and source code archives. | -| 1. | Initial Automation |
    • [ ]
    | (will be tested when 0b., 0c. are fixed) | Spec: We will build the core GUI driven automation to create and deploy the substrate based Zombie-net configurations including relaychain and parachain configurations. | -| 2. | Configuration |
    • [ ]
    | (will be tested when 0b., 0c. are fixed) | Spec: Parachain configuration is critical and complicated, we will provide the GUI based pick and choose for genesis parameters and chain configs to start with parachain setup for the desired Zombie-net | -| 3. | Node type support |
    • [ ]
    | (will be tested when 0b., 0c. are fixed) | Spec: Implement setup of all node types including Full node, Validator node and Collator node for the respective relay chain and parachain within the configured Zombie-net. | -| 4. | Cloud agnostic setup |
    • [ ]
    | (will be tested when 0b., 0c. are fixed) | Spec: The larch setup will be cloud agnostic and it can be installed on the choice of cloud, instructions and documentation will be provided for the same. | -| 5. | Network Management |
    • [ ]
    | (will be tested when 0b., 0c. are fixed) | Spec: Implement the larch tool with a user-friendly interface, features for execution info, network deletion, template cloning, and management, along with robust error handling, for seamless setup of networks and templates. | +| 1. | Initial Automation |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: We will build the core GUI driven automation to create and deploy the substrate based Zombie-net configurations including relaychain and parachain configurations. | +| 2. | Configuration |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: Parachain configuration is critical and complicated, we will provide the GUI based pick and choose for genesis parameters and chain configs to start with parachain setup for the desired Zombie-net | +| 3. | Node type support |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: Implement setup of all node types including Full node, Validator node and Collator node for the respective relay chain and parachain within the configured Zombie-net. | +| 4. | Cloud agnostic setup |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: The larch setup will be cloud agnostic and it can be installed on the choice of cloud, instructions and documentation will be provided for the same. | +| 5. | Network Management |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: Implement the larch tool with a user-friendly interface, features for execution info, network deletion, template cloning, and management, along with robust error handling, for seamless setup of networks and templates. | Ideally all links inside the above table should include the commit hash, which was used for testing the delivery. It should also be checked if the software is published under the correct open-source license. @@ -27,31 +27,28 @@ Summarizes the overall performance plus additional feedback/comments ### Documentation feedback -- [ ] It would be nice if there was a way to navigate the docs more easily. For example, you could add an *index.md* file to each directory and add links (and some useful content) to each of them. +- [x] ~~It would be nice if there was a way to navigate the docs more easily. For example, you could add an *index.md* file to each directory and add links (and some useful content) to each of them.~~ => fixed -- [ ] Some basic info about the project can be found on the web ui when running the code after buildiug it. However, they're not very well written. +- [x] ~~Some basic info about the project can be found on the web ui when running the code after buildiug it. However, they're not very well written.~~ => improved -- [ ] I didn't identify any npm task called `prepare` as indicated in your [development index.md docs](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs/development/index.md). +- [x] ~~I didn't identify any npm task called `prepare` as indicated in your [development index.md docs](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs/development/index.md).~~ => seems like that task is not needed anymore - it has been removed from the doc -- [ ] I didn't identify any "basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing" as promised in the [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L170): +- [x] ~~I didn't identify any "basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing" as promised in the [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L170):~~ => fixed, see [here](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/docs/user/tutorial.md) - > We will provide both inline documentation of the code and a basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing, which will show how the new functionality works. + > ~~We will provide both inline documentation of the code and a basic tutorial that explains how a user can (for example) create a new Substrate based Zombie-net nodes and initiate testing, which will show how the new functionality works.~~ -- [ ] There is currently 1 critical npm vulnerability: +- [x] ~~There is currently 1 critical npm vulnerability:~~ => fixed although there are warnings, but I'm willing to accept it as long as there are no critical vulnerabilities. See updated excerpt: ```bash larch % npm i - npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs - npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs + added 1258 packages, and audited 1262 packages in 25s - added 1389 packages, and audited 1393 packages in 15s - - 196 packages are looking for funding + 204 packages are looking for funding run `npm fund` for details - 1 high severity vulnerability + 7 moderate severity vulnerabilities To address all issues, run: npm audit fix @@ -103,59 +100,418 @@ Summarizes the overall performance plus additional feedback/comments ### Testing Guide Feedback -- [ ] I didn't identify any testing guide. See [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L171): +- [x] ~~I didn't identify any testing guide. See [spec](https://github.com/w3f/Grants-Program/blob/42b3fef6b2f60890ef8ee42215c267b11681e613/applications/Zeeve_Parachain_deployment_zoombienet_testing_automation.md#L171):~~ => a guide has been [added](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/docs/development/test_coverage.md) - > Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. + > ~~Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.~~ -- [x] backend tests pass: +- [ ] backend tests ~~pass~~ fail now (even if I change the `larchVersion` to `1.0.1` in the [tests](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/packages/backend/__tests__/routes.test.ts#L85)): ```bash - backend % npm run test + larch % npm run test + + > test + > lerna run test + + lerna notice cli v7.1.0 - > larch-backend@1.0.0 test - > vitest + > larch-backend:build [existing outputs match the cache, left as is] - DEV v0.30.1 /Users/xxx/repos/larch/packages/backend + > larch-backend@1.0.1 build + > node scripts/version.mjs && rm -rf dist && tsc + /Users/xxx/repos/larch/packages/backend/scripts + + > larch-backend:test + + > larch-backend@1.0.1 test + > vitest run + RUN v0.32.2 /Users/xxx/repos/larch/packages/backend stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). - + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + ✓ __tests__/zombienet.test.ts (1 test) 1ms + stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup + podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}} + error occurred + ❯ __tests__/module.providers.test.ts (3 tests | 1 failed) 11ms + ❯ __tests__/module.providers.test.ts > Podman > should get Podman cleanup + → promise rejected "Error: spawn podman ENOENT" instead of resolving + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + stdout | unknown test + ui enabled + api enabled + GET / + GET /ui/* + GET /api/larch/network + POST /api/larch/network/list + POST /api/larch/network/create + POST /api/larch/network/create + POST /api/larch/network/update + POST /api/larch/network/update + GET /api/larch/network/delete + POST /api/larch/network/test + POST /api/larch/network/test + GET /api/larch/network/run + POST /api/larch/network/run-list + GET /api/larch/network/status + POST /api/larch/template/create + POST /api/larch/template/create + GET /api/larch/template + POST /api/larch/template/update + POST /api/larch/template/update + GET /api/larch/template/delete + POST /api/larch/template/list + POST /api/larch/template/clone + GET /api/larch/user_operation + GET /api/larch/user_operation/purge + POST /api/larch/user_operation/list + GET /api/larch/version + app is listening on port 9000 + ❯ __tests__/routes.test.ts (22 tests | 1 failed) 58ms + ❯ __tests__/routes.test.ts > Version route endpoint > check for response and the type of response + → expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 16684992, Percent downloaded: 8.91 - + Total file size: 187351204, Current file size: 265920, Percent downloaded: 0.14 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 41058304, Percent downloaded: 21.92 - + Total file size: 187351204, Current file size: 1733952, Percent downloaded: 0.93 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 64634816, Percent downloaded: 34.50 - + Total file size: 187351204, Current file size: 5908800, Percent downloaded: 3.15 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 90767360, Percent downloaded: 48.45 - + Total file size: 187351204, Current file size: 10107584, Percent downloaded: 5.39 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 108969984, Percent downloaded: 58.16 - + Total file size: 187351204, Current file size: 14213120, Percent downloaded: 7.59 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 127959040, Percent downloaded: 68.30 - + Total file size: 187351204, Current file size: 18578240, Percent downloaded: 9.92 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 147603456, Percent downloaded: 78.78 - + Total file size: 187351204, Current file size: 23181504, Percent downloaded: 12.37 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 163921920, Percent downloaded: 87.49 - + Total file size: 187351204, Current file size: 27754560, Percent downloaded: 14.81 stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 183711104, Percent downloaded: 98.06 - + Total file size: 187351204, Current file size: 32569536, Percent downloaded: 17.38 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 37470208, Percent downloaded: 20.00 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 42402496, Percent downloaded: 22.63 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 47400192, Percent downloaded: 25.30 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 52286912, Percent downloaded: 27.91 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 57603456, Percent downloaded: 30.75 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 62858240, Percent downloaded: 33.55 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 68130688, Percent downloaded: 36.37 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 73531584, Percent downloaded: 39.25 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 78399488, Percent downloaded: 41.85 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 83758848, Percent downloaded: 44.71 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 88818304, Percent downloaded: 47.41 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 94427200, Percent downloaded: 50.40 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 99853376, Percent downloaded: 53.30 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 105449664, Percent downloaded: 56.28 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 110970304, Percent downloaded: 59.23 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 116431744, Percent downloaded: 62.15 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 121982656, Percent downloaded: 65.11 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 127532288, Percent downloaded: 68.07 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 132945920, Percent downloaded: 70.96 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 138574912, Percent downloaded: 73.97 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 144123264, Percent downloaded: 76.93 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 149664064, Percent downloaded: 79.88 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 155072640, Percent downloaded: 82.77 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 160602112, Percent downloaded: 85.72 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 166243712, Percent downloaded: 88.73 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 171833728, Percent downloaded: 91.72 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 177389632, Percent downloaded: 94.68 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 182892672, Percent downloaded: 97.62 + ✓ __tests__/utils.test.ts (4 tests) 16912ms stdout | __tests__/utils.test.ts > file download > should download file Total file size: 187351204, Current file size: 187351204, Percent downloaded: 100.00 + ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + FAIL __tests__/module.providers.test.ts > Podman > should get Podman cleanup + Error: promise rejected "Error: spawn podman ENOENT" instead of resolving + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + FAIL __tests__/routes.test.ts > Version route endpoint > check for response and the type of response + AssertionError: expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } + - Expected + + Received + Object { + "result": Object { + - "larchVersion": "1.0.1", + + "larchVersion": "1.0.0", + "zombienetVersion": "1.3.43", + }, + "status": "success", + } + ❯ __tests__/routes.test.ts:81:22 + 79| expect(res && res.body && typeof res.body === 'object') + 80| expect(res.statusCode).toEqual(200) + 81| expect(res.body).toEqual({ + | ^ + 82| "status": "success", + 83| "result": { + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + ⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ + + Vitest caught 1 unhandled error during the test run. + This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. + ⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ + Error: promise rejected "Error: spawn podman ENOENT" instead of resolving + ❯ ../../node_modules/@vitest/expect/dist/index.js:1267:21 + ❯ processTicksAndRejections node:internal/process/task_queues:95:5 + This error originated in "__tests__/module.providers.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. + The latest test that might've caused the error is "should check Zombie JSON for Zombienet network". It might mean one of the following: + - The error was thrown, while Vitest was running this test. + - This was the last recorded test before the error was thrown, if error originated after test finished its execution. + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ + Test Files 2 failed | 2 passed (4) + Tests 2 failed | 28 passed (30) + Errors 1 error + Start at 16:00:56 + Duration 17.07s (transform 119ms, setup 0ms, collect 487ms, tests 16.98s, environment 0ms, prepare 146ms) + npm ERR! Lifecycle script `test` failed with error: + npm ERR! Error: command failed + npm ERR! in workspace: larch-backend@1.0.1 + npm ERR! at location: /Users/xxx/repos/larch/packages/backend + + ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + + > Lerna (powered by Nx) Ran target test for project larch-backend and 1 task(s) they depend on (17s) + + ✖ 1/2 failed + ✔ 1/2 succeeded [1 read from cache] + ``` - ✓ __tests__/utils.test.ts (4) 5097ms - ✓ __tests__/module.providers.test.ts (2) +- [ ] coverage also fails: - Test Files 2 passed (2) - Tests 6 passed (6) - Start at 17:30:08 - Duration 5.36s (transform 110ms, setup 0ms, collect 257ms, tests 5.10s, environment 0ms, prepare 127ms) - ``` + ```bash + larch % npm run coverage + + > coverage + > lerna run coverage + + lerna notice cli v7.1.0 + + > larch-backend:coverage + + > larch-backend@1.0.1 coverage + > vitest run --coverage + RUN v0.32.2 /Users/xxx/repos/larch/packages/backend + Coverage enabled with v8 + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + ✓ __tests__/zombienet.test.ts (1 test) 2ms + stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup + podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}} + error occurred + ❯ __tests__/module.providers.test.ts (3 tests | 1 failed) 20ms + ❯ __tests__/module.providers.test.ts > Podman > should get Podman cleanup + → promise rejected "Error: spawn podman ENOENT" instead of resolving + stdout | unknown test + sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). + stdout | unknown test + ui enabled + api enabled + GET / + GET /ui/* + GET /api/larch/network + POST /api/larch/network/list + POST /api/larch/network/create + POST /api/larch/network/create + POST /api/larch/network/update + POST /api/larch/network/update + GET /api/larch/network/delete + POST /api/larch/network/test + POST /api/larch/network/test + GET /api/larch/network/run + POST /api/larch/network/run-list + GET /api/larch/network/status + POST /api/larch/template/create + POST /api/larch/template/create + GET /api/larch/template + POST /api/larch/template/update + POST /api/larch/template/update + GET /api/larch/template/delete + POST /api/larch/template/list + POST /api/larch/template/clone + GET /api/larch/user_operation + GET /api/larch/user_operation/purge + POST /api/larch/user_operation/list + GET /api/larch/version + app is listening on port 9000 + ❯ __tests__/routes.test.ts (22 tests | 1 failed) 59ms + ❯ __tests__/routes.test.ts > Version route endpoint > check for response and the type of response + → expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 265920, Percent downloaded: 0.14 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 1765504, Percent downloaded: 0.94 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 9215296, Percent downloaded: 4.92 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 21394944, Percent downloaded: 11.42 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 31086528, Percent downloaded: 16.59 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 41959424, Percent downloaded: 22.40 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 52548288, Percent downloaded: 28.05 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 63514432, Percent downloaded: 33.90 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 73916992, Percent downloaded: 39.45 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 83616128, Percent downloaded: 44.63 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 95424064, Percent downloaded: 50.93 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 105266944, Percent downloaded: 56.19 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 115412416, Percent downloaded: 61.60 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 127290944, Percent downloaded: 67.94 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 137055872, Percent downloaded: 73.15 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 148368256, Percent downloaded: 79.19 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 158770944, Percent downloaded: 84.75 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 169967360, Percent downloaded: 90.72 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 180028416, Percent downloaded: 96.09 + stdout | __tests__/utils.test.ts > file download > should download file + Total file size: 187351204, Current file size: 187351204, Percent downloaded: 100.00 + ✓ __tests__/utils.test.ts (4 tests) 10333ms + ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ + FAIL __tests__/module.providers.test.ts > Podman > should get Podman cleanup + Error: promise rejected "Error: spawn podman ENOENT" instead of resolving + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ + FAIL __tests__/routes.test.ts > Version route endpoint > check for response and the type of response + AssertionError: expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } + - Expected + + Received + Object { + "result": Object { + - "larchVersion": "1.0.1", + + "larchVersion": "1.0.0", + "zombienetVersion": "1.3.43", + }, + "status": "success", + } + ❯ __tests__/routes.test.ts:81:22 + 79| expect(res && res.body && typeof res.body === 'object') + 80| expect(res.statusCode).toEqual(200) + 81| expect(res.body).toEqual({ + | ^ + 82| "status": "success", + 83| "result": { + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ + ⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ + + Vitest caught 1 unhandled error during the test run. + This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. + ⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ + Error: promise rejected "Error: spawn podman ENOENT" instead of resolving + ❯ ../../node_modules/@vitest/expect/dist/index.js:1267:21 + ❯ processTicksAndRejections node:internal/process/task_queues:95:5 + This error originated in "__tests__/module.providers.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. + The latest test that might've caused the error is "should check Zombie JSON for Zombienet network". It might mean one of the following: + - The error was thrown, while Vitest was running this test. + - This was the last recorded test before the error was thrown, if error originated after test finished its execution. + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ + Test Files 2 failed | 2 passed (4) + Tests 2 failed | 28 passed (30) + Errors 1 error + Start at 18:02:25 + Duration 10.53s (transform 150ms, setup 0ms, collect 613ms, tests 10.41s, environment 0ms, prepare 197ms) + % Coverage report from v8 + -------------------|---------|----------|---------|---------|------------------- + File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s + -------------------|---------|----------|---------|---------|------------------- + All files | 79.33 | 60.86 | 70.79 | 79.33 | + src | 91.4 | 80 | 100 | 91.4 | + config.ts | 100 | 100 | 100 | 100 | + server.ts | 86.9 | 80 | 100 | 86.9 | 43,66-75 + version.ts | 100 | 100 | 100 | 100 | + src/api | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + src/api/larch | 100 | 100 | 100 | 100 | + index.ts | 100 | 100 | 100 | 100 | + .../larch/network | 78.35 | 48.14 | 81.81 | 78.35 | + controllers.ts | 68.53 | 36.36 | 77.77 | 68.53 | ...97-200,215-216 + routes.ts | 100 | 100 | 100 | 100 | + schemas.ts | 100 | 100 | 100 | 100 | + validations.ts | 100 | 100 | 100 | 100 | + ...larch/template | 80.2 | 41.17 | 87.5 | 80.2 | + controllers.ts | 75.3 | 38.46 | 83.33 | 75.3 | ...20-126,154-166 + routes.ts | 100 | 100 | 100 | 100 | + schemas.ts | 100 | 100 | 100 | 100 | + validations.ts | 67.34 | 50 | 100 | 67.34 | 25-32,40-47 + ...user_operation | 93.33 | 42.85 | 100 | 93.33 | + controllers.ts | 90.78 | 42.85 | 100 | 90.78 | 36-42 + routes.ts | 100 | 100 | 100 | 100 | + .../larch/version | 96.36 | 50 | 100 | 96.36 | + controllers.ts | 93.75 | 50 | 100 | 93.75 | 30-31 + routes.ts | 100 | 100 | 100 | 100 | + src/modules | 54.09 | 55 | 41.17 | 54.09 | + exec_run.ts | 63.54 | 66.66 | 66.66 | 63.54 | ...63,70-78,86-96 + network.ts | 45.06 | 37.5 | 50 | 45.06 | ...43-154,157-162 + ..._operation.ts | 100 | 100 | 100 | 100 | + zombienet.ts | 45.04 | 50 | 14.28 | 45.04 | ...,76-98,101-111 + src/modules/db | 97.77 | 66.66 | 100 | 97.77 | + sqlite.ts | 97.77 | 66.66 | 100 | 97.77 | 41 + ...modules/models | 80.3 | 60.31 | 65.95 | 80.3 | + exec_run.ts | 77.52 | 64.7 | 60 | 77.52 | ...56-159,162-178 + network.ts | 69.59 | 53.33 | 53.84 | 69.59 | ...19-126,167-171 + template.ts | 90.55 | 56.25 | 77.77 | 90.55 | 71-78,88-91 + ..._operation.ts | 89.38 | 66.66 | 80 | 89.38 | 59-66,76-79 + ...ules/providers | 63.79 | 57.14 | 66.66 | 63.79 | + common.ts | 65.21 | 50 | 50 | 65.21 | 21-36 + podman.ts | 62.85 | 60 | 75 | 62.85 | 37-58,61-64 + src/utils | 96.15 | 87.87 | 88.88 | 96.15 | + declaration.ts | 91.3 | 100 | 75 | 91.3 | 59-64 + download.ts | 92.3 | 71.42 | 100 | 92.3 | 36-38,62-63 + fs_helper.ts | 100 | 100 | 80 | 100 | + misc.ts | 100 | 100 | 100 | 100 | + pagination.ts | 96.82 | 71.42 | 100 | 96.82 | 51-52 + time.ts | 100 | 100 | 100 | 100 | + validation.ts | 100 | 100 | 100 | 100 | + -------------------|---------|----------|---------|---------|------------------- + npm ERR! Lifecycle script `coverage` failed with error: + npm ERR! Error: command failed + npm ERR! in workspace: larch-backend@1.0.1 + npm ERR! at location: /Users/xxx/repos/larch/packages/backend + + ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + + > Lerna (powered by Nx) Ran target coverage for project larch-backend (11s) + + ✖ 1/1 failed + ✔ 0/1 succeeded [0 read from cache] + ``` \ No newline at end of file From 0fee1b7acaef8a34e5bcc64844d724dadfed570a Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Tue, 11 Jul 2023 20:05:16 +0300 Subject: [PATCH 234/253] Update ScoutCoinFabrik_2_dastansam.md --- evaluations/ScoutCoinFabrik_2_dastansam.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evaluations/ScoutCoinFabrik_2_dastansam.md b/evaluations/ScoutCoinFabrik_2_dastansam.md index 588f2c49e..db810c34f 100644 --- a/evaluations/ScoutCoinFabrik_2_dastansam.md +++ b/evaluations/ScoutCoinFabrik_2_dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [Application](https://github.com/w3f/Grants-Program/pull/1666) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) @@ -193,4 +193,4 @@ test test ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1071.30s ``` - \ No newline at end of file + From 390bf12af5ca7768699cfea093ea88676a0055a7 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:20:09 -0300 Subject: [PATCH 235/253] Update ismp_1_dsm-w3f.md --- evaluations/ismp_1_dsm-w3f.md | 42 +++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/evaluations/ismp_1_dsm-w3f.md b/evaluations/ismp_1_dsm-w3f.md index 36d3de042..5cd068002 100644 --- a/evaluations/ismp_1_dsm-w3f.md +++ b/evaluations/ismp_1_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ismp.md - **Milestone:** 1 - **Kusama Identity:** Address @@ -9,24 +9,28 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE](https://github.com/polytope-labs/ismp-rs/blob/main/LICENSE)| | -| 0b. | Documentation |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| Not fully evaluated yet | -| 0c. | Testing and Testing Guide |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| Not fully evaluated yet | -| 0d. | Docker |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs#run-test-in-docker](https://github.com/polytope-labs/ismp-rs#run-test-in-docker)| Not fully evaluated yet | -| 0e. | Article |
    • [ ]
    | TBA | Need to be delivered | -| 0f. | ISMP Specification |
    • [ ]
    |[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| Not fully evaluated yet | -| 1 | `ismp-rs` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs](https://github.com/polytope-labs/ismp-rs)| Not fully evaluated yet | -| 1a. | `ISMPHOST` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37)| Not fully evaluated yet | -| 1b. | `ISMPRouter` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs)| Not fully evaluated yet | -| 1c. | `ISMPModule` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs)| Not fully evaluated yet | -| 1d. | `ConsensusClient` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91)| Not fully evaluated yet | -| | Request/Response proof verification |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123)| Not fully evaluated yet | -| | Request Timeout verification |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160)| Not fully evaluated yet | -| 1e. | Handlers |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs)| Not fully evaluated yet | -| | `CreateConsensusClient` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91)| Not fully evaluated yet | -| | `ConsensusMessage` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28)| Not fully evaluated yet | -| | `RequestMessage` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs)| Not fully evaluated yet | -| | `ResponseMessage` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs)| Not fully evaluated yet | -| | `TimeoutMessage` |
    • [ ]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs)| Not fully evaluated yet | +| 0b. | Documentation |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/README.md](https://github.com/polytope-labs/ismp-rs/blob/main/README.md)| | +| 0c. | Testing and Testing Guide |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite](https://github.com/polytope-labs/ismp-rs/tree/main/ismp-testsuite)| | +| 0d. | Docker |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs#run-test-in-docker](https://github.com/polytope-labs/ismp-rs#run-test-in-docker)| | +| 0e. | Article |
    • [x]
    | TBA | Shared and evaluated in private | +| 0f. | ISMP Specification |
    • [x]
    |[https://github.com/polytope-labs/ismp](https://github.com/polytope-labs/ismp)| | +| 1 | `ismp-rs` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs](https://github.com/polytope-labs/ismp-rs)| | +| 1a. | `ISMPHOST` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/host.rs#L37)| | +| 1b. | `ISMPRouter` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/router.rs)| | +| 1c. | `ISMPModule` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/module.rs)| | +| 1d. | `ConsensusClient` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L91)| | +| | Request/Response proof verification |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/consensus.rs#L123)| | +| | Request Timeout verification |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/messaging.rs#L160)| | +| 1e. | Handlers |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers.rs)| | +| | `CreateConsensusClient` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L91)| | +| | `ConsensusMessage` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28](https://github.com/polytope-labs/ismp-rs/blob/1932c2c45f7c6ff104dd27b87aa06769739697fb/ismp/src/handlers/consensus.rs#L28)| | +| | `RequestMessage` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/request.rs)| | +| | `ResponseMessage` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/response.rs)| | +| | `TimeoutMessage` |
    • [x]
    |[https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs](https://github.com/polytope-labs/ismp-rs/blob/main/ismp/src/handlers/timeout.rs)| | + +## Evaluation V3 + +I finished the evaluation of this milestone by using the software provided with the pallets and infrastructure delivered in M2. ## Evaluation V2 From 14154d3d04dc65b79c9949c8467a924344a5a72e Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:20:14 -0300 Subject: [PATCH 236/253] Update ismp_2_dsm-w3f.md --- evaluations/ismp_2_dsm-w3f.md | 62 ++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/evaluations/ismp_2_dsm-w3f.md b/evaluations/ismp_2_dsm-w3f.md index 38be40e71..53a49c999 100644 --- a/evaluations/ismp_2_dsm-w3f.md +++ b/evaluations/ismp_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ismp.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -9,17 +9,55 @@ | Number | Deliverable | Accepted | Link | Evaluation Notes | | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE](https://github.com/polytope-labs/substrate-ismp/blob/main/LICENSE)| | -| 0b. | Documentation |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| | -| 0c. | Testing and Testing Guide |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| Need a manual testing guide | -| 0d. | Docker |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp#run-test-in-docker](https://github.com/polytope-labs/substrate-ismp#run-test-in-docker)| Not fully evaluated yet | -| 0e. | Article|
    • [ ]
    | TBA | Not a deliverable for this milestone | -| 1. | pallet-ismp |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp](https://github.com/polytope-labs/substrate-ismp)| Not fully evaluated yet | -| 1a. | Host |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48)| Not fully evaluated yet | -| 1b. | Router |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48)| Not fully evaluated yet | -| 1c. | `ParachainConsensusClient` |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115)| Not fully evaluated yet | -| 1d. | RPC |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs)| Not fully evaluated yet | -| 1e. | Runtime-APIs |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| Not fully evaluated yet | -| 1f. | Bechmarks |
    • [ ]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| Not fully evaluated yet | +| 0b. | Documentation |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/README.md](https://github.com/polytope-labs/substrate-ismp/blob/main/README.md)| | +| 0c. | Testing and Testing Guide |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/tests.rs)| | +| 0d. | Docker |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp#run-test-in-docker](https://github.com/polytope-labs/substrate-ismp#run-test-in-docker)| | +| 0e. | Article|
    • [x]
    | TBA | Shared and evaluated in private | +| 1. | pallet-ismp |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp](https://github.com/polytope-labs/substrate-ismp)| | +| 1a. | Host |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/host.rs#L48)| | +| 1b. | Router |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/pallet-ismp/src/dispatcher.rs#L48)| | +| 1c. | `ParachainConsensusClient` |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115](https://github.com/polytope-labs/substrate-ismp/blob/88c262e3d10c6d74ce0ae29bc2d50b000ab0f7be/parachain/src/consensus.rs#L115)| | +| 1d. | RPC |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/rpc/src/lib.rs)| | +| 1e. | Runtime-APIs |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/runtime-api/src/lib.rs)| | +| 1f. | Bechmarks |
    • [x]
    |[https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs](https://github.com/polytope-labs/substrate-ismp/blob/main/pallet-ismp/src/benchmarking.rs)| | + +## Evaluation V5 + +### Article + +It was shared in private. + +### Test + +I set up the parachains and relay chain with the polkadot-launch and tried to run the tests with `RUSTFLAGS="-C link-args=-Wl,--allow-multiple-definition" cargo test`, it ignored two tests, and two tests passed. + +``` +running 1 test +test config::tests::serialize ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s + +running 2 tests +test test_messaging_relay ... ignored +[2023-07-11T12:27:52Z INFO tesseract] 🛰 Starting messaging relay +[2023-07-11T12:28:18Z INFO tesseract] Events from KUSAMA-2000 [Request { dest_chain: Kusama(2001), source_chain: Kusama(2000), request_nonce: 2 }] +[2023-07-11T12:28:18Z INFO tesseract] 🛰Submitting ismp messages from KUSAMA-2000 to KUSAMA-2001 +test test_parachain_parachain_messaging_relay has been running for over 60 seconds +[2023-07-11T12:29:18Z INFO tesseract] Events from KUSAMA-2001 [Request { dest_chain: Kusama(2000), source_chain: Kusama(2001), request_nonce: 1 }] +[2023-07-11T12:29:18Z INFO tesseract] Latest update StateMachineUpdated { state_machine_id: StateMachineId { state_id: Kusama(2001), consensus_client: [80, 65, 82, 65] }, latest_height: 158 } +[2023-07-11T12:29:18Z INFO tesseract] 🛰Submitting ismp messages from KUSAMA-2001 to KUSAMA-2000 +[2023-07-11T12:30:06Z INFO tesseract] Events from KUSAMA-2000 [Request { dest_chain: Kusama(2001), source_chain: Kusama(2000), request_nonce: 3 }] +[2023-07-11T12:30:06Z INFO tesseract] 🛰Submitting GET response messages to KUSAMA-2000 +test test_parachain_parachain_messaging_relay ... ok + +test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 146.41s + + Running unittests src/lib.rs (target/debug/deps/tesseract_messaging-c326ab0f1e5ce648) +running 1 test +test parachain/src/codegen/relay_chain.rs - codegen::relay_chain::api::transaction_payment::constants::ConstantsApi::operational_fee_multiplier (line 5282) ... ignored + +test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s +``` ## Evaluation V4 From 35146b20774ddb48935eae697a3001b5ddf33328 Mon Sep 17 00:00:00 2001 From: Decentration <45230082+decentration@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:08:16 +0100 Subject: [PATCH 237/253] milestone 2 supersig_fellowship --- deliveries/supersig_fellowship_m2.md | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 deliveries/supersig_fellowship_m2.md diff --git a/deliveries/supersig_fellowship_m2.md b/deliveries/supersig_fellowship_m2.md new file mode 100644 index 000000000..dbd256299 --- /dev/null +++ b/deliveries/supersig_fellowship_m2.md @@ -0,0 +1,45 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**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/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/supersig_fellowship.md +* **Milestone Number:** 2 + +**Context** + +"A Supersig is a Multisig with superpowers" + +A new pallet, RPC and UI that enables organisations to benefit from much more flexibility than multisig, where users can add and remove members, as well as optionally add "Master" users that have more power than "Standard" users. + +Supersig is like multisig but with superpowers. This means that you have some added features such as: + +- you can add and remove members from the supersig. +- you get simpleMajority, instead of fixed thresholds. +- you get a master superuser feature. A master user always has 50% of the voting power. This means that if a master user is involved in a transaction, only one other person needs to sign in order to approve the transaction for execution. (*More than one person can be a master user). + +**This milestone is about creating a UI for chains that contain supersig pallet and rpc module.** + + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any of the deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ---------- | +| 0a. | License | Apache 2.0 | | | +| 0b. | Documentation | https://github.com/decentration/supersig-ui#supersig-ui, https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f5367 | Run through the Readme docs or the article to learn how to set up the project. | +| 0c. | e2e workflow tester | https://github.com/decentration/supersig-ui | launch this on local machine, then go to Settings, where you can run through the workflow tester | +| 0d. | Docker | https://github.com/decentration/supersig-ui#docker | run this command to run supersig ui from your local machine in one click. `docker run --rm -it --name supersig-ui -p 3000:3000 decentration/supersig-ui:latest` | +| 0e. | Article and Video | https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f53679, https://www.loom.com/share/6c96b98b437e439ca1bd251ec0c2b937?sid=5854ef8b-a579-45a0-9702-6cf60f5277f8 | Medium Article and Video for reviewal. If you are the reviewer watch this so you can navigate this milestone with ease. | +| 1. | **Supersig UI** | https://github.com/decentration/supersig-ui | **This is the main event of the milestone...** simply clone, yarn and then yarn start | +| 2. | Substrate Chain | https://github.com/decentration/substrate-supersig-template/tree/v0.9.37-fix-unbounded | Follow the article how-to to get an exact step by step here | +| 3. | Polkadot JS Apps UI Fork | https://github.com/decentration/apps/tree/main-fellowship-1 | We are not current going to make a PR to the main repo because Jaco is not accepting outside teams. After talking to him, he said that he would only consider it if it is being used by many people, that probably means if supersig gets added not just insto statemine, but statemint, and other chains. However, that is no problem because we have a fork of polkadot js running here: https://apps.decentration.org | + + +**Additional Information** +> Any further comments on the milestone that you would like to share with us. From fd1549511e19cea64bcfdb7156a8da2f3047f228 Mon Sep 17 00:00:00 2001 From: Seraya Takahashi Date: Wed, 12 Jul 2023 15:56:29 +0200 Subject: [PATCH 238/253] update larch m1 --- evaluations/larch_1_takahser.md | 299 ++++++-------------------------- 1 file changed, 57 insertions(+), 242 deletions(-) diff --git a/evaluations/larch_1_takahser.md b/evaluations/larch_1_takahser.md index 8916657b3..b44d2240d 100644 --- a/evaluations/larch_1_takahser.md +++ b/evaluations/larch_1_takahser.md @@ -10,7 +10,7 @@ | ------ | ----------- | -------- | ---- |----------------- | | 0a. | License |
    • [x]
    | [GPLv3](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/license) | - | | 0b. | Documentation |
    • [x]
    | [README](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/readme.md), [docs](https://github.com/Zeeve-App/larch/tree/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/docs), [web docs instructions](https://github.com/Zeeve-App/larch/blob/main/docs/development/index.md), [about page](https://github.com/Zeeve-App/larch/blob/5a7d8f1ef13b4ddd49d3137e775a048d9a0c2c33/packages/ui/src/pages/documentation/page.tsx), [tutorial](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/docs/user/tutorial.md) | See [documentation feedback](#documentation-feedback). | -| 0c. | Testing Guide |
    • [ ]
    | [v1.0.0 release](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | See [Testing Guide Feedback](#testing-guide-feedback) | +| 0c. | Testing Guide |
    • [x]
    | [v1.0.0 release](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | See [Testing Guide Feedback](#testing-guide-feedback) | | 0d. | Standalone Executable |
    • [x]
    | [v1.0.0 release binaries](https://github.com/Zeeve-App/larch/releases/tag/v1.0.0) | Binary for linux x64 platform and source code archives. | | 1. | Initial Automation |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: We will build the core GUI driven automation to create and deploy the substrate based Zombie-net configurations including relaychain and parachain configurations. | | 2. | Configuration |
    • [ ]
    | (currently being tested, will give more feedback soon) | Spec: Parachain configuration is critical and complicated, we will provide the GUI based pick and choose for genesis parameters and chain configs to start with parachain setup for the desired Zombie-net | @@ -104,7 +104,7 @@ Summarizes the overall performance plus additional feedback/comments > ~~Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.~~ -- [ ] backend tests ~~pass~~ fail now (even if I change the `larchVersion` to `1.0.1` in the [tests](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/packages/backend/__tests__/routes.test.ts#L85)): +- [x] backend tests ~~pass~~ ~~fail now (even if I change the `larchVersion` to `1.0.1` in the [tests](https://github.com/Zeeve-App/larch/blob/1220dc56b235f60b150741d1b394dad5791e0db6/packages/backend/__tests__/routes.test.ts#L85))~~ pass again, after installing podman: ```bash larch % npm run test @@ -131,13 +131,9 @@ Summarizes the overall performance plus additional feedback/comments sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). - ✓ __tests__/zombienet.test.ts (1 test) 1ms + ✓ __tests__/zombienet.test.ts (1 test) 2ms stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}} - error occurred - ❯ __tests__/module.providers.test.ts (3 tests | 1 failed) 11ms - ❯ __tests__/module.providers.test.ts > Podman > should get Podman cleanup - → promise rejected "Error: spawn podman ENOENT" instead of resolving stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). stdout | unknown test @@ -170,142 +166,36 @@ Summarizes the overall performance plus additional feedback/comments POST /api/larch/user_operation/list GET /api/larch/version app is listening on port 9000 - ❯ __tests__/routes.test.ts (22 tests | 1 failed) 58ms - ❯ __tests__/routes.test.ts > Version route endpoint > check for response and the type of response - → expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 265920, Percent downloaded: 0.14 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 1733952, Percent downloaded: 0.93 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 5908800, Percent downloaded: 3.15 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 10107584, Percent downloaded: 5.39 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 14213120, Percent downloaded: 7.59 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 18578240, Percent downloaded: 9.92 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 23181504, Percent downloaded: 12.37 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 27754560, Percent downloaded: 14.81 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 32569536, Percent downloaded: 17.38 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 37470208, Percent downloaded: 20.00 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 42402496, Percent downloaded: 22.63 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 47400192, Percent downloaded: 25.30 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 52286912, Percent downloaded: 27.91 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 57603456, Percent downloaded: 30.75 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 62858240, Percent downloaded: 33.55 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 68130688, Percent downloaded: 36.37 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 73531584, Percent downloaded: 39.25 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 78399488, Percent downloaded: 41.85 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 83758848, Percent downloaded: 44.71 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 88818304, Percent downloaded: 47.41 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 94427200, Percent downloaded: 50.40 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 99853376, Percent downloaded: 53.30 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 105449664, Percent downloaded: 56.28 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 110970304, Percent downloaded: 59.23 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 116431744, Percent downloaded: 62.15 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 121982656, Percent downloaded: 65.11 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 127532288, Percent downloaded: 68.07 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 132945920, Percent downloaded: 70.96 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 138574912, Percent downloaded: 73.97 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 144123264, Percent downloaded: 76.93 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 149664064, Percent downloaded: 79.88 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 155072640, Percent downloaded: 82.77 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 160602112, Percent downloaded: 85.72 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 166243712, Percent downloaded: 88.73 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 171833728, Percent downloaded: 91.72 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 177389632, Percent downloaded: 94.68 + ✓ __tests__/routes.test.ts (22 tests) 58ms + stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup + { + id: '0b4a3864-3da8-439d-b8ab-ea70452df428', + intention: 'NETWORK_CLEANUP', + relatedId: 'zombie-6b302120', + command: 'podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}}', + stdError: 'Q2Fubm90IGNvbm5lY3QgdG8gUG9kbWFuLiBQbGVhc2UgdmVyaWZ5IHlvdXIgY29ubmVjdGlvbiB0byB0aGUgTGludXggc3lzdGVtIHVzaW5nIGBwb2RtYW4gc3lzdGVtIGNvbm5lY3Rpb24gbGlzdGAsIG9yIHRyeSBgcG9kbWFuIG1hY2hpbmUgaW5pdGAgYW5kIGBwb2RtYW4gbWFjaGluZSBzdGFydGAgdG8gbWFuYWdlIGEgbmV3IExpbnV4IFZNCkVycm9yOiB1bmFibGUgdG8gY29ubmVjdCB0byBQb2RtYW4gc29ja2V0OiBHZXQgImh0dHA6Ly9kL3Y0LjUuMS9saWJwb2QvX3BpbmciOiBkaWFsIHVuaXggLy8vdmFyL2ZvbGRlcnMvZnAvYzluc2JjMWQ2X3FndmsyNHdmZGY5eWMwMDAwMGduL1QvcG9kbWFuLXJ1bi0tMS9wb2RtYW4vcG9kbWFuLnNvY2s6IGNvbm5lY3Q6IG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK', + stdOutput: '', + statusCode: 125, + createdAt: '2023-07-12 12:15:53' + } + ✓ __tests__/module.providers.test.ts (3 tests) 637ms stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 182892672, Percent downloaded: 97.62 - ✓ __tests__/utils.test.ts (4 tests) 16912ms + Total file size: 187351204, Current file size: 277679, Percent downloaded: 0.15 stdout | __tests__/utils.test.ts > file download > should download file Total file size: 187351204, Current file size: 187351204, Percent downloaded: 100.00 - ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ - FAIL __tests__/module.providers.test.ts > Podman > should get Podman cleanup - Error: promise rejected "Error: spawn podman ENOENT" instead of resolving - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ - FAIL __tests__/routes.test.ts > Version route endpoint > check for response and the type of response - AssertionError: expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } - - Expected - + Received - Object { - "result": Object { - - "larchVersion": "1.0.1", - + "larchVersion": "1.0.0", - "zombienetVersion": "1.3.43", - }, - "status": "success", - } - ❯ __tests__/routes.test.ts:81:22 - 79| expect(res && res.body && typeof res.body === 'object') - 80| expect(res.statusCode).toEqual(200) - 81| expect(res.body).toEqual({ - | ^ - 82| "status": "success", - 83| "result": { - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ - ⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ - - Vitest caught 1 unhandled error during the test run. - This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. - ⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ - Error: promise rejected "Error: spawn podman ENOENT" instead of resolving - ❯ ../../node_modules/@vitest/expect/dist/index.js:1267:21 - ❯ processTicksAndRejections node:internal/process/task_queues:95:5 - This error originated in "__tests__/module.providers.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. - The latest test that might've caused the error is "should check Zombie JSON for Zombienet network". It might mean one of the following: - - The error was thrown, while Vitest was running this test. - - This was the last recorded test before the error was thrown, if error originated after test finished its execution. - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ - Test Files 2 failed | 2 passed (4) - Tests 2 failed | 28 passed (30) - Errors 1 error - Start at 16:00:56 - Duration 17.07s (transform 119ms, setup 0ms, collect 487ms, tests 16.98s, environment 0ms, prepare 146ms) - npm ERR! Lifecycle script `test` failed with error: - npm ERR! Error: command failed - npm ERR! in workspace: larch-backend@1.0.1 - npm ERR! at location: /Users/xxx/repos/larch/packages/backend - - ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— - - > Lerna (powered by Nx) Ran target test for project larch-backend and 1 task(s) they depend on (17s) + Test Files 4 passed (4) + Tests 30 passed (30) + Start at 14:15:53 + Duration 10.47s (transform 122ms, setup 1ms, collect 487ms, tests 11.05s, environment 0ms, prepare 149ms) + + ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + + > Lerna (powered by Nx) Successfully ran target test for project larch-backend and 1 task it depends on (11s) - ✖ 1/2 failed - ✔ 1/2 succeeded [1 read from cache] + Nx read the output from the cache instead of running the command for 1 out of 2 tasks. ``` -- [ ] coverage also fails: +- [x] coverage ~~also fails~~ passes as well after installing podman, shows test coverage >50% in almost all of the files: ```bash larch % npm run coverage @@ -319,19 +209,15 @@ Summarizes the overall performance plus additional feedback/comments > larch-backend@1.0.1 coverage > vitest run --coverage - RUN v0.32.2 /Users/xxx/repos/larch/packages/backend + RUN v0.32.2 /Users/seraya/repos/larch/packages/backend Coverage enabled with v8 stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). - ✓ __tests__/zombienet.test.ts (1 test) 2ms stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}} - error occurred - ❯ __tests__/module.providers.test.ts (3 tests | 1 failed) 20ms - ❯ __tests__/module.providers.test.ts > Podman > should get Podman cleanup - → promise rejected "Error: spawn podman ENOENT" instead of resolving + ✓ __tests__/zombienet.test.ts (1 test) 2ms stdout | unknown test sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs https://knexjs.org/guide/query-builder.html#insert). stdout | unknown test @@ -364,97 +250,33 @@ Summarizes the overall performance plus additional feedback/comments POST /api/larch/user_operation/list GET /api/larch/version app is listening on port 9000 - ❯ __tests__/routes.test.ts (22 tests | 1 failed) 59ms - ❯ __tests__/routes.test.ts > Version route endpoint > check for response and the type of response - → expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 265920, Percent downloaded: 0.14 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 1765504, Percent downloaded: 0.94 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 9215296, Percent downloaded: 4.92 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 21394944, Percent downloaded: 11.42 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 31086528, Percent downloaded: 16.59 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 41959424, Percent downloaded: 22.40 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 52548288, Percent downloaded: 28.05 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 63514432, Percent downloaded: 33.90 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 73916992, Percent downloaded: 39.45 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 83616128, Percent downloaded: 44.63 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 95424064, Percent downloaded: 50.93 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 105266944, Percent downloaded: 56.19 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 115412416, Percent downloaded: 61.60 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 127290944, Percent downloaded: 67.94 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 137055872, Percent downloaded: 73.15 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 148368256, Percent downloaded: 79.19 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 158770944, Percent downloaded: 84.75 - stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 169967360, Percent downloaded: 90.72 + ✓ __tests__/routes.test.ts (22 tests) 52ms + stdout | __tests__/module.providers.test.ts > Podman > should get Podman cleanup + { + id: '08a5d876-1df3-43ba-a980-683e13acec76', + intention: 'NETWORK_CLEANUP', + relatedId: 'zombie-6b302120', + command: 'podman pod ps -f label=zombie-ns=zombie-6b302120 --format {{.Name}}', + stdError: 'Q2Fubm90IGNvbm5lY3QgdG8gUG9kbWFuLiBQbGVhc2UgdmVyaWZ5IHlvdXIgY29ubmVjdGlvbiB0byB0aGUgTGludXggc3lzdGVtIHVzaW5nIGBwb2RtYW4gc3lzdGVtIGNvbm5lY3Rpb24gbGlzdGAsIG9yIHRyeSBgcG9kbWFuIG1hY2hpbmUgaW5pdGAgYW5kIGBwb2RtYW4gbWFjaGluZSBzdGFydGAgdG8gbWFuYWdlIGEgbmV3IExpbnV4IFZNCkVycm9yOiB1bmFibGUgdG8gY29ubmVjdCB0byBQb2RtYW4gc29ja2V0OiBHZXQgImh0dHA6Ly9kL3Y0LjUuMS9saWJwb2QvX3BpbmciOiBkaWFsIHVuaXggLy8vdmFyL2ZvbGRlcnMvZnAvYzluc2JjMWQ2X3FndmsyNHdmZGY5eWMwMDAwMGduL1QvcG9kbWFuLXJ1bi0tMS9wb2RtYW4vcG9kbWFuLnNvY2s6IGNvbm5lY3Q6IG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK', + stdOutput: '', + statusCode: 125, + createdAt: '2023-07-12 12:18:35' + } + ✓ __tests__/module.providers.test.ts (3 tests) 642ms stdout | __tests__/utils.test.ts > file download > should download file - Total file size: 187351204, Current file size: 180028416, Percent downloaded: 96.09 + Total file size: 187351204, Current file size: 260565, Percent downloaded: 0.14 stdout | __tests__/utils.test.ts > file download > should download file Total file size: 187351204, Current file size: 187351204, Percent downloaded: 100.00 - ✓ __tests__/utils.test.ts (4 tests) 10333ms - ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯ - FAIL __tests__/module.providers.test.ts > Podman > should get Podman cleanup - Error: promise rejected "Error: spawn podman ENOENT" instead of resolving - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯ - FAIL __tests__/routes.test.ts > Version route endpoint > check for response and the type of response - AssertionError: expected { status: 'success', result: { …(2) } } to deeply equal { status: 'success', result: { …(2) } } - - Expected - + Received - Object { - "result": Object { - - "larchVersion": "1.0.1", - + "larchVersion": "1.0.0", - "zombienetVersion": "1.3.43", - }, - "status": "success", - } - ❯ __tests__/routes.test.ts:81:22 - 79| expect(res && res.body && typeof res.body === 'object') - 80| expect(res.statusCode).toEqual(200) - 81| expect(res.body).toEqual({ - | ^ - 82| "status": "success", - 83| "result": { - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯ - ⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ - - Vitest caught 1 unhandled error during the test run. - This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. - ⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯ - Error: promise rejected "Error: spawn podman ENOENT" instead of resolving - ❯ ../../node_modules/@vitest/expect/dist/index.js:1267:21 - ❯ processTicksAndRejections node:internal/process/task_queues:95:5 - This error originated in "__tests__/module.providers.test.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running. - The latest test that might've caused the error is "should check Zombie JSON for Zombienet network". It might mean one of the following: - - The error was thrown, while Vitest was running this test. - - This was the last recorded test before the error was thrown, if error originated after test finished its execution. - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ - Test Files 2 failed | 2 passed (4) - Tests 2 failed | 28 passed (30) - Errors 1 error - Start at 18:02:25 - Duration 10.53s (transform 150ms, setup 0ms, collect 613ms, tests 10.41s, environment 0ms, prepare 197ms) + ✓ __tests__/utils.test.ts (4 tests) 10153ms + Test Files 4 passed (4) + Tests 30 passed (30) + Start at 14:18:34 + Duration 10.34s (transform 114ms, setup 0ms, collect 508ms, tests 10.85s, environment 0ms, prepare 175ms) % Coverage report from v8 -------------------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -------------------|---------|----------|---------|---------|------------------- - All files | 79.33 | 60.86 | 70.79 | 79.33 | + All files | 80.45 | 62.23 | 72.56 | 80.45 | src | 91.4 | 80 | 100 | 91.4 | config.ts | 100 | 100 | 100 | 100 | server.ts | 86.9 | 80 | 100 | 86.9 | 43,66-75 @@ -479,15 +301,15 @@ Summarizes the overall performance plus additional feedback/comments .../larch/version | 96.36 | 50 | 100 | 96.36 | controllers.ts | 93.75 | 50 | 100 | 93.75 | 30-31 routes.ts | 100 | 100 | 100 | 100 | - src/modules | 54.09 | 55 | 41.17 | 54.09 | - exec_run.ts | 63.54 | 66.66 | 66.66 | 63.54 | ...63,70-78,86-96 + src/modules | 58.56 | 52.17 | 41.17 | 58.56 | + exec_run.ts | 82.29 | 58.33 | 66.66 | 82.29 | ...63,81-82,93-96 network.ts | 45.06 | 37.5 | 50 | 45.06 | ...43-154,157-162 ..._operation.ts | 100 | 100 | 100 | 100 | zombienet.ts | 45.04 | 50 | 14.28 | 45.04 | ...,76-98,101-111 - src/modules/db | 97.77 | 66.66 | 100 | 97.77 | - sqlite.ts | 97.77 | 66.66 | 100 | 97.77 | 41 - ...modules/models | 80.3 | 60.31 | 65.95 | 80.3 | - exec_run.ts | 77.52 | 64.7 | 60 | 77.52 | ...56-159,162-178 + src/modules/db | 100 | 100 | 100 | 100 | + sqlite.ts | 100 | 100 | 100 | 100 | + ...modules/models | 81.83 | 63.49 | 70.21 | 81.83 | + exec_run.ts | 82.58 | 76.47 | 73.33 | 82.58 | ...56-159,162-178 network.ts | 69.59 | 53.33 | 53.84 | 69.59 | ...19-126,167-171 template.ts | 90.55 | 56.25 | 77.77 | 90.55 | 71-78,88-91 ..._operation.ts | 89.38 | 66.66 | 80 | 89.38 | 59-66,76-79 @@ -503,15 +325,8 @@ Summarizes the overall performance plus additional feedback/comments time.ts | 100 | 100 | 100 | 100 | validation.ts | 100 | 100 | 100 | 100 | -------------------|---------|----------|---------|---------|------------------- - npm ERR! Lifecycle script `coverage` failed with error: - npm ERR! Error: command failed - npm ERR! in workspace: larch-backend@1.0.1 - npm ERR! at location: /Users/xxx/repos/larch/packages/backend - ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— + ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— - > Lerna (powered by Nx) Ran target coverage for project larch-backend (11s) - - ✖ 1/1 failed - ✔ 0/1 succeeded [0 read from cache] + > Lerna (powered by Nx) Successfully ran target coverage for project larch-backend (11s) ``` \ No newline at end of file From 49b77a6e620ec433de90f556ad6207ed5681f87a Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Wed, 12 Jul 2023 17:39:46 +0300 Subject: [PATCH 239/253] Delete silent_data-milestone_1.md --- silent_data-milestone_1.md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 silent_data-milestone_1.md diff --git a/silent_data-milestone_1.md b/silent_data-milestone_1.md deleted file mode 100644 index a4286e00c..000000000 --- a/silent_data-milestone_1.md +++ /dev/null @@ -1,25 +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:** [Silent Data Polkadot Integration ](https://github.com/annazambon/Grants-Program/blob/master/project_silentdata.md) -* **Milestone Number:** 1 - -**Context** - -Silent Data is a platform for proving properties of private off-chain data in blockchain smart contract applications. This milestone extends Silent Data to support Substrate based blockchains, with Polkadot being the main focus. The Silent Data web application now includes an integration with the polkadot{.js} wallet. Support for Sr25519 and Secp256k1 signatures has been added to allow signature verification in either ink! smart contracts or Substrate pallets. - -In order to improve the developer experience a Node.js library for interacting with the Silent Data API has been developed. We have also created both an example ink! smart contract and Substrate pallet to demonstrate how Silent Data can be used to securely provide off-chain data to blockchain applications. - -**Deliverables** - -| Number | Deliverable | Link | Notes | -| ------------- | ------------- | ------------- |------------- | -| 0a. | License |[Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
    [Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE) | ...| -| 0b. | Documentation |[Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
    [Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
    [Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md) | ...| -| 0c. | Testing Guide |[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing) | ...| -| 0d. | Docker |[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
    [Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node) | ...| -| 0e. | Article |[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| ...| -| 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| -| 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| -| 3. | Extension| ...| ...| From 53ff6d1d9d3e70562677f5a07c87f22359cebf6d Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Wed, 12 Jul 2023 17:41:11 +0300 Subject: [PATCH 240/253] Create silent_data-milestone_1.md --- deliveries/silent_data-milestone_1.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 deliveries/silent_data-milestone_1.md diff --git a/deliveries/silent_data-milestone_1.md b/deliveries/silent_data-milestone_1.md new file mode 100644 index 000000000..a4286e00c --- /dev/null +++ b/deliveries/silent_data-milestone_1.md @@ -0,0 +1,25 @@ +# 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:** [Silent Data Polkadot Integration ](https://github.com/annazambon/Grants-Program/blob/master/project_silentdata.md) +* **Milestone Number:** 1 + +**Context** + +Silent Data is a platform for proving properties of private off-chain data in blockchain smart contract applications. This milestone extends Silent Data to support Substrate based blockchains, with Polkadot being the main focus. The Silent Data web application now includes an integration with the polkadot{.js} wallet. Support for Sr25519 and Secp256k1 signatures has been added to allow signature verification in either ink! smart contracts or Substrate pallets. + +In order to improve the developer experience a Node.js library for interacting with the Silent Data API has been developed. We have also created both an example ink! smart contract and Substrate pallet to demonstrate how Silent Data can be used to securely provide off-chain data to blockchain applications. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0a. | License |[Node.js library](https://github.com/appliedblockchain/silentdata-node-public/blob/main/LICENSE)
    [Smart contract](https://github.com/appliedblockchain/silentdata-polkadot-public/blob/main/LICENSE) | ...| +| 0b. | Documentation |[Silent Data whitepaper](https://www.linkedin.com/smart-links/AQEE0cyaT_nw0g)
    [Node.js library](https://github.com/appliedblockchain/silentdata-node/blob/main/README.md)
    [Smart contract](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/README.md) | ...| +| 0c. | Testing Guide |[Guide](https://docs.google.com/document/d/1B5woRIl_ZNuahx007V6nXmjW3_Ne4aQ4kVFB-I_Bu0M/edit?usp=sharing) | ...| +| 0d. | Docker |[Node.js library usage example](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/examples/Dockerfile)
    [Silent Data pallet](https://github.com/appliedblockchain/silentdata-polkadot/blob/main/docker/Dockerfile.node) | ...| +| 0e. | Article |[Polkadot Foundation Partnership Silent Data](https://www.linkedin.com/pulse/polkadot-foundation-partnership-silent-data-silentdata)| ...| +| 1. | Library |[silentdata-node](https://github.com/appliedblockchain/silentdata-node) | ...| +| 2. | Smart Contract |[silentdata-polkadot](https://github.com/appliedblockchain/silentdata-polkadot) | ...| +| 3. | Extension| ...| ...| From 598771dc436514210a0eb89271315971ea8b5a4d Mon Sep 17 00:00:00 2001 From: dastansam Date: Thu, 13 Jul 2023 23:39:55 +0600 Subject: [PATCH 241/253] Add evaluation --- evaluations/supersig_2_dastansam.md | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 evaluations/supersig_2_dastansam.md diff --git a/evaluations/supersig_2_dastansam.md b/evaluations/supersig_2_dastansam.md new file mode 100644 index 000000000..e68c5fe7c --- /dev/null +++ b/evaluations/supersig_2_dastansam.md @@ -0,0 +1,34 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/supersig_fellowship.md +- **Milestone:** 2 +- **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) +- **Previously successfully merged evaluation:** [Milestone 1] + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| -----: | ----------- | ------------- | ---------- | +| 0a. | License | Apache 2.0 | | Correct license. | +| 0b. | Documentation | https://github.com/decentration/supersig-ui#supersig-ui, https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f5367 | Article link returns 404 error. README files are present and provide good coverage of the repositories. | +| 0c. | e2e workflow tester | https://github.com/decentration/supersig-ui | Test is provided and they pass. Screenshot attached below. | +| 0d. | Docker | https://github.com/decentration/supersig-ui#docker | Docker image is provided and it runs successfully. | +| 0e. | Article and Video | https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f53679, https://www.loom.com/share/6c96b98b437e439ca1bd251ec0c2b937?sid=5854ef8b-a579-45a0-9702-6cf60f5277f8 | Article and video is provided. It helps a lot to review the deliverables. | +| 1. | **Supersig UI** | https://github.com/decentration/supersig-ui | UI looks smooth and easy to navigate. I was able to run it both natively and with Docker image. Screenshots attached below. | +| 2. | Substrate Chain | https://github.com/decentration/substrate-supersig-template/tree/v0.9.37-fix-unbounded | Node compiles and runs. However, e2e workflow tests are not passing when connected to the local node. | +| 3. | Polkadot JS Apps UI Fork | https://github.com/decentration/apps/tree/main-fellowship-1 | Explorer app is forked and deployed at https://apps.decentration.org | + +## General Notes + +In general, it's well documented, easy to follow and UI looks smooth. One minor issue is the invalid link in the documentation, but the valid one is provided below, so it's not a big deal. The only thing to address is the failing e2e workflow tests when connected to the local node. + +## Screenshots + +### Supersig UI + +### Supersig UI with local node + +### e2e workflow tester remote chain + +### e2e workflow tester local chain From 649f02fd75b596a88f6daf895e6ef26c58d10829 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Thu, 13 Jul 2023 20:48:26 +0300 Subject: [PATCH 242/253] Update supersig_2_dastansam.md --- evaluations/supersig_2_dastansam.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/evaluations/supersig_2_dastansam.md b/evaluations/supersig_2_dastansam.md index e68c5fe7c..ca70cf0d1 100644 --- a/evaluations/supersig_2_dastansam.md +++ b/evaluations/supersig_2_dastansam.md @@ -1,10 +1,10 @@ # Evaluation - **Status:** In Progress -- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/supersig_fellowship.md +- **Application Document:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/supersig_fellowship.md) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) -- **Previously successfully merged evaluation:** [Milestone 1] +- **Previously successfully merged evaluation:** [Milestone 1](https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/supersig_1_dsm-w3f.md) **Deliverables** @@ -12,7 +12,7 @@ | -----: | ----------- | ------------- | ---------- | | 0a. | License | Apache 2.0 | | Correct license. | | 0b. | Documentation | https://github.com/decentration/supersig-ui#supersig-ui, https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f5367 | Article link returns 404 error. README files are present and provide good coverage of the repositories. | -| 0c. | e2e workflow tester | https://github.com/decentration/supersig-ui | Test is provided and they pass. Screenshot attached below. | +| 0c. | e2e workflow tester | https://github.com/decentration/supersig-ui | Tests are provided and they pass on remote chain. Screenshot attached below. | | 0d. | Docker | https://github.com/decentration/supersig-ui#docker | Docker image is provided and it runs successfully. | | 0e. | Article and Video | https://decentration.medium.com/supersig-ui-simply-manage-your-orgs-250769f53679, https://www.loom.com/share/6c96b98b437e439ca1bd251ec0c2b937?sid=5854ef8b-a579-45a0-9702-6cf60f5277f8 | Article and video is provided. It helps a lot to review the deliverables. | | 1. | **Supersig UI** | https://github.com/decentration/supersig-ui | UI looks smooth and easy to navigate. I was able to run it both natively and with Docker image. Screenshots attached below. | @@ -21,14 +21,30 @@ ## General Notes -In general, it's well documented, easy to follow and UI looks smooth. One minor issue is the invalid link in the documentation, but the valid one is provided below, so it's not a big deal. The only thing to address is the failing e2e workflow tests when connected to the local node. +In general, it's well documented, easy to follow and UI looks smooth. One minor issue is the invalid link in the documentation, but the valid one is provided below, so it's not a big deal. The only thing to address is the failing e2e workflow tests when connected to the local node. It fails with the following error: +```bash +⚪️ ProposalCreated +Proposal was not successfully created)api.tx.supersig.submitCall is not a function +``` + +I suspect this might be because I didn't add chain definitions to the `apps`, but it's marked as `optional` in the README, so I thought it should work without it. ## Screenshots ### Supersig UI +Connection to remote node + ### Supersig UI with local node + Connection to local node + + ### e2e workflow tester remote chain +Remote chain tests + ### e2e workflow tester local chain + +Local chain tests + From 615145f68d82a5df9ce7d4693d8be19dee0d41b1 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 13 Jul 2023 16:38:34 -0300 Subject: [PATCH 243/253] Create ink-pallet-benchmarking_3_dsm-w3f.md --- .../ink-pallet-benchmarking_3_dsm-w3f.md | 203 ++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 evaluations/ink-pallet-benchmarking_3_dsm-w3f.md diff --git a/evaluations/ink-pallet-benchmarking_3_dsm-w3f.md b/evaluations/ink-pallet-benchmarking_3_dsm-w3f.md new file mode 100644 index 000000000..6ecb5f57f --- /dev/null +++ b/evaluations/ink-pallet-benchmarking_3_dsm-w3f.md @@ -0,0 +1,203 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/ink-pallet-benchmarking-phase-2.md +- **Milestone:** 3 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| **0a.** | License |
    • [x]
    | Apache 2.0 / GPLv3 / MIT / Unlicense | | +| **0b.** | Documentation |
    • [ ]
    | [README](https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/README.md) | | +| **0c.** | Testing and Testing Guide |
    • [ ]
    | N/A | Not provided | +| **0d.** | Docker |
    • [x]
    | Not Applicable. | | +| 0e. | Article |
    • [ ]
    | https://talenticaall-my.sharepoint.com/:w:/g/personal/nikhil_desai_talentica_com/ESEnZ3pFvdhHi4_8VLlQLWYBKEhAuUz5_ee5gSPnKYMSkw?e=zZmrMS | Not fully evaluated yet. | +| 1. | Pallet CPU-intensive extrinsic |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/pallets/template/src/lib.rs | Not fully evaluated yet. | +| 2. | Ink! CPU-intensive function |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/test/lib.rs | Not fully evaluated yet. | +| 3. | Solidity-WASM and Solidity-Native CPU-intensive function |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/solidity-sample-contract/sample.sol | Not fully evaluated yet. | +| 4. | CPU-intensive benchmarks |
    • [ ]
    | https://talenticaall-my.sharepoint.com/:w:/g/personal/nikhil_desai_talentica_com/ESEnZ3pFvdhHi4_8VLlQLWYBKEhAuUz5_ee5gSPnKYMSkw?e=zZmrMS | Not fully evaluated yet. | +| 5. | Pallet cross-contract call |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/pallets/callee/src/lib.rs | Not fully evaluated yet. | +| 6. | Ink! cross-contract call |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/inner/lib.rs | Not fully evaluated yet. | +| 7. | cross-contract benchmarks |
    • [ ]
    | https://talenticaall-my.sharepoint.com/:w:/g/personal/nikhil_desai_talentica_com/ESEnZ3pFvdhHi4_8VLlQLWYBKEhAuUz5_ee5gSPnKYMSkw?e=zZmrMS | Not fully evaluated yet. | +| 8. | Solidity-WASM and Solidity-Native cross-contract call |
    • [ ]
    | Add another Solidity contract and invoke it from the sample Solidity contract. (Note: There are [unresolved issues](https://github.com/hyperledger/solang/issues/666) questioning the feasibility of cross-contract calls in Solidity-WASM and Solidity-Native. Nevertheless, an attempt will be made to see if it's possible. | | +| 9. | Pallet events |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/pallets/template/src/lib.rs | Not fully evaluated yet. | +| 10. | Ink! events |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/test/lib.rs | Not fully evaluated yet. | +| 11. | Solidity-WASM and Solidity-Native events |
    • [ ]
    | https://github.com/Nikhil-Desai-Talentica/substrate-node-template-benchmarking/blob/contracts-benchmarking/solidity-sample-contract/sample.sol | Not fully evaluated yet. | +| 12. | Benchmark events across implementations |
    • [ ]
    | https://talenticaall-my.sharepoint.com/:w:/g/personal/nikhil_desai_talentica_com/ESEnZ3pFvdhHi4_8VLlQLWYBKEhAuUz5_ee5gSPnKYMSkw?e=zZmrMS | Not fully evaluated yet. | + +## Evaluation V1 + +### Testing + +It wasn't provided a testing Guide, so I followed the [demo video](https://talenticaall-my.sharepoint.com/:v:/g/personal/nikhil_desai_talentica_com/Ea_GbRhTgKBAr1bdCRsT1ZwBvIwtZZrm5Fhkom49lYTMUQ?e=kfU4b4), considering this as a testing guide. + +When I ran the command `./target/release/node-template benchmark extrinsic --list` in the branch contracts-benchmarking, I received this error: + +``` +user@localhost:~/Documents/ink-pallet-benchmarking/substrate-node-template-benchmarking$ ./target/release/node-template benchmark extrinsic --list +2023-07-12 08:59:50 🔨 Initializing Genesis block/state (state: 0x322d…79dd, header-hash: 0x9e7c…0f64) +2023-07-12 08:59:50 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. + +==================== + +Version: 4.0.0-dev-4ada90b4ae0 + + 0: sp_panic_handler::set::{{closure}} + 1: as core::ops::function::Fn>::call + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/alloc/src/boxed.rs:2002:9 + std::panicking::rust_panic_with_hook + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:692:13 + 2: std::panicking::begin_panic_handler::{{closure}} + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:579:13 + 3: std::sys_common::backtrace::__rust_end_short_backtrace + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/sys_common/backtrace.rs:137:18 + 4: rust_begin_unwind + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:575:5 + 5: core::panicking::panic_fmt + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/core/src/panicking.rs:64:14 + 6: core::result::unwrap_failed + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/core/src/result.rs:1790:5 + 7: node_template::command::read_callee_contract_address + 8: node_template::command::run::{{closure}} + 9: node_template::command::run + 10: node_template::main + 11: std::sys_common::backtrace::__rust_begin_short_backtrace + 12: std::rt::lang_start::{{closure}} + 13: core::ops::function::impls:: for &F>::call_once + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/core/src/ops/function.rs:287:13 + std::panicking::try::do_call + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:483:40 + std::panicking::try + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:447:19 + std::panic::catch_unwind + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panic.rs:140:14 + std::rt::lang_start_internal::{{closure}} + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/rt.rs:148:48 + std::panicking::try::do_call + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:483:40 + std::panicking::try + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panicking.rs:447:19 + std::panic::catch_unwind + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/panic.rs:140:14 + std::rt::lang_start_internal + at /rustc/574b64a97f52162f965bc201e47f0af8279ca65d/library/std/src/rt.rs:148:20 + 14: main + 15: __libc_start_main + 16: _start + + +Thread 'main' panicked at 'failed to read 'callee_contract_address.txt': Os { code: 2, kind: NotFound, message: "No such file or directory" }', node/src/command.rs:21 + +This is a bug. Please report it at: + + support.anonymous.an +``` + +This problem prevented me to continue this part. + +I tested the branch solidity-native, and it worked without problems. + +``` +user@localhost:~/Documents/ink-pallet-benchmarking/asd/substrate-node-template-benchmarking$ ./target/release/frontier-template-node benchmark extrinsic --pallet native_solidity --extrinsic generic_call +2023-07-12 12:06:21 🔨 Initializing Genesis block/state (state: 0x52cf…b3cd, header-hash: 0x70e3…3ab1) +2023-07-12 12:06:21 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. +2023-07-12 12:06:21 Essential task `basic-block-import-worker` failed. Shutting down service. +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +d43593c715fdd31c61141abd04a99fd6822c8558 +8a50db1e0f9452cfd91be8dc004ceb11cb08832f +9ac1762f00000000000000000000000000000000000000000000000000000000000003e8 +2023-07-12 12:06:21 Running 10 warmups... +2023-07-12 12:06:21 Executing block 100 times +2023-07-12 12:06:21 Building block, this takes some time... +2023-07-12 12:06:22 Extrinsics per block: 174 +2023-07-12 12:06:22 Running 10 warmups... +2023-07-12 12:06:22 Executing block 100 times +2023-07-12 12:06:24 Executing a native_solidity::generic_call extrinsic takes[ns]: +Total: 13875562 +Min: 133445, Max: 197207 +Average: 138755, Median: 136566, Stddev: 7439.89 +Percentiles 99th, 95th, 75th: 152960, 149610, 139231 +``` + +It was added some unit tests in this application? If it was, let me know how to run them properly. + +### Code Quality + +I ran `cargo clippy` in both repositories and received some warnings, for example, in contracts-benchmarking. It isn't mandatory to fix. + +``` +user@localhost:~/Documents/ink-pallet-benchmarking/substrate-node-template-benchmarking$ cargo clippy +warning: redundant field names in struct initialization + --> pallets/callee/src/lib.rs:53:44 + | +53 | Self::deposit_event(Event::NumChanged { old: old, new: value }); + | ^^^^^^^^ help: replace it with: `old` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names + = note: `#[warn(clippy::redundant_field_names)]` on by default + +warning: unused import: `frame_support::inherent` + --> pallets/callee/src/lib.rs:12:6 + | +12 | use frame_support::inherent::*; + | ^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: `pallet-callee` (lib) generated 2 warnings (run `cargo clippy --fix --lib -p pallet-callee` to apply 1 suggestion) +warning: redundant field names in struct initialization + --> pallets/template/src/lib.rs:98:44 + | +98 | Self::deposit_event(Event::NumChanged { old: old, new: value }); + | ^^^^^^^^ help: replace it with: `old` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names + = note: `#[warn(clippy::redundant_field_names)]` on by default + +warning: unused variable: `fib_n` + --> pallets/template/src/lib.rs:151:8 + | +151 | let fib_n = fib(n); + | ^^^^^ help: if this is intentional, prefix it with an underscore: `_fib_n` + | + = note: `#[warn(unused_variables)]` on by default + +warning: unused variable: `odd_product_n` + --> pallets/template/src/lib.rs:161:8 + | +161 | let odd_product_n = odd_prod(n); + | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_odd_product_n` + +warning: unused variable: `triangle_number_n` + --> pallets/template/src/lib.rs:171:8 + | +171 | let triangle_number_n = triangle_num(n); + | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_triangle_number_n` + +warning: unused `std::result::Result` that must be used + --> pallets/template/src/lib.rs:189:4 + | +189 | pallet_callee::Pallet::::store_num(origin, value); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this `Result` may be an `Err` variant, which should be handled + = note: `#[warn(unused_must_use)]` on by default + +warning: `pallet-template` (lib) generated 5 warnings (run `cargo clippy --fix --lib -p pallet-template` to apply 4 suggestions) +``` From b8657d24f0ab1750d243e3b1308462e59854c143 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Thu, 13 Jul 2023 19:05:48 -0300 Subject: [PATCH 244/253] Create solang_developer_experience_improvments_2_dsm-w3f.md --- ...eloper_experience_improvments_2_dsm-w3f.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 evaluations/solang_developer_experience_improvments_2_dsm-w3f.md diff --git a/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md b/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md new file mode 100644 index 000000000..0a3cc9d36 --- /dev/null +++ b/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md @@ -0,0 +1,139 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Solang_developer_experience_improvements.md +- **Milestone:** 2 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- | ------------- |------------- | +| 0a. | License |
    • [x]
    | https://github.com/hyperledger/solang/blob/main/LICENSE | Apache-2.0 | +| 0b. | Documentation |
    • [x]
    | https://solang.readthedocs.io/en/latest/running.html#compiler-usage https://solang.readthedocs.io/en/latest/running.html#starting-a-new-project| | +| 0c. | Testing |
    • [ ]
    | https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs https://github.com/hyperledger/solang/blob/main/tests/cli.rs| Not fully evaluated yet | +| **0d.** | Docker |
    • [x]
    | There will be no independent DockerFiler for this milestone, because Solang has its own DockerFile, which can be used to test the mentioned functionalities.| +| 0e. | Article |
    • [x]
    | https://forum.polkadot.network/t/introducing-solang-improvements/3361 | +| 1. | Implement [Solang projects](https://github.com/hyperledger/solang/milestone/6) |
    • [ ]
    | https://github.com/hyperledger/solang/pull/1316 https://github.com/hyperledger/solang/pull/1347 https://github.com/hyperledger/solang/pull/1392 | Not fully evaluated yet | + +## Evaluation V1 + +## License + +Apache License 2.0 ok + +## Documentation + +### Installation and compiler usage + +I followed the installation and compiler usage documentation, I achieved the expected results installing through "Download from a Docker container" as well as "Build using Dockerfile" docs. In the usage section running Solang using a container also worked as expected. + +In the Solang README.md, maybe the compile command for docker should include the "/examples/polkadot" path as follows: + +```sh +docker run --rm -it --volume $(pwd)/examples/polkadot:/sources ghcr.io/hyperledger/solang compile -v -o /sources --target polkadot /sources/flipper.sol +``` + +After installing the LLVM pre-built libraries, build Solang using `cargo build --release` worked as expected. Then, running `target/release/solang compile -v --target solana examples/solana/flipper.sol` also worked. For the other possible values (`[possible values: solana, polkadot, evm]`) it was ok as well. + +I've also tried to install it by Downloading the binaries, after downloading the Linux x86-64 release and adding it to `$PATH`, when executing `solang-linux-x86-64` I get the following error: + +```sh +chmod +x solang-linux-x86-64 +solang-linux-x86-64 + +solang-linux-x86-64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by solang-linux-x86-64) +solang-linux-x86-64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by solang-linux-x86-64) +solang-linux-x86-64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by solang-linux-x86-64) +solang-linux-x86-64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by solang-linux-x86-64) +solang-linux-x86-64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by solang-linux-x86-64) +solang-linux-x86-64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by solang-linux-x86-64) +``` + +I've executed `sudo apt install libstdc++6 libc6 -y` but it didn't solve the issue. Since I could build Solang from source, it wasn't a big concern and just continued using the built CLI. That error using the `solang-linux-x86-64` binary may be just some local issue. The installation, compiler usage, and starting a new project with `solang.toml` configuration are ok. + +### Starting a new project + +Executing `target/release/solang new --target solana my_project` creates the solang project as expected, by creating a `solang.toml` configuration file correctly and `flipper.sol` contract in my_project directory. After that, running `target/release/solang compile` works and uses the `solang.toml` configuration as expected, it logs "info: reading default config from toml file" in the console. Passing `polkadot` as the target it's also creating a project and compiling it correctly. Changing `verbose = true` under `[compiler-output]` seems not to be taking any effect, it is compiling as if it was configured as false. + +## Testing + +- Running `cargo test` showed that one test case failed in the ethereum_solidity_tests test. All the remaining tests have passed ok, including the `cli.rs` tests. See the test result: + + ```sh + ... + test basic_compilation_from_toml ... ok + test create_output_dir ... ok + ... + test polkadot_specific ... ok + test polkadot_general ... ok + + test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.09s + + Running tests/evm.rs (target/debug/deps/evm-fcd79123e1e1cf77) + + running 5 tests + test eth_builtins ... ok + test selfdestruct ... ok + test try_catch ... ok + test address ... ok + test ethereum_solidity_tests ... FAILED + + failures: + + ---- ethereum_solidity_tests stdout ---- + thread '' panicked at 'called `Result::unwrap()` on an `Err` value: Error { depth: 0, inner: Io { path: Some("/home/user/w3f/solang/testdata/solidity/test/libsolidity/semanticTests"), err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }', tests/evm.rs:193:27 + note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + thread '' panicked at 'called `Result::unwrap()` on an `Err` value: Error { depth: 0, inner: Io { path: Some("/home/user/w3f/solang/testdata/solidity/test/libsolidity/syntaxTests"), err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }', tests/evm.rs:193:27 + + + failures: + ethereum_solidity_tests + + test result: FAILED. 4 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s + + error: test failed, to rerun pass `--test evm` + ``` + +- Got an error running `cargo tarpaulin` to get tests coverage: + + ```sh + ... + Compiling secp256k1 v0.27.0 + Compiling ink_engine v4.2.1 + Compiling ink_env v4.2.1 + Compiling wasm-opt v0.112.0 + error: Broken pipe (os error 32) + warning: build failed, waiting for other jobs to finish... + error: could not compile `solang` (test "builtins") due to 2 previous errors + error: could not compile `solang` (test "undefined_variable_detection") due to 2 previous errors + error: could not compile `solang` (lib test) due to 2 previous errors + error: could not compile `solang` (test "solana") due to 2 previous errors + Jul 12 12:20:37.706 ERROR cargo_tarpaulin: Failed to compile tests! + error: linking with `cc` failed: exit status: 1 + ``` + +## Docker + +Ok, both either using ghcr.io/hyperledger/solang:latest or building Solang using Dockerfile is working as expected. + +## Article + +The article "Introducing Solang Improvements" describes the CLI usability improvements with the `solang.toml` ok, the CLI it's working with the configuration as expected. + +## Implement Solang projects + +Ok, the substrate target configuration issue solved at https://github.com/hyperledger/solang/issues/1084 + +## Code quality + +Running `cargo clippy` showed a result without any suggestions or warnings, result ok: + +```sh +... +Checking ink_storage_traits v4.2.1 +Checking ink_engine v4.2.1 +Checking ink_env v4.2.1 +Checking tower-lsp v0.19.0 +Checking wasm-opt v0.112.0 +Finished dev [unoptimized + debuginfo] target(s) in 2m 41s +``` From b4a5b0815ad8595f3d078dd4580e44e557cebde5 Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Fri, 14 Jul 2023 06:58:46 +0300 Subject: [PATCH 245/253] Update supersig_2_dastansam.md --- evaluations/supersig_2_dastansam.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/evaluations/supersig_2_dastansam.md b/evaluations/supersig_2_dastansam.md index ca70cf0d1..c64f3701f 100644 --- a/evaluations/supersig_2_dastansam.md +++ b/evaluations/supersig_2_dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/supersig_fellowship.md) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) @@ -19,7 +19,7 @@ | 2. | Substrate Chain | https://github.com/decentration/substrate-supersig-template/tree/v0.9.37-fix-unbounded | Node compiles and runs. However, e2e workflow tests are not passing when connected to the local node. | | 3. | Polkadot JS Apps UI Fork | https://github.com/decentration/apps/tree/main-fellowship-1 | Explorer app is forked and deployed at https://apps.decentration.org | -## General Notes +## Evaluation v1 In general, it's well documented, easy to follow and UI looks smooth. One minor issue is the invalid link in the documentation, but the valid one is provided below, so it's not a big deal. The only thing to address is the failing e2e workflow tests when connected to the local node. It fails with the following error: ```bash @@ -48,3 +48,6 @@ I suspect this might be because I didn't add chain definitions to the `apps`, bu Local chain tests +## Evaluation v2 + +Running `cargo update` before compiling the node fixes failing tests on a local chain. From d2d280bca548ec3f3b98d487a850650f6ea2bd43 Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 14 Jul 2023 10:47:36 -0300 Subject: [PATCH 246/253] Update solang_developer_experience_improvments_2_dsm-w3f.md --- ...developer_experience_improvments_2_dsm-w3f.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md b/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md index 0a3cc9d36..05d92872d 100644 --- a/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md +++ b/evaluations/solang_developer_experience_improvments_2_dsm-w3f.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Solang_developer_experience_improvements.md - **Milestone:** 2 - **Kusama Identity:** Address @@ -10,10 +10,20 @@ | ------------- | ------------- | ------------- | ------------- |------------- | | 0a. | License |
    • [x]
    | https://github.com/hyperledger/solang/blob/main/LICENSE | Apache-2.0 | | 0b. | Documentation |
    • [x]
    | https://solang.readthedocs.io/en/latest/running.html#compiler-usage https://solang.readthedocs.io/en/latest/running.html#starting-a-new-project| | -| 0c. | Testing |
    • [ ]
    | https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs https://github.com/hyperledger/solang/blob/main/tests/cli.rs| Not fully evaluated yet | +| 0c. | Testing |
    • [x]
    | https://github.com/hyperledger/solang/blob/main/src/bin/cli/test.rs https://github.com/hyperledger/solang/blob/main/tests/cli.rs| | | **0d.** | Docker |
    • [x]
    | There will be no independent DockerFiler for this milestone, because Solang has its own DockerFile, which can be used to test the mentioned functionalities.| | 0e. | Article |
    • [x]
    | https://forum.polkadot.network/t/introducing-solang-improvements/3361 | -| 1. | Implement [Solang projects](https://github.com/hyperledger/solang/milestone/6) |
    • [ ]
    | https://github.com/hyperledger/solang/pull/1316 https://github.com/hyperledger/solang/pull/1347 https://github.com/hyperledger/solang/pull/1392 | Not fully evaluated yet | +| 1. | Implement [Solang projects](https://github.com/hyperledger/solang/milestone/6) |
    • [x]
    | https://github.com/hyperledger/solang/pull/1316 https://github.com/hyperledger/solang/pull/1347 https://github.com/hyperledger/solang/pull/1392 | | + +## Evaluation V2 + +### Configuration file + +The PR fixed the `verbose` flag issue in the `solang.toml` file. + +## Testing + +All tests are passing during the `cargo test` execution. Testing is ok. ## Evaluation V1 From 119fb34b1579c6439a9efe7f3ce655798c8c3ca8 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 17 Jul 2023 17:42:51 -0400 Subject: [PATCH 247/253] Update kuma-cross-chain-wallet_2_keeganquigley.md --- evaluations/kuma-cross-chain-wallet_2_keeganquigley.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md index b8348b66e..79afa63b6 100644 --- a/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_2_keeganquigley.md @@ -2,7 +2,7 @@ - **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md -- **Milestone:** 1 +- **Milestone:** 2 - **Previously successfully merged evaluation:** All by keeganquigley | Number | Deliverable | Accepted | Link | Notes | From 041fde95a33c8b2dfcec710e9031ba9d11dbfd02 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 17 Jul 2023 17:49:22 -0400 Subject: [PATCH 248/253] Create kuma-cross-chain-wallet_3_keeganquigley.md --- ...kuma-cross-chain-wallet_3_keeganquigley.md | 664 ++++++++++++++++++ 1 file changed, 664 insertions(+) create mode 100644 evaluations/kuma-cross-chain-wallet_3_keeganquigley.md diff --git a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md new file mode 100644 index 000000000..3e53968bc --- /dev/null +++ b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md @@ -0,0 +1,664 @@ +# Evaluation + +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md +- **Milestone:** 3 +- **Previously successfully merged evaluation:** All by keeganquigley + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- |------------- | ------------- | +| 0a. | License |
    • [x]
    | https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | +| 0b. | Documentation |
    • [x]
    | https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | | +| 0c. | Testing Guide |
    • [x]
    | https://github.com/blockcoders/kuma-wallet#running-locally | | +| 1. | XCM/XVM standard for transfers |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/constants/xcm.ts) | | +| 2. | Call to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/pages/callContract/CallContract.tsx) | | +| 3. | Transactions to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/providers/txProvider/TxProvider.tsx) | | +| 4. | Open Beta |
    • [x]
    | [Link1](https://kumawallet.io/), [Link2](https://chrome.google.com/webstore/detail/kuma-wallet/hbinmkhlebcnghpikoekkbeljbealbje), [Link3](https://addons.mozilla.org/en-US/firefox/addon/kuma-wallet/), [Link4](https://twitter.com/getkuma/status/1678075363165888513) | | + +# General Notes + +## Tests +```js + ✓ src/accounts/AccountManager.test.ts (20) + ✓ AccountManager (20) + ✓ formatAddress (2) + ✓ should format evm account + ✓ should return the same address + ✓ should get valid name + ✓ should create account + ✓ addAccount (1) + ✓ should return created account + ✓ importAccount (1) + ✓ should add imported evm account + ✓ derive (2) + ✓ should return derived account + ✓ should throw error + ✓ getAccount (2) + ✓ should return account by key + ✓ should show error + ✓ changeName (2) + ✓ should change name + ✓ should return error + ✓ getAll (2) + ✓ shoudl return all wasm accounts + ✓ shoudl return undefined + ✓ areAccountsInitialized (1) + ✓ should return true + ✓ saveBackup (3) + ✓ should save backup + ✓ should throw recovery_phrase_required error + ✓ should throw invalid_recovery_phrase error + ✓ restorePassword (2) + ✓ should restore password + ✓ should throw backup_not_found error + ✓ src/Extension.test.ts (66) + ✓ Extension (66) + ✓ validatePasswordFormat (3) + ✓ should be valid + ✓ should return password_required error + ✓ should return password_invalid error + ✓ validatePrivateKeyOrSeedFormat (3) + ✓ should be valid + ✓ should return private_key_or_seed_required error + ✓ should return private_key_or_seed_invalid error + ✓ signUp (2) + ✓ should signUp + ✓ should throw error + ✓ should be authorized + ✓ createAccounts (2) + ✓ should create accounts + ✓ should create accounts with isSignUp in false + ✓ importAccount (2) + ✓ should import account + ✓ should import account with isSignUp in false + ✓ should restore password + ✓ should remove key + ✓ should change name + ✓ resetWallet (2) + ✓ should reset wallet + ✓ should throw error + ✓ signIn + ✓ should be signed up + ✓ areAccountsInitialized (3) + ✓ should true + ✓ should return false + ✓ should return with catch error false + ✓ should sign out + ✓ should session be active + ✓ showKey (2) + ✓ should return key + ✓ should return undefined + ✓ get account + ✓ getAllAccounts (2) + ✓ should return all accounts + ✓ should return empty array + ✓ should derive account + ✓ should set network + ✓ should return selected account + ✓ should return selected network + ✓ should get network + ✓ getGeneralSettings (2) + ✓ should return general settings + ✓ should return error + ✓ getAdvancedSettings (2) + ✓ should return general settings + ✓ should return error + ✓ getSetting (2) + ✓ should return general settings + ✓ should return error + ✓ updateSetting (2) + ✓ should return settings + ✓ should return error + ✓ getContacts (2) + ✓ should return contacts + ✓ should return error + ✓ getRegistryAddresses (4) + ✓ should return registry addresses + ✓ should return registry error + ✓ should return network error + ✓ should return network error + ✓ save contact (1) + ✓ should save contact + ✓ removeContact + ✓ getActivity + ✓ getAllChains (2) + ✓ should return all chains + ✓ should return error + ✓ saveCustomChain + ✓ removeCustomChain + ✓ getXCMChains (3) + ✓ should return xcm chains + ✓ should return chain error + ✓ should return chains error + ✓ addActivity + ✓ updateActivity + ✓ addAsset + ✓ getAssetsByChain + ✓ getTrustedSites + ✓ addTrustedSite + ✓ removeTrustedSite + ✓ src/providers/assetProvider/AssetProvider.test.tsx (7) + ✓ AssetProvider (7) + ✓ reducer (6) + ✓ should loading assets + ✓ should end loading + ✓ should set assets + ✓ should update assets + ✓ should update one assets + ✓ shoudn't update one assets + ✓ wasm assets (1) + ✓ should load assests + ✓ src/providers/networkProvider/NetworkProvider.test.tsx (18) + ✓ NetworkProvider (18) + ✓ reducer (8) + ✓ init + ✓ select-network (3) + ✓ with rpc and type + ✓ without rpc + ✓ without type + ✓ set-api (3) + ✓ with rpc + ✓ without rpc + ✓ default + ✓ refresh-networks (1) + ✓ should refresh networks + ✓ useEffect (2) + ✓ should init + ✓ should show error + ✓ setSelectedNetwork (2) + ✓ should set new evm chain + ✓ should show error + ✓ getSelectedNetwork (2) + ✓ should getSelectedNetwork + ✓ should show error + ✓ setNewRpc (2) + ✓ should keep the current rpc + ✓ should set new rpc if chain support WASM and EVM + ✓ refreshNetworks (2) + ✓ should refresh networks + ✓ should show error + ✓ src/storage/entities/activity/Activity.test.ts (14) + ✓ Activity (14) + ✓ shoud instance + ✓ should init + ✓ addRecord (3) + ✓ should add record + ✓ should throw Activity.get error + ✓ should throw SelectedAccount.get error + ✓ getRecords (3) + ✓ should throw SelectedAccount.get error + ✓ should throw Activity.get error + ✓ should throw Activity.get error + ✓ update record status (4) + ✓ should update record status + ✓ should throw SelectedAccount.get error + ✓ should throw Activity.get error + ✓ should throw activity.data error + ✓ add record + ✓ get records + ✓ src/storage/entities/Vault.test.ts (15) + ✓ Vault (15) + ✓ init (3) + ✓ should init keyrings + ✓ should throw vault_not_found error by Storage error + ✓ should throw vault_not_found error by Auth error + ✓ alreadySignedUp (2) + ✓ should return true + ✓ should return undefined + ✓ getEncryptedVault (2) + ✓ should return stored + ✓ should return undefined + ✓ set + ✓ should save keyring + ✓ getKeyring (3) + ✓ should return keyring + ✓ should call addHDKeyring + ✓ should throw error + ✓ addHDKeyring (2) + ✓ should add WASM hd keyring + ✓ should add EVM hd keyring + ✓ is invalid + ✓ src/pages/send/components/WasmForm.test.tsx (3) 3101ms + ✓ WasmForm (3) 3101ms + ✓ should call confirmTx 1064ms + ✓ should call confirmTx with created asset 1016ms + ✓ should call confirmTx with xcm 1018ms + ✓ src/storage/entities/registry/Registry.test.ts (21) + ✓ Registry (21) + ✓ should instance + ✓ shoud get default value + ✓ should init + ✓ add contact (2) + ✓ should add contact + ✓ should throw error + ✓ get contact (2) + ✓ should get contact + ✓ should throw error + ✓ change contact name (3) + ✓ should change contact name + ✓ should throw registry error + ✓ should throw contract error + ✓ remove contact (2) + ✓ should remove contact + ✓ should throw registry error + ✓ add recent (2) + ✓ should add recent + ✓ should throw registry error + ✓ get recent (2) + ✓ should get recent + ✓ should throw registry error + ✓ should add contact + ✓ get contact + ✓ add recent + ✓ get recent + ✓ get all contacts + ✓ src/providers/authProvider/AuthProvider.test.tsx (12) + ✓ AuthProvider (12) + ✓ reducer + ✓ createAccount (2) + ✓ should return true + ✓ should return seed_required error + ✓ importAccount (4) + ✓ should return true + ✓ should return password_required error + ✓ should return private_key_or_seed_required error + ✓ should return account_type_required error + ✓ deriveAccount (2) + ✓ should return true + ✓ should return account_type_required error + ✓ restoreAccount (3) + ✓ should return true + ✓ should return recovery_phrase_required error + ✓ should return password_required error + ✓ src/providers/txProvider/TxProvider.test.tsx (2) + ✓ TxProvider (2) + ✓ should load wasm activity + ✓ should load evm activity + ✓ src/storage/Auth.test.ts (19) + ✓ Auth (19) + ✓ should instance + ✓ should return isUnlocked + ✓ should return password + ✓ should return isSessionActive + ✓ should return isSessionActive + ✓ should return false if there is no password + ✓ should return true if there is a password + ✓ loadAuthFromCache (2) + ✓ should set isUnlocked from cache + ✓ should signOut + ✓ decryptVault + ✓ encryptVault + ✓ signIn (2) + ✓ should signIn + ✓ should throw decrypt error + ✓ encryptBackup (2) + ✓ should return encrypted backup + ✓ should return error + ✓ decryptBackup (2) + ✓ should return encrypted backup + ✓ should return error + ✓ restorePassword (2) + ✓ should return password + ✓ should throw error + ✓ src/storage/entities/Chains.test.ts (19) + ✓ Chains (19) + ✓ should instance + ✓ get instance (2) + ✓ should return instance + ✓ should return same instance + ✓ shoud init + ✓ should return default value + ✓ load chains (2) + ✓ should load chains + ✓ should throw error + ✓ save custom chain (3) + ✓ should chain_already_added throw error + ✓ should throw failed_to_save_custom_chain error + ✓ should chain_already_added throw error + ✓ remove custom chain (2) + ✓ remove custom chain + ✓ should throw error + ✓ get by chain (5) + ✓ should return in mainnets + ✓ should return in testnets + ✓ should return in custom + ✓ should return undefined + ✓ should throw failed_to_get_chain_by_name + ✓ should get all + ✓ should already addes + ✓ src/providers/accountProvider/AccountProvider.test.tsx (9) + ✓ AccountProvider (9) + ✓ reducer (2) + ✓ should set accounts + ✓ should update account name + ✓ should create account + ✓ should import account + ✓ should derive account + ✓ should call get selected account + ✓ should call get all accounts + ✓ should change account name + ✓ should set selected account + ✓ src/storage/entities/Accounts.test.ts (18) + ✓ Account (18) + ✓ should instance + ✓ should init + ✓ should update + ✓ removeAccout (2) + ✓ should remove account + ✓ should return error + ✓ add (3) + ✓ should add account + ✓ should return failed_to_add_account error + ✓ should return failed_to_add_account error + ✓ should return isEmpty as true + ✓ should add account + ✓ should remove account + ✓ get (2) + ✓ should return account value by key + ✓ should return undefined + ✓ should getAll + ✓ should update + ✓ should return false alreadyExists + ✓ first (2) + ✓ should return first account + ✓ should return undefined + ✓ src/tests/utils/assets.test.ts (15) + ✓ assets (15) + ✓ getNatitveAssetBalance (5) + ✓ should use polkadot api + ✓ should use ethereum api + ✓ should return same amount + ✓ should return same amount + ✓ should throw error + ✓ should format amount with decimals + ✓ should return 0 + ✓ should format bn + ✓ should format bn, returning 0 + ✓ should format usd amount + ✓ get asset USD price (3) + ✓ should return eth price + ✓ should return 0 + ✓ should throw error + ✓ getWasmAssets (2) + ✓ get assets + ✓ get assets Astar case + ✓ src/storage/entities/TrustedSites.test.ts (13) + ✓ Trusted Sites (13) + ✓ should instance + ✓ should get default value + ✓ should init + ✓ get all (2) + ✓ should get all + ✓ should throw error + ✓ add site (2) + ✓ should add site + ✓ should throw error + ✓ remove site (2) + ✓ should remove site + ✓ should throw error + ✓ add site (2) + ✓ should add site + ✓ should throw error + ✓ remove site (2) + ✓ should remove site + ✓ should throw error + ✓ src/pages/send/components/EvmForm.test.tsx (2) + ✓ EvmForm (2) + ✓ should call confirmTx with native asset + ✓ should call confirmTx with erc20 asset + ✓ src/pages/accountForm/AccountForm.test.tsx (5) + ✓ AccountForm (5) + ✓ import account (1) + ✓ should render + ✓ create account (2) + ✓ should render + ✓ should submit + ✓ restore password (1) + ✓ should render + ✓ derive account (1) + ✓ should render + ✓ src/storage/entities/settings/Settings.test.ts (13) + ✓ Settings (13) + ✓ should instance + ✓ should init + ✓ should be empty + ✓ should add to general + ✓ should add to advanced + ✓ should add to security + ✓ should get from general + ✓ should get from advanced + ✓ should get from security + ✓ get + ✓ get all + ✓ update + ✓ allready exists + ✓ src/storage/Storage.test.ts (4) + ✓ Storage (4) + ✓ should instance + ✓ init (2) + ✓ should init + ✓ should throw already_signed_up error + ✓ reset wallet + ✓ src/pages/signMessage/SignMessage.test.tsx (2) + ✓ SignMessage (2) + ✓ should sign evm message + ✓ should sign wasm message + ✓ src/pages/manageAssets/ManageAssets.test.tsx (3) + ✓ ManageAssets (3) + ✓ should render evm + ✓ should fill the form and submit + ✓ should show error on submit + ✓ src/storage/entities/Assets.test.ts (8) + ✓ Assets (8) + ✓ should instance + ✓ should return default value + ✓ should init + ✓ getByChain (2) + ✓ should get by chain + ✓ should show error + ✓ addAsset (3) + ✓ should add asset + ✓ should add new asset in existing chain + ✓ should throw error when asset already added + ✓ src/pages/balance/components/ChainSelector.test.tsx (2) + ✓ ChainSelector (2) + ✓ should render + ✓ should change account + ✓ src/storage/entities/BaseEntity.test.ts (7) + ✓ BaseEntity (7) + ✓ should init + ✓ getDefaultValue + ✓ fromData + ✓ get (2) + ✓ should return stored data + ✓ should return undefined + ✓ set + ✓ remove + ✓ src/pages/balance/components/AccountList.test.tsx (1) + ✓ AccountList (1) + ✓ should render accounts + ✓ src/pages/send/components/ConfirmTx.test.tsx (2) + ✓ ConfirmTx (2) + ✓ should render correctly + ✓ should call onConfirm when confirm button is clicked + ✓ src/storage/entities/keyrings/hd/EVMKeyring.test.ts (8) + ✓ EVMKeyring (8) + ✓ should return next account path + ✓ should return address + ✓ get key (2) + ✓ should return key + ✓ should throw error if key pair not found + ✓ should return json object + ✓ should throw error if mnemonic is invalid + ✓ should derive key pair + ✓ should return json object + ✓ src/tests/utils/accounts-utils.test.ts (9) + ✓ account-utils (9) + ✓ cropAccount (2) + ✓ should return cropAccount + ✓ should return empty + ✓ formatAccount (2) + ✓ should format EVM account + ✓ should format WASM account + ✓ formatAddress (3) + ✓ format ROCOCO format to x format + ✓ should return the same EVM Account + ✓ should return empty + ✓ getAccountType (2) + ✓ should format imported account type + ✓ should return the same account type + ✓ src/pages/send/components/Destination.test.tsx (2) + ✓ Destination (2) + ✓ should render options + ✓ should filter + ✓ src/storage/entities/CacheAuth.test.ts (5) + ✓ CacheAuth (5) + ✓ should instance + ✓ shoud filled entity + ✓ hasExpired (2) + ✓ should return hasExpired as false + ✓ should return hasExpired as true + ✓ unlock (1) + ✓ should unlock + ✓ src/pages/settings/Contacts.test.tsx (3) + ✓ Contacts (3) + ✓ should render + ✓ should show no contacts + ✓ should create contact + ✓ src/pages/balance/components/TotalBalance.test.tsx (4) + ✓ TotalBalance (4) + ✓ should render + ✓ should render total balance + ✓ should hide balance + ✓ should update account name + ✓ src/pages/settings/General.test.tsx (3) + ✓ General (3) + ✓ should render + ✓ should call showTestnets + ✓ should call "manage networks" + ✓ src/pages/balance/components/Activity.test.tsx (2) + ✓ Actvity (2) + ✓ should render + ✓ should filter by network + ✓ src/pages/send/components/SelectableAsset.test.tsx (3) + ✓ SelectableAsset (3) + ✓ should render + ✓ should render all assets + ✓ should call change asset + ✓ src/storage/entities/keyrings/imported/ImportedEVMKeyring.test.ts (4) + ✓ ImportedEVMKeyring (4) + ✓ getImportedData + ✓ fromJSON + ✓ getKey (2) + ✓ should return key + ✓ should throw error + ✓ src/storage/entities/Network.test.ts (5) + ✓ Network (5) + ✓ should instance + ✓ should init + ✓ should return default value + ✓ should set new chain + ✓ should set new chain without static methods + ✓ src/storage/entities/keyrings/hd/WASMKeyring.test.ts (5) + ✓ WASMKeyring (5) + ✓ should return next account path + ✓ should return address + ✓ get key (2) + ✓ should return key + ✓ should throw error if key pair not found + ✓ should return json object + ✓ src/pages/settings/Security.test.tsx (2) + ✓ Security (2) + ✓ should render + ✓ should show sites + ✓ src/pages/send/components/Fees.test.tsx (2) + ✓ Fees (2) + ✓ should render native assets fees + ✓ should render no native assets fees + ✓ src/storage/entities/keyrings/imported/ImportedWASMKeyring.test.ts (2) + ✓ ImportedWASMKeyring (2) + ✓ getImportedData + ✓ fromJSON + ✓ src/storage/entities/SelectedAccount.test.ts (2) + ✓ SelectedAccount (2) + ✓ fromAccount + ✓ getDefaultValue + ✓ src/pages/signIn/SignIn.test.tsx (3) + ✓ SignIn (3) + ✓ should render + ✓ should sign in + ✓ should go to forgot password + ✓ src/pages/balance/components/AccountSelected.test.tsx (2) + ✓ AccountSelected (2) + ✓ should render selectedAccount + ✓ should copy account + ✓ src/pages/receive/Receive.test.tsx (2) + ✓ Receive (2) + ✓ should render + ✓ should copy to clipboard + ✓ src/storage/entities/settings/Setting.test.ts (7) + ✓ Setting (7) + ✓ should instance + ✓ should format name + ✓ should return string true + ✓ should return number + ✓ should return boolean + ✓ should return object + ✓ should return language array + ✓ src/pages/balance/components/Assets.test.tsx (1) + ✓ Assets (1) + ✓ should render assets + ✓ src/pages/send/components/SelectableChain.test.tsx (2) + ✓ SelectableChain (2) + ✓ should render + ✓ should render null + ✓ src/tests/utils/utils.test.ts (3) + ✓ utils (3) + ✓ should return formatted date + ✓ should parse query + ✓ should make querys + ✓ src/pages/addAccount/AddAccount.test.tsx (2) + ✓ AddAccount (2) + ✓ should render + ✓ should open new tab + ✓ src/hooks/common/useToast.test.tsx (2) + ✓ useToast (2) + ✓ showErrorToast + ✓ showSuccessToast + ✓ src/hooks/common/useLoading.test.tsx (2) + ✓ useLoading (2) + ✓ should set isLoading to true + ✓ should set isLoading to false + ✓ src/pages/settings/BugReport.test.tsx (1) + ✓ BugReport (1) + ✓ should render + ✓ src/pages/welcome/Welcome.test.tsx (2) + ✓ Welcome (2) + ✓ should render + ✓ should call goToAccount function + ✓ src/storage/entities/settings/LangaugeSetting.test.ts (2) + ✓ LanguageSettings (2) + ✓ should get default language + ✓ should get all languages + ✓ src/pages/settings/AboutUs.test.tsx (1) + ✓ AboutUs (1) + ✓ should render + ✓ src/storage/entities/Backup.test.ts (2) + ✓ Backup (2) + ✓ should instance + ✓ should init + ✓ src/storage/entities/Account.test.ts (1) + ✓ Account (1) + ✓ sholuld instance + ✓ src/storage/entities/registry/Register.test.ts (1) + ✓ Register (1) + ✓ should create register + ✓ src/storage/entities/registry/Contact.test.ts (1) + ✓ Contact (1) + ✓ should create contact + + Test Files 61 passed (61) + Tests 418 passed (418) + Start at 17:35:18 + Duration 16.79s (transform 1.14s, setup 10.07s, collect 22.82s, tests 5.96s, environment 16.37s, prepare 3.55s) +``` From 9c8369e71b54d1ec6d0d5e27bfff7f996ebcee10 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 17 Jul 2023 17:58:05 -0400 Subject: [PATCH 249/253] Update kuma-cross-chain-wallet_3_keeganquigley.md --- evaluations/kuma-cross-chain-wallet_3_keeganquigley.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md index 3e53968bc..61b66dfb3 100644 --- a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md @@ -17,6 +17,8 @@ # General Notes +In general the wallet has a very MetaMask like feel and is easy to use. I'm unable to test out XCM functionality due to not being able to transfer between testnets (Rococo, Westend). Would be nice if this could be implemented. + ## Tests ```js ✓ src/accounts/AccountManager.test.ts (20) From b41ba0eb6a671ee67d95f145f4a024c9694aedea Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Mon, 17 Jul 2023 20:44:28 -0400 Subject: [PATCH 250/253] Update kuma-cross-chain-wallet_3_keeganquigley.md --- evaluations/kuma-cross-chain-wallet_3_keeganquigley.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md index 61b66dfb3..be00272c9 100644 --- a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md @@ -19,6 +19,8 @@ In general the wallet has a very MetaMask like feel and is easy to use. I'm unable to test out XCM functionality due to not being able to transfer between testnets (Rococo, Westend). Would be nice if this could be implemented. +Right now the main display only shows the dollar conversion amount. Just a suggestion for an added feature might be the ability to switch it to show the underlying currency instead. + ## Tests ```js ✓ src/accounts/AccountManager.test.ts (20) From d3d74413997c4f2b818c0ac9a344d209398761c2 Mon Sep 17 00:00:00 2001 From: Keegan | W3F <35080151+keeganquigley@users.noreply.github.com> Date: Tue, 18 Jul 2023 11:10:27 -0400 Subject: [PATCH 251/253] Update kuma-cross-chain-wallet_3_keeganquigley.md --- .../kuma-cross-chain-wallet_3_keeganquigley.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md index be00272c9..6e9d228bc 100644 --- a/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md +++ b/evaluations/kuma-cross-chain-wallet_3_keeganquigley.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In progress +- **Status:** Accepted - **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/cross-chain-wallet.md - **Milestone:** 3 - **Previously successfully merged evaluation:** All by keeganquigley @@ -8,12 +8,12 @@ | Number | Deliverable | Accepted | Link | Notes | | ------------- | ------------- | ------------- |------------- | ------------- | | 0a. | License |
    • [x]
    | https://github.com/blockcoders/kuma-wallet/blob/main/LICENSE | MIT | -| 0b. | Documentation |
    • [x]
    | https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | | -| 0c. | Testing Guide |
    • [x]
    | https://github.com/blockcoders/kuma-wallet#running-locally | | -| 1. | XCM/XVM standard for transfers |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/constants/xcm.ts) | | -| 2. | Call to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/pages/callContract/CallContract.tsx) | | -| 3. | Transactions to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/providers/txProvider/TxProvider.tsx) | | -| 4. | Open Beta |
    • [x]
    | [Link1](https://kumawallet.io/), [Link2](https://chrome.google.com/webstore/detail/kuma-wallet/hbinmkhlebcnghpikoekkbeljbealbje), [Link3](https://addons.mozilla.org/en-US/firefox/addon/kuma-wallet/), [Link4](https://twitter.com/getkuma/status/1678075363165888513) | | +| 0b. | Documentation |
    • [x]
    | https://github.com/blockcoders/kuma-wallet/blob/main/README.md, https://github.com/blockcoders/kuma-wallet/blob/main/README-es.md | Ok. | +| 0c. | Testing Guide |
    • [x]
    | https://github.com/blockcoders/kuma-wallet#running-locally | Ok. | +| 1. | XCM/XVM standard for transfers |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/constants/xcm.ts) | Ok. | +| 2. | Call to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/pages/callContract/CallContract.tsx) | Ok. | +| 3. | Transactions to custom smart contracts |
    • [x]
    | [Link](https://github.com/kumawallet/extension/blob/main/src/providers/txProvider/TxProvider.tsx) | Ok. | +| 4. | Open Beta |
    • [x]
    | [Link1](https://kumawallet.io/), [Link2](https://chrome.google.com/webstore/detail/kuma-wallet/hbinmkhlebcnghpikoekkbeljbealbje), [Link3](https://addons.mozilla.org/en-US/firefox/addon/kuma-wallet/), [Link4](https://twitter.com/getkuma/status/1678075363165888513) | Ok. | # General Notes @@ -21,6 +21,8 @@ In general the wallet has a very MetaMask like feel and is easy to use. I'm unab Right now the main display only shows the dollar conversion amount. Just a suggestion for an added feature might be the ability to switch it to show the underlying currency instead. +The wallet works great for both SS58 and EVM accounts, and all features have been delivered. I can easily perform all actions in the guide and the wallet is more robust than many I've seen. Great work! + ## Tests ```js ✓ src/accounts/AccountManager.test.ts (20) From 8cda440d314a53ab42034db40ced7924197280e3 Mon Sep 17 00:00:00 2001 From: dastansam Date: Thu, 20 Jul 2023 10:46:58 +0600 Subject: [PATCH 252/253] Rename file --- .../{diffychat_2_dastansam.md => diffy_chat_2_dastansam.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename evaluations/{diffychat_2_dastansam.md => diffy_chat_2_dastansam.md} (100%) diff --git a/evaluations/diffychat_2_dastansam.md b/evaluations/diffy_chat_2_dastansam.md similarity index 100% rename from evaluations/diffychat_2_dastansam.md rename to evaluations/diffy_chat_2_dastansam.md From f1b1bb3e169707ad5cddeb64d619ba3946c85c7b Mon Sep 17 00:00:00 2001 From: Dastan <88332432+dastansam@users.noreply.github.com> Date: Thu, 20 Jul 2023 07:49:00 +0300 Subject: [PATCH 253/253] Update diffy_chat_2_dastansam.md --- evaluations/diffy_chat_2_dastansam.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/evaluations/diffy_chat_2_dastansam.md b/evaluations/diffy_chat_2_dastansam.md index ff45063d2..6ae1d95e4 100644 --- a/evaluations/diffy_chat_2_dastansam.md +++ b/evaluations/diffy_chat_2_dastansam.md @@ -1,6 +1,6 @@ # Evaluation -- **Status:** In Progress +- **Status:** Accepted - **Application Document:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/Diffy_chat.md) - **Milestone:** 2 - **Kusama Identity:** [Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP](https://sub.id/Fd1SvYZnE3dZ3mEaq5QG1HEWhzNrDyMPJ41C4fQqiMirtTP) @@ -17,6 +17,7 @@ | 1. | Contacts list feature | [See here](https://github.com/Belsoft-rs/diffychat-client/blob/master/src/components/messenger/contacts/contacts.js) | Feature is delivered completely, and is deployed [here](https://belsoft-rs.github.io/diffychat/). Users are able to add others into their contact list. | | 2. | Web messenger dapp MVP | [See here](https://belsoft-rs.github.io/diffychat/index.html) | I wasn't able to complete instructions for testing the web messenger. I followed the tutorial video that was provided but it just hangs and lags for me. I attached some screenshots of the failure. | +# Evaluation v1 ## General Notes Contact list feature works both locally and on production. However, main web messenger has different behaviour than expected. I followed the tutorial [video](https://media.belsoft.rs/diffychat/diffychat.mp4) that was provided but chat windows just hang and lag for me. I attached screenshot of the failure. @@ -45,3 +46,11 @@ test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini ``` + +# Evaluation v2 + +Issues were addressed and demo app works as demonstrated in the video. Screenshots below: + +Bob window + +Alice window