From e9a8eb368096d9e15e573e5157d28e8fbeefcfad Mon Sep 17 00:00:00 2001 From: haticeyk84 <97253701+haticeyk84@users.noreply.github.com> Date: Sat, 27 May 2023 22:35:00 +0300 Subject: [PATCH 1/4] Create README.md --- .../README.md | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md new file mode 100644 index 00000000..7eb9d939 --- /dev/null +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md @@ -0,0 +1,171 @@ +Grant Proposal | [318 - Cross Chain Token Bridge-Staking as a Service Solutions](https://portal.devxdao.com/public-proposals/318) +------------ | ------------- +Milestone | 6 +Milestone Title | Build, Deploy, and Internally QA Staking Shell App +OP | nickodio_ferrum +Reviewer | Hatice Kaya + +# Milestone Details + +## Details & Acceptance Criteria + +**Details of what will be delivered in milestone:** + +- Build and deploy a shell app that will allow traditional staking including: +1. Deployment of pool +2. Staking Period +3. Mandatory Lock +4. Early Withdrawal +5. Redistribution of Early Withdrawal +6. Maturity + +- Integrate bridge with one of the Casper’s compatible wallets + +- Share Staking shell app with internal team for QA and incorporate QA feedback + +**Acceptance criteria:** + +- UI deployment for staking +- Smart Contract Deployment for traditional staking +- Casper compatible wallet integration +1. Ability to proceed through staking flow as described below: +2. Ability to deploy the pool. +3. Ability to set and test staking Periods +4. Ability to set mandatory lock and early withdrawal +5. Ability to set and test reward redistribution of Early Withdrawal +6. Ability to set and test rewards distribution for full maturity +- Internal QA feedback incorporation + +**Additional notes regarding submission from OP:** + +Regarding Milestone 6, we wanted to provide you with an update that Staking App is completed and is working as per the expectation. However, the URL (https://casper-staking.ferrumnetwork.io/) where the App is deployed needs to be whitelisted by Casper team, a request is already submitted. In the meantime, we have put together a step-by-step guide that will allow you to set up staking on your own end. The staking guide can be found here: https://github.com/ferrumnet/staking-casper-frontend Also, sharing the repos for staking for review: Casper staking frontend: https://github.com/ferrumnet/staking-casper-frontend/releases/tag/v0.5.0 Casper staking SmartContracts: https://github.com/ferrumnet/casper_staking/releases/tag/v0.3.1 + +## Milestone Submission + +The following milestone assets/artifacts were submitted for review: + +Repository | Revision Reviewed +------------ | ------------- +https://github.com/ferrumnet/casper_staking/releases/tag/v0.3.1 | eacb280 +https://github.com/ferrumnet/staking-casper-frontend | 827be5c + +# Install & Usage Testing Procedure and Findings + +A Gitpod cloud environment running Ubuntu 22.04.2 LTS was used for building and running the project accross two separate repositories. + +The smart contract repository (`casper_staking`) was reviewed first. The README at the root level of the repository was empty, leaving the reviewer with no instructions for installing and running that part of the project. After checking the subdirectories, it was seen that there was a basic README under the `erc20` folder, and a more comprehensive one under the `staking_contract` folder. Following the instructions in the `staking_contract` folder, the staking contracts were built successfully: [staking_contract_build.md](assets/staking_contract_build.md) + +It was not possible to deploy or run the staking smart contract by following the instructions on the README.md file under the `staking_contract` directory due to multiple errors: [staking_contract_deploy_command_error.md](assets/staking_contract_deploy_command_error.md) + +It was not possible to build, deploy or run the smart contract under the `erc20` directory due to a build error: [erc20_build_failure.md](assets/erc20_build_failure.md) + +The frontend part was installed successfully following the instructions on the README.md file of the frontend repository: [frontend_npm_install.md](assets/frontend_npm_install.md) + +It was not possible to run the frontend app by following the instructions due to an error: [frontend_start_error.md](assets/frontend_start_error.md) + +When attempting to do usage testing on the OP's deployment at the given URL (https://casper-staking.ferrumnetwork.io/), an empty page was encountered. + +![Frontend usage review blank screen](assets/usage_review_blank_screen.png) + +After communication with the OP, a new url (https://casper-staking.ferrumnetwork.io/b9e3b671e577a7d7a4c53aa7010449b47fb8a811c76582dcc41f65a67a16e23d) was provided for usage testing. The app was loaded and visible on the new url. When the Connect Wallet button was clicked, nothing happened on the user interface, and an error was seen on the developer console of the browser. + +![Frontend usage review Connect Wallet error](assets/usage_review_error_on_connect_wallet.png) +## Overall Impression of usage testing + +A number of errors were encountered during the build, installation, and usage of the project. It was not possible to do a complete usage testing due to the encountered errors mentioned above. +The documentation does not provide sufficient installation/execution instructions, and containes errors. +Due to the issues mentioned above, and because this is the final milestone of the project, the submission should FAIL on all of the criteria in this section. + +Requirement | Finding +------------ | ------------- +Project builds without errors | FAIL +Documentation provides sufficient installation/execution instructions | FAIL +Project functionality meets/exceeds acceptance criteria and operates without error | FAIL + +# Unit / Automated Testing + +The smart contract repository has 6 tests in total under the `staking_contract` directory, covering the positive paths, but there are no tests for negatives paths: [staking_contract_test.md](assets/staking_contract_test.md) + +It was not possible to check the tests under the `erc20` directory due to the build error encountered. + +The frontend repository does not have any tests apart from a single default test of the React framework. + +The OP needs to improve test coverage by adding more tests to the smart contracts under the `staking_contract` directory to cover the negative paths, and make sure the smart contracts under the `erc20` directory also meets the same criteria. + +The OP also needs to add tests to the frontend repository. + +Due to the issues mentioned above, and because this is the final milestone of the project, the submission should FAIL on all criteria of this section. + +Requirement | Finding +------------ | ------------- +Unit Tests - At least one positive path test | FAIL +Unit Tests - At least one negative path test | FAIL +Unit Tests - Additional path tests | FAIL + +# Documentation + +### Code Documentation + +The code-level documentation of the project is very limited, lacking standard inline comments which allow auto-generation of the documentation throughout the code-base. The OP needs to improve the code-level documentation significantly by adding standard code comments. + +Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail on the criterion of this section. + +Requirement | Finding +------------ | ------------- +Code Documented | FAIL + +### Project Documentation + +The project documentation is not at an acceptable level for this final milestone. OP needs to improve the project level documentation significantly, and fix the errors in the existing documentation. Although there is a good attempt of documentation on the frontend repository, especially the given examples on the smart contract repository are not working. + +Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail on all of the criteria of this section. + +Requirement | Finding +------------ | ------------- +Usage Documented | FAIL +Example Documented | FAIL + +## Overall Conclusion on Documentation + +Based on the reviewer's findings, this review should FAIL. + +# Open Source Practices + +## Licenses + +The Project is released under the MIT License. + +Requirement | Finding +------------ | ------------- +OSI-approved open source software license | PASS + +## Contribution Policies + +Pull requests and Issues are enabled on the repositories, but the project lacks CONTRIBUTING.md and SECURITY.md. + +Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail in this section. + +Requirement | Finding +------------ | ------------- +OSS contribution best practices | FAIL + +# Coding Standards + +## General Observations + +Code is generally well-structured and readable. The project is committed to GitHub, but the automated tests are not sufficient, and manual tests were not possible to be done. + +The project also has a number of security vulnerabilities dicovered by the dependabot alerts and the CodeQL analysis features of the code hosting platform. Both the smart contract and the frontend repositories have a high number of high and critical severity vulnerability alerts. + +![Frontend security alerts](assets/frontend_security_alerts.png) + +Due to the security issues on the repository, and because this is the final milestone of the project, the submission should fail in this section. OP needs to fix the security vulnerabilities for this submission to pass the next review. + +# Final Conclusion + +Due to all of the issues mentioned in the earlier sections, in the reviewers opinion, this submission should FAIL. + +# Recommendation + +Recommendation | FAIL +------------ | ------------- From a43237728550d7c1d6f5d9f68c938dec669f1e2f Mon Sep 17 00:00:00 2001 From: haticeyk84 <97253701+haticeyk84@users.noreply.github.com> Date: Sat, 27 May 2023 22:36:16 +0300 Subject: [PATCH 2/4] Create erc20_build_failure.md --- .../assets/erc20_build_failure.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/erc20_build_failure.md diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/erc20_build_failure.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/erc20_build_failure.md new file mode 100644 index 00000000..7abb8832 --- /dev/null +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/erc20_build_failure.md @@ -0,0 +1,95 @@ +```bash +$ make prepare +rustup target add wasm32-unknown-unknown +info: syncing channel updates for 'nightly-2023-01-16-x86_64-unknown-linux-gnu' +info: latest update on 2023-01-16, rust version 1.68.0-nightly (9e75dddf6 2023-01-15) +info: downloading component 'cargo' +info: downloading component 'rust-std' +info: downloading component 'rustc' +info: installing component 'cargo' +info: installing component 'rust-std' + 29.8 MiB / 29.8 MiB (100 %) 14.7 MiB/s in 2s ETA: 0s +info: installing component 'rustc' + 67.6 MiB / 67.6 MiB (100 %) 16.2 MiB/s in 4s ETA: 0s +info: downloading component 'rust-std' for 'wasm32-unknown-unknown' +info: installing component 'rust-std' for 'wasm32-unknown-unknown' + 19.2 MiB / 19.2 MiB (100 %) 14.2 MiB/s in 1s ETA: 0s +gitpod /workspace/casper_staking/erc20 (main) $ make build-contracts +cargo build --release --target wasm32-unknown-unknown -p erc20-token -p erc20-test -p erc20-test-call + Updating crates.io index + Downloaded num-bigint v0.4.3 + Downloaded serde_bytes v0.11.7 + Downloaded num-derive v0.3.3 + Downloaded num-complex v0.4.2 + Downloaded hex v0.4.3 + Downloaded rand v0.7.3 + Downloaded proc-macro2 v1.0.43 + Downloaded hex_fmt v0.3.0 + Downloaded memory_units v0.4.0 + Downloaded funty v1.1.0 + Downloaded subtle v2.4.1 + Downloaded autocfg v1.1.0 + Downloaded ff v0.8.0 + Downloaded crypto-mac v0.10.1 + Downloaded crunchy v0.2.2 + Downloaded cpufeatures v0.2.2 + Downloaded once_cell v1.13.0 + Downloaded ecdsa v0.10.2 + Downloaded num-iter v0.1.43 + Downloaded wyz v0.2.0 + Downloaded rand_core v0.6.3 + Downloaded hmac v0.10.1 + Downloaded ed25519 v1.2.0 + Downloaded num-integer v0.1.45 + Downloaded ppv-lite86 v0.2.16 + Downloaded ed25519-dalek v1.0.1 + Downloaded crypto-mac v0.8.0 + Downloaded zeroize_derive v1.3.2 + Downloaded digest v0.9.0 + Downloaded block-buffer v0.9.0 + Downloaded itoa v1.0.3 + Downloaded ryu v1.0.11 + Downloaded num-traits v0.2.15 + Downloaded k256 v0.7.3 + Downloaded serde_derive v1.0.143 + Downloaded num-rational v0.4.1 + Downloaded unicode-ident v1.0.3 + Downloaded bitflags v1.3.2 + Downloaded elliptic-curve v0.8.5 + Downloaded cfg-if v1.0.0 + Downloaded zeroize v1.3.0 + Downloaded num v0.4.0 + Downloaded base64 v0.13.0 + Downloaded rand v0.8.5 + Downloaded bitvec v0.18.5 + Downloaded byteorder v1.4.3 + Downloaded blake2 v0.9.2 + Downloaded group v0.8.0 + Downloaded wee_alloc v0.4.5 + Downloaded unicode-xid v0.2.3 + Downloaded typenum v1.15.0 + Downloaded serde_json v1.0.83 + Downloaded cfg-if v0.1.10 + Downloaded version_check v0.9.4 + Downloaded opaque-debug v0.3.0 + Downloaded radium v0.3.0 + Downloaded synstructure v0.12.6 + Downloaded sha2 v0.9.9 + Downloaded rand_core v0.5.1 + Downloaded generic-array v0.14.6 + Downloaded base16 v0.2.1 + Downloaded quote v1.0.21 + Downloaded static_assertions v1.1.0 + Downloaded serde v1.0.143 + Downloaded uint v0.9.3 + Downloaded rand_chacha v0.2.2 + Downloaded syn v1.0.99 + Downloaded libc v0.2.131 + Downloaded signature v1.2.2 + Downloaded casper-contract v1.4.4 + Downloaded curve25519-dalek v3.2.1 + Downloaded casper-types v1.5.0 + Downloaded 72 crates (3.4 MB) in 0.68s +error: package ID specification `erc20-test` did not match any packages +make: *** [Makefile:9: build-contracts] Error 101 +``` From fab19aee0af4ba92ea18fa58cdca09e82a041aef Mon Sep 17 00:00:00 2001 From: haticeyk84 <97253701+haticeyk84@users.noreply.github.com> Date: Sat, 27 May 2023 22:37:07 +0300 Subject: [PATCH 3/4] Add files via upload --- .../assets/frontend_npm_install.md | 72 ++++ .../assets/frontend_security_alerts.png | Bin 0 -> 76034 bytes .../assets/frontend_start_error.md | 37 ++ .../assets/staking_contract_build.md | 333 ++++++++++++++++++ .../staking_contract_deploy_command_error.md | 25 ++ .../assets/staking_contract_test.md | 318 +++++++++++++++++ .../assets/usage_review_blank_screen.png | Bin 0 -> 7372 bytes .../usage_review_error_on_connect_wallet.png | Bin 0 -> 54095 bytes 8 files changed, 785 insertions(+) create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_npm_install.md create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_security_alerts.png create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_start_error.md create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_build.md create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_deploy_command_error.md create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_test.md create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_blank_screen.png create mode 100644 Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_error_on_connect_wallet.png diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_npm_install.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_npm_install.md new file mode 100644 index 00000000..8aa44b52 --- /dev/null +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_npm_install.md @@ -0,0 +1,72 @@ +```bash +$ npm install +npm WARN ERESOLVE overriding peer dependency +npm WARN While resolving: react-color-gradient-picker@0.1.2 +npm WARN Found: react@17.0.2 +npm WARN node_modules/react +npm WARN react@"^17.0.2" from the root project +npm WARN 34 more (@emotion/react, ...) +npm WARN +npm WARN Could not resolve dependency: +npm WARN peer react@"^16.13.1" from react-color-gradient-picker@0.1.2 +npm WARN node_modules/react-color-gradient-picker +npm WARN react-color-gradient-picker@"^0.1.2" from ferrum-design-system@1.0.82 +npm WARN node_modules/ferrum-design-system +npm WARN +npm WARN Conflicting peer dependency: react@16.14.0 +npm WARN node_modules/react +npm WARN peer react@"^16.13.1" from react-color-gradient-picker@0.1.2 +npm WARN node_modules/react-color-gradient-picker +npm WARN react-color-gradient-picker@"^0.1.2" from ferrum-design-system@1.0.82 +npm WARN node_modules/ferrum-design-system +npm WARN ERESOLVE overriding peer dependency +npm WARN While resolving: react-color-gradient-picker@0.1.2 +npm WARN Found: react-dom@17.0.2 +npm WARN node_modules/react-dom +npm WARN react-dom@"17.0.2" from the root project +npm WARN 15 more (@testing-library/react, react-bootstrap, @restart/ui, ...) +npm WARN +npm WARN Could not resolve dependency: +npm WARN peer react-dom@"^16.13.1" from react-color-gradient-picker@0.1.2 +npm WARN node_modules/react-color-gradient-picker +npm WARN react-color-gradient-picker@"^0.1.2" from ferrum-design-system@1.0.82 +npm WARN node_modules/ferrum-design-system +npm WARN +npm WARN Conflicting peer dependency: react-dom@16.14.0 +npm WARN node_modules/react-dom +npm WARN peer react-dom@"^16.13.1" from react-color-gradient-picker@0.1.2 +npm WARN node_modules/react-color-gradient-picker +npm WARN react-color-gradient-picker@"^0.1.2" from ferrum-design-system@1.0.82 +npm WARN node_modules/ferrum-design-system +npm WARN ERESOLVE overriding peer dependency +npm WARN While resolving: terser-webpack-plugin@1.4.5 +npm WARN Found: webpack@4.46.0 +npm WARN node_modules/terser-webpack-plugin/node_modules/webpack +npm WARN +npm WARN Could not resolve dependency: +npm WARN peer webpack@"^4.0.0" from terser-webpack-plugin@1.4.5 +npm WARN node_modules/terser-webpack-plugin +npm WARN terser-webpack-plugin@"^1.4.3" from webpack@4.46.0 +npm WARN node_modules/ferrum-design-system/node_modules/webpack +npm WARN 2 more (webpack, webpack) +npm WARN EBADENGINE Unsupported engine { +npm WARN EBADENGINE package: 'react-bs-datatable@2.2.3', +npm WARN EBADENGINE required: { node: '14' }, +npm WARN EBADENGINE current: { node: 'v18.16.0', npm: '9.5.1' } +npm WARN EBADENGINE } + +up to date, audited 2310 packages in 6s + +225 packages are looking for funding + run `npm fund` for details + +40 vulnerabilities (1 low, 7 moderate, 22 high, 10 critical) + +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. +``` \ No newline at end of file diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_security_alerts.png b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/frontend_security_alerts.png new file mode 100644 index 0000000000000000000000000000000000000000..57359f7b3581b2f07793fee87206847e5106fd85 GIT binary patch literal 76034 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/dev/null | true +cd ../erc20/erc20-token && cargo build --release --target wasm32-unknown-unknown + Downloaded itoa v1.0.3 + Downloaded generic-array v0.14.6 + Downloaded serde_bytes v0.11.7 + Downloaded cpufeatures v0.2.2 + Downloaded num-complex v0.4.2 + Downloaded ppv-lite86 v0.2.16 + Downloaded once_cell v1.13.0 + Downloaded zeroize_derive v1.3.2 + Downloaded synstructure v0.12.6 + Downloaded unicode-xid v0.2.3 + Downloaded quote v1.0.21 + Downloaded typenum v1.15.0 + Downloaded unicode-ident v1.0.3 + Downloaded uint v0.9.3 + Downloaded rand_core v0.6.3 + Downloaded base64 v0.13.0 + Downloaded ryu v1.0.11 + Downloaded serde_derive v1.0.143 + Downloaded proc-macro2 v1.0.43 + Downloaded serde v1.0.143 + Downloaded serde_json v1.0.83 + Downloaded syn v1.0.99 + Downloaded libc v0.2.131 + Downloaded 23 crates (1.6 MB) in 0.39s + Compiling autocfg v1.1.0 + Compiling version_check v0.9.4 + Compiling proc-macro2 v1.0.43 + Compiling typenum v1.15.0 + Compiling unicode-ident v1.0.3 + Compiling quote v1.0.21 + Compiling syn v1.0.99 + Compiling subtle v2.4.1 + Compiling rand_core v0.5.1 + Compiling unicode-xid v0.2.3 + Compiling wyz v0.2.0 + Compiling funty v1.1.0 + Compiling radium v0.3.0 + Compiling serde_derive v1.0.143 + Compiling serde v1.0.143 + Compiling byteorder v1.4.3 + Compiling crunchy v0.2.2 + Compiling cfg-if v1.0.0 + Compiling ppv-lite86 v0.2.16 + Compiling opaque-debug v0.3.0 + Compiling serde_json v1.0.83 + Compiling itoa v1.0.3 + Compiling ryu v1.0.11 + Compiling wee_alloc v0.4.5 + Compiling rand_core v0.6.3 + Compiling hex v0.4.3 + Compiling generic-array v0.14.6 + Compiling num-traits v0.2.15 + Compiling num-integer v0.1.45 + Compiling num-bigint v0.4.3 + Compiling num-iter v0.1.43 + Compiling num-rational v0.4.1 + Compiling rand_chacha v0.2.2 + Compiling bitvec v0.18.5 + Compiling static_assertions v1.1.0 + Compiling rand v0.8.5 + Compiling bitflags v1.3.2 + Compiling rand v0.7.3 + Compiling uint v0.9.3 + Compiling base64 v0.13.0 + Compiling base16 v0.2.1 + Compiling cfg-if v0.1.10 + Compiling memory_units v0.4.0 + Compiling hex_fmt v0.3.0 + Compiling once_cell v1.13.0 + Compiling digest v0.9.0 + Compiling crypto-mac v0.10.1 + Compiling block-buffer v0.9.0 + Compiling crypto-mac v0.8.0 + Compiling signature v1.2.2 + Compiling hmac v0.10.1 + Compiling blake2 v0.9.2 + Compiling sha2 v0.9.9 + Compiling ed25519 v1.2.0 + Compiling num-complex v0.4.2 + Compiling ff v0.8.0 + Compiling group v0.8.0 + Compiling synstructure v0.12.6 + Compiling zeroize_derive v1.3.2 + Compiling num-derive v0.3.3 + Compiling num v0.4.0 + Compiling zeroize v1.3.0 + Compiling elliptic-curve v0.8.5 + Compiling curve25519-dalek v3.2.1 + Compiling ecdsa v0.10.2 + Compiling ed25519-dalek v1.0.1 + Compiling k256 v0.7.3 + Compiling serde_bytes v0.11.7 + Compiling casper-types v1.5.0 + Compiling casper-contract v1.4.4 + Compiling casper-erc20 v0.2.1 (/workspace/casper_staking/erc20/erc20) +warning: unused import: `alloc::string::String` + --> erc20/src/error.rs:2:5 + | +2 | use alloc::string::String; + | ^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: missing documentation for a function + --> erc20/src/entry_points.rs:145:1 + | +145 | pub fn mint() -> EntryPoint { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +note: the lint level is defined here + --> erc20/src/lib.rs:13:9 + | +13 | #![warn(missing_docs)] + | ^^^^^^^^^^^^ + +warning: missing documentation for a variant + --> erc20/src/error.rs:28:5 + | +28 | UserAllowance(u16), + | ^^^^^^^^^^^^^ + +warning: `casper-erc20` (lib) generated 3 warnings (run `cargo fix --lib -p casper-erc20` to apply 1 suggestion) + Compiling erc20-token v0.1.0 (/workspace/casper_staking/erc20/erc20-token) +warning: unused import: `core::panic::PanicInfo` + --> erc20-token/src/main.rs:10:5 + | +10 | use core::panic::PanicInfo; + | ^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: `erc20-token` (bin "erc20_token") generated 1 warning (run `cargo fix --bin "erc20_token"` to apply 1 suggestion) + Finished release [optimized] target(s) in 25.61s +wasm-strip ../erc20/erc20-token/target/wasm32-unknown-unknown/release/staking_contract.wasm 2>/dev/null | true +``` \ No newline at end of file diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_deploy_command_error.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_deploy_command_error.md new file mode 100644 index 00000000..4ae41d84 --- /dev/null +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_deploy_command_error.md @@ -0,0 +1,25 @@ +```bash +$ casper-client put-deploy \ + --chain-name casper-test \ + --node-address http://44.208.234.65:7777 \ + --secret-key ./contract/keys/secret_key.pem \ + --session-path ./contract/target/wasm32-unknown-unknown/release/bridge_pool.wasm \ + --payment-amount 220000000000 +Cryptographic error: secret_key: secret key load failed: could not read './contract/keys/secret_key.pem': No such file or directory (os error 2) + +$ casper-client put-deploy \ + --chain-name casper-test \ + --node-address http://44.208.234.65:7777 \ + --secret-key ./staking_contract/keys/secret_key.pem \ + --session-path ./contract/target/wasm32-unknown-unknown/release/bridge_pool.wasm \ + --payment-amount 220000000000 +IO error: unable to read session file at './contract/target/wasm32-unknown-unknown/release/bridge_pool.wasm': No such file or directory (os error 2) + +$ casper-client put-deploy \ + --chain-name casper-test \ + --node-address http://44.208.234.65:7777 \ + --secret-key ./staking_contract/keys/secret_key.pem \ + --session-path ./staking_contract/target/wasm32-unknown-unknown/release/staking_contract.wasm \ + --payment-amount 220000000000 +Deploy size too large: deploy size of 2000576 bytes exceeds limit of 1048576 +``` \ No newline at end of file diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_test.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_test.md new file mode 100644 index 00000000..7bfae330 --- /dev/null +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/staking_contract_test.md @@ -0,0 +1,318 @@ +```bash +gitpod /workspace/casper_staking/staking_contract ((v0.3.1)) $ make test +cd staking_contract && cargo build --release --target wasm32-unknown-unknown + Finished release [optimized] target(s) in 0.05s +wasm-strip staking_contract/target/wasm32-unknown-unknown/release/staking_contract.wasm 2>/dev/null | true +cd ../erc20/erc20-token && cargo build --release --target wasm32-unknown-unknown +warning: unused import: `alloc::string::String` + --> erc20/src/error.rs:2:5 + | +2 | use alloc::string::String; + | ^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: missing documentation for a function + --> erc20/src/entry_points.rs:145:1 + | +145 | pub fn mint() -> EntryPoint { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +note: the lint level is defined here + --> erc20/src/lib.rs:13:9 + | +13 | #![warn(missing_docs)] + | ^^^^^^^^^^^^ + +warning: missing documentation for a variant + --> erc20/src/error.rs:28:5 + | +28 | UserAllowance(u16), + | ^^^^^^^^^^^^^ + +warning: `casper-erc20` (lib) generated 3 warnings (run `cargo fix --lib -p casper-erc20` to apply 1 suggestion) +warning: unused import: `core::panic::PanicInfo` + --> erc20-token/src/main.rs:10:5 + | +10 | use core::panic::PanicInfo; + | ^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: `erc20-token` (bin "erc20_token") generated 1 warning (run `cargo fix --bin "erc20_token"` to apply 1 suggestion) + Finished release [optimized] target(s) in 0.04s +wasm-strip ../erc20/erc20-token/target/wasm32-unknown-unknown/release/staking_contract.wasm 2>/dev/null | true +cp staking_contract/target/wasm32-unknown-unknown/release/*.wasm staking_contract_tests/wasm +cp ../erc20/target/wasm32-unknown-unknown/release/erc20_token.wasm staking_contract_tests/wasm/erc20.wasm +cd staking_contract_tests && cargo test + Downloaded hostname v0.3.1 + Downloaded downcast-rs v1.2.0 + Downloaded bit-vec v0.6.3 + Downloaded chrono v0.4.19 + Downloaded proc-macro2 v1.0.40 + Downloaded proptest v1.0.0 + Downloaded serde_derive v1.0.138 + Downloaded serde_json v1.0.82 + Downloaded unicode-ident v1.0.1 + Downloaded num_cpus v1.13.1 + Downloaded match_cfg v0.1.0 + Downloaded remove_dir_all v0.5.3 + Downloaded rand_xorshift v0.3.0 + Downloaded wait-timeout v0.2.0 + Downloaded rand_chacha v0.3.1 + Downloaded tempfile v3.3.0 + Downloaded syn v1.0.98 + Downloaded schemars_derive v0.8.5 + Downloaded wasmi v0.8.0 + Downloaded filesize v0.2.0 + Downloaded quick-error v1.2.3 + Downloaded tracing-attributes v0.1.22 + Downloaded uuid v0.8.2 + Downloaded value-bag v1.0.0-alpha.9 + Downloaded time v0.1.44 + Downloaded tracing-core v0.1.28 + Downloaded ryu v1.0.10 + Downloaded wasmi-validation v0.3.0 + Downloaded libc v0.2.126 + Downloaded linked-hash-map v0.5.6 + Downloaded num-rational v0.2.4 + Downloaded num-bigint v0.2.6 + Downloaded memory_units v0.3.0 + Downloaded lmdb-sys v0.8.0 + Downloaded thiserror v1.0.31 + Downloaded parity-wasm v0.41.0 + Downloaded itoa v1.0.2 + Downloaded indexmap v1.9.1 + Downloaded hashbrown v0.12.1 + Downloaded fastrand v1.7.0 + Downloaded getrandom v0.2.7 + Downloaded generic-array v0.14.5 + Downloaded hex-buffer-serde v0.3.0 + Downloaded datasize v0.2.10 + Downloaded casper-engine-test-support v2.2.0 + Downloaded bincode v1.3.3 + Downloaded serde v1.0.138 + Downloaded regex-syntax v0.6.27 + Downloaded tracing v0.1.35 + Downloaded casper-hashing v1.4.3 + Downloaded rusty-fork v0.3.0 + Downloaded hex-buffer-serde v0.2.2 + Downloaded itertools v0.10.3 + Downloaded either v1.7.0 + Downloaded datasize_derive v0.2.10 + Downloaded ctor v0.1.22 + Downloaded bit-set v0.5.2 + Downloaded anyhow v1.0.58 + Downloaded pwasm-utils v0.16.0 + Downloaded lmdb v0.8.0 + Downloaded lazy_static v1.4.0 + Downloaded cc v1.0.73 + Downloaded quick-error v2.0.1 + Downloaded thiserror-impl v1.0.31 + Downloaded serde_derive_internals v0.25.0 + Downloaded serde_bytes v0.11.6 + Downloaded schemars v0.8.5 + Downloaded quote v1.0.20 + Downloaded pkg-config v0.3.25 + Downloaded pin-project-lite v0.2.9 + Downloaded fnv v1.0.7 + Downloaded dyn-clone v1.0.6 + Downloaded casper-execution-engine v2.0.0 + Downloaded 73 crates (3.9 MB) in 0.65s + Compiling proc-macro2 v1.0.40 + Compiling quote v1.0.20 + Compiling unicode-ident v1.0.1 + Compiling syn v1.0.98 + Compiling autocfg v1.1.0 + Compiling version_check v0.9.4 + Compiling libc v0.2.126 + Compiling serde_derive v1.0.138 + Compiling typenum v1.15.0 + Compiling serde v1.0.138 + Compiling cfg-if v1.0.0 + Compiling subtle v2.4.1 + Compiling rand_core v0.5.1 + Compiling unicode-xid v0.2.3 + Compiling ppv-lite86 v0.2.16 + Compiling funty v1.1.0 + Compiling wyz v0.2.0 + Compiling radium v0.3.0 + Compiling byteorder v1.4.3 + Compiling opaque-debug v0.3.0 + Compiling fastrand v1.7.0 + Compiling serde_json v1.0.82 + Compiling crunchy v0.2.2 + Compiling remove_dir_all v0.5.3 + Compiling rand_chacha v0.2.2 + Compiling ryu v1.0.10 + Compiling bitvec v0.18.5 + Compiling cpufeatures v0.2.2 + Compiling bitflags v1.3.2 + Compiling hashbrown v0.12.1 + Compiling fnv v1.0.7 + Compiling schemars v0.8.5 + Compiling generic-array v0.14.5 + Compiling once_cell v1.13.0 + Compiling itoa v1.0.2 + Compiling quick-error v1.2.3 + Compiling num-traits v0.2.15 + Compiling num-integer v0.1.45 + Compiling num-bigint v0.4.3 + Compiling num-iter v0.1.43 + Compiling indexmap v1.9.1 + Compiling num-rational v0.4.1 + Compiling bit-vec v0.6.3 + Compiling rand v0.7.3 + Compiling static_assertions v1.1.0 + Compiling lazy_static v1.4.0 + Compiling quick-error v2.0.1 + Compiling dyn-clone v1.0.6 + Compiling getrandom v0.2.7 + Compiling wait-timeout v0.2.0 + Compiling tempfile v3.3.0 + Compiling bit-set v0.5.2 + Compiling regex-syntax v0.6.27 + Compiling num-bigint v0.2.6 + Compiling value-bag v1.0.0-alpha.9 + Compiling rand_core v0.6.3 + Compiling hex_fmt v0.3.0 + Compiling base64 v0.13.0 + Compiling rusty-fork v0.3.0 + Compiling rand_chacha v0.3.1 + Compiling rand_xorshift v0.3.0 + Compiling base16 v0.2.1 + Compiling pkg-config v0.3.25 + Compiling cc v1.0.73 + Compiling num-rational v0.2.4 + Compiling log v0.4.17 + Compiling rand v0.8.5 + Compiling parity-wasm v0.41.0 + Compiling either v1.7.0 + Compiling wee_alloc v0.4.5 + Compiling anyhow v1.0.58 + Compiling digest v0.9.0 + Compiling crypto-mac v0.10.1 + Compiling block-buffer v0.9.0 + Compiling crypto-mac v0.8.0 + Compiling itertools v0.10.3 + Compiling time v0.1.44 + Compiling signature v1.2.2 + Compiling hmac v0.10.1 + Compiling sha2 v0.9.9 + Compiling ed25519 v1.2.0 + Compiling blake2 v0.9.2 + Compiling tracing-core v0.1.28 + Compiling downcast-rs v1.2.0 + Compiling ff v0.8.0 + Compiling num-complex v0.4.2 + Compiling memory_units v0.3.0 + Compiling group v0.8.0 + Compiling pin-project-lite v0.2.9 + Compiling memory_units v0.4.0 + Compiling match_cfg v0.1.0 + Compiling cfg-if v0.1.10 + Compiling num_cpus v1.13.1 + Compiling hostname v0.3.1 + Compiling linked-hash-map v0.5.6 + Compiling chrono v0.4.19 + Compiling filesize v0.2.0 + Compiling wasmi-validation v0.3.0 + Compiling proptest v1.0.0 + Compiling lmdb-sys v0.8.0 + Compiling wasmi v0.8.0 + Compiling synstructure v0.12.6 + Compiling serde_derive_internals v0.25.0 + Compiling lmdb v0.8.0 + Compiling zeroize_derive v1.3.2 + Compiling schemars_derive v0.8.5 + Compiling datasize_derive v0.2.10 + Compiling num-derive v0.3.3 + Compiling ctor v0.1.22 + Compiling thiserror-impl v1.0.31 + Compiling tracing-attributes v0.1.22 + Compiling zeroize v1.3.0 + Compiling datasize v0.2.10 + Compiling elliptic-curve v0.8.5 + Compiling curve25519-dalek v3.2.1 + Compiling ecdsa v0.10.2 + Compiling ed25519-dalek v1.0.1 + Compiling k256 v0.7.3 + Compiling tracing v0.1.35 + Compiling thiserror v1.0.31 + Compiling hex v0.4.3 + Compiling serde_bytes v0.11.6 + Compiling uuid v0.8.2 + Compiling bincode v1.3.3 + Compiling uint v0.9.3 + Compiling hex-buffer-serde v0.3.0 + Compiling hex-buffer-serde v0.2.2 + Compiling pwasm-utils v0.16.0 + Compiling num v0.4.0 + Compiling casper-types v1.5.0 + Compiling casper-hashing v1.4.3 + Compiling casper-contract v1.4.4 + Compiling casper-execution-engine v2.0.0 + Compiling contract-utils v0.1.0 (/workspace/casper_staking/staking_contract/utils/contract-utils) + Compiling casper-engine-test-support v2.2.0 + Compiling test-env v0.1.0 (/workspace/casper_staking/staking_contract/utils/test-env) + Compiling staking_contract_tests v0.1.0 (/workspace/casper_staking/staking_contract/staking_contract_tests) +warning: unused variable: `staking_contract_package_hash` + --> src/staking_contract_tests.rs:211:9 + | +211 | let staking_contract_package_hash = get_stacking_contract_package_hash(&builder); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_staking_contract_package_hash` + | + = note: `#[warn(unused_variables)]` on by default + +warning: unused variable: `staking_contract_package_hash` + --> src/staking_contract_tests.rs:346:9 + | +346 | let staking_contract_package_hash = get_stacking_contract_package_hash(&builder); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_staking_contract_package_hash` + +warning: unused variable: `staking_contract_package_hash` + --> src/staking_contract_tests.rs:499:9 + | +499 | let staking_contract_package_hash = get_stacking_contract_package_hash(&builder); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_staking_contract_package_hash` + +warning: unused variable: `staking_contract_package_hash` + --> src/staking_contract_tests.rs:648:9 + | +648 | let staking_contract_package_hash = get_stacking_contract_package_hash(&builder); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_staking_contract_package_hash` + +warning: unused variable: `staking_contract_package_hash` + --> src/staking_contract_tests.rs:780:9 + | +780 | let staking_contract_package_hash = get_stacking_contract_package_hash(&builder); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_staking_contract_package_hash` + +warning: constant `ADDRESS` is never used + --> src/staking_contract_tests.rs:15:7 + | +15 | const ADDRESS: &str = "9e7283533626d0c7d43fa9ca745af20d8dac7fc3bfe03cdfe50d523a2a0f498d"; + | ^^^^^^^ + | + = note: `#[warn(dead_code)]` on by default + +warning: `staking_contract_tests` (lib test) generated 6 warnings (run `cargo fix --lib -p staking_contract_tests --tests` to apply 5 suggestions) + Finished test [unoptimized + debuginfo] target(s) in 1m 07s + Running unittests src/lib.rs (target/debug/deps/staking_contract_tests-3339c36f060eeb27) + +running 6 tests +test staking_contract_tests::test_approve_and_stake ... ok +test staking_contract_tests::test_approve_and_stake_and_staker_reward ... ok +test staking_contract_tests::test_approve_and_stake_and_amount_staked ... ok +test staking_contract_tests::test_approve_and_stake_and_get_current_reward ... ok +test staking_contract_tests::test_approve_and_stake_and_withdraw ... ok +test staking_contract_tests::test_approve_and_stake_and_add_reward ... ok + +test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.47s + + Doc-tests staking_contract_tests + +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 diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_blank_screen.png b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_blank_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..2acabb40755fe8c56aa67626f2a567138354a154 GIT binary patch literal 7372 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 Kk#hd}oqq%JrE8f0 literal 0 HcmV?d00001 diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_error_on_connect_wallet.png b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/assets/usage_review_error_on_connect_wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..41af8d307954ae63c49e23fae1d2802024a9efa9 GIT binary patch literal 54095 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
~2r!uXkR8;uumCRDHNi|IR%^U1{`eTbR1PJ(HS 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 z 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 literal 0 HcmV?d00001 From e37b64f70dfe39df15295eaf27fcaf57f5fa495c Mon Sep 17 00:00:00 2001 From: haticeyk84 <97253701+haticeyk84@users.noreply.github.com> Date: Mon, 29 May 2023 15:53:42 +0300 Subject: [PATCH 4/4] Update README.md --- .../README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md index 7eb9d939..c0ae9030 100644 --- a/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md +++ b/Reviews/318 - Cross Chain Token Bridge-Staking as a Service Solutions/6 - Build, Deploy, and Internally QA Staking Shell App/README.md @@ -18,9 +18,7 @@ Reviewer | Hatice Kaya 4. Early Withdrawal 5. Redistribution of Early Withdrawal 6. Maturity - - Integrate bridge with one of the Casper’s compatible wallets - - Share Staking shell app with internal team for QA and incorporate QA feedback **Acceptance criteria:** @@ -70,11 +68,12 @@ When attempting to do usage testing on the OP's deployment at the given URL (htt After communication with the OP, a new url (https://casper-staking.ferrumnetwork.io/b9e3b671e577a7d7a4c53aa7010449b47fb8a811c76582dcc41f65a67a16e23d) was provided for usage testing. The app was loaded and visible on the new url. When the Connect Wallet button was clicked, nothing happened on the user interface, and an error was seen on the developer console of the browser. ![Frontend usage review Connect Wallet error](assets/usage_review_error_on_connect_wallet.png) + ## Overall Impression of usage testing A number of errors were encountered during the build, installation, and usage of the project. It was not possible to do a complete usage testing due to the encountered errors mentioned above. The documentation does not provide sufficient installation/execution instructions, and containes errors. -Due to the issues mentioned above, and because this is the final milestone of the project, the submission should FAIL on all of the criteria in this section. +Due to the issues mentioned above, and because this is the late milestone of the project, the submission should FAIL on all of the criteria in this section. Requirement | Finding ------------ | ------------- @@ -94,7 +93,7 @@ The OP needs to improve test coverage by adding more tests to the smart contract The OP also needs to add tests to the frontend repository. -Due to the issues mentioned above, and because this is the final milestone of the project, the submission should FAIL on all criteria of this section. +Due to the issues mentioned above, and because this is the late milestone of the project, the submission should FAIL on all criteria of this section. Requirement | Finding ------------ | ------------- @@ -108,7 +107,7 @@ Unit Tests - Additional path tests | FAIL The code-level documentation of the project is very limited, lacking standard inline comments which allow auto-generation of the documentation throughout the code-base. The OP needs to improve the code-level documentation significantly by adding standard code comments. -Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail on the criterion of this section. +Due to the issues mentioned above, and because this is the late milestone of the project, this submission should fail on the criterion of this section. Requirement | Finding ------------ | ------------- @@ -116,9 +115,9 @@ Code Documented | FAIL ### Project Documentation -The project documentation is not at an acceptable level for this final milestone. OP needs to improve the project level documentation significantly, and fix the errors in the existing documentation. Although there is a good attempt of documentation on the frontend repository, especially the given examples on the smart contract repository are not working. +The project documentation is not at an acceptable level for this late milestone. OP needs to improve the project level documentation significantly, and fix the errors in the existing documentation. Although there is a good attempt of documentation on the frontend repository, especially the given examples on the smart contract repository are not working. -Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail on all of the criteria of this section. +Due to the issues mentioned above, and because this is the late milestone of the project, this submission should fail on all of the criteria of this section. Requirement | Finding ------------ | ------------- @@ -143,7 +142,7 @@ OSI-approved open source software license | PASS Pull requests and Issues are enabled on the repositories, but the project lacks CONTRIBUTING.md and SECURITY.md. -Due to the issues mentioned above, and because this is the final milestone of the project, this submission should fail in this section. +Due to the issues mentioned above, and because this is the late milestone of the project, this submission should fail in this section. Requirement | Finding ------------ | ------------- @@ -159,7 +158,7 @@ The project also has a number of security vulnerabilities dicovered by the depen ![Frontend security alerts](assets/frontend_security_alerts.png) -Due to the security issues on the repository, and because this is the final milestone of the project, the submission should fail in this section. OP needs to fix the security vulnerabilities for this submission to pass the next review. +Due to the security issues on the repository, and because this is the late milestone of the project, the submission should fail in this section. OP needs to fix the security vulnerabilities for this submission to pass the next review. # Final Conclusion