diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/README.md b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/README.md new file mode 100644 index 00000000..0afa19d3 --- /dev/null +++ b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/README.md @@ -0,0 +1,220 @@ +Grant Proposal | [174 - Ultimate Division - decentralised game with true ownership](https://portal.devxdao.com/public-proposals/174) +------------ | ------------- +Milestones | 2 +Milestone Titles | Tactical gameplay, NFT marketplace, weekly competition and ranked divisions +OP | ChickenFish +Reviewer | Gökhan Gurbetoğlu + +# Milestone Details + +## Details & Acceptance Criteria + +**Details of what will be delivered in milestone:** + +At this stage of the game we will be ready to introduce tactical football gameplay. +Each game will be 4.6 minutes long and the game client will be loaded as a webGL project exported from unity3D. +The gameplay will be built upon the game parameters stored as metadata in the NFTs. +In-game ranking will be divided into 10 divisions that allow players to be distributed into different skill-groups. +Weekly competition will be held to promote and relegate players, and rewards will be distributed in accordance to ranking. + +**Acceptance criteria:** + +1. Authorized CasperLabs Signer users can play tactical football matches +2. The gameplay recognizes NFTs and their metadata as in-game stats +3. Match results impact player standing in the division + First 30 games are counted towards division standing every week. Like in football, a win nets 3 points, a draw - 1 point and no points for losses. There are 10 divisions, every club starts from the bottom one. To get promoted, the club needs to be among the 10th percentile of said division’s participants. + Getting to higher divisions leads to the opportunity of getting better rewards. + +4. Weekly competition concludes every Sunday and distributes $UDT rewards via the cryptography signer service + + Just like with the NFT rewards, token rewards will be allocated by the server, but it will always be up to the user to claim them. Given the reward amount and the user’s wallet address, the server will use a securely stored private key to generate a signature. Once the smart contract receives the signature, it compares it to the public key it has and transfers the tokens to the given address. + +5. NFTs can be traded on the Ultimate Division marketplace +The marketplace will be organized in a timed auction format. +The contract will have the following functions: + + 5.1. Setup Timed Auction - set up an auction with given parameters: final time and time period for auto continuation of the auction in case of the new bid, buyout bid. + 5.2. Bid for Timed auction - the bid sends money to new escrow and sends previous escrow to the previous bidder. Time and price monotonicity checks must be performed. + 5.3. Revert bid - cancels bid and withdraw escrow funds. + 5.4. Finalize Timed auction - finalize the auction. A time check must be performed. Can be called by either party (or even publicly) + + The back-end and frontend will be built to display the current information about ongoing auctions. For a user to perform any auction-related action, a transaction will be send to his wallet. The user will have to confirm the transaction and incur the gas fees. + +6. The tactical football game must be fully functional for all users. Every user should be able to participate in weekly competitions and get a ranked-based reword in $UDT for playing. +The marketplace must be functional for all users to buy and sell in-game NFTs in a timed auction manner. + +7. The submitted code base includes: + 7.1. WebGL Gameplay module + 7.2. Weekly competition ledger service + 7.3. Reward system service that handles individual game results alongside weekly competition results + 7.4. NFT marketplace for in-game items + +**Additional notes regarding submission from OP:** + +The process of launching and testing the app is described in the GitHub, but please feel free to reach me for any help in telegram @azarov + +## Milestone Submission + +The following milestone assets/artifacts were submitted for review: + +Repository | Revision Reviewed +------------ | ------------- +https://github.com/BoostyLabs/ultimatedivision | 879993c + + +# Install & Usage Testing Procedure and Findings + +The reviewer used a cloud GitPod instance running Ubuntu 22.04.2 LTS, a local Pardus 21.3 GNU/Linux machine, a debug server provided by OP at https://develop.ultimatedivision.com/ and a remote machine also provided by OP. + +This grant was designed with the intention of utilizing Casper Signer, as it was initially expected for this purpose. Throughout all user testing, Casper Signer was used for evaluation instead of Casper Wallet. + +At the beginning of the review, some errors were encountered during the deployment while attempting to mint new player cards for a user. These errors resulted in the failure of the minting operation on the chain. By investigating the errors, the OP identified that the issue was related to gas fee adjustments. After implementing the necessary changes to address this problem, the issue was resolved, and the minting process functioned as intended without any further difficulties. + +There were some redundant modules in the app that were no longer in use, and the same problem extended to some dependencies as well. These extra packages had security issues due to their outdated package dependencies, as they were not updated along with the rest of the application. After informing the OP about these concerns, they took prompt action to address the situation. They removed the unused modules from their application and updated the rest of the dependency packages used by the main modules, ensuring they passed security audits. It's worth noting that there is one string-related issue in a library file provided by Unity, which has been omitted from this part of the review. + +## Installation + +The reviewer initiated the installation process by following the instructions provided in the README. After running the individual setup files for each module, empty config files were created at `~/.local/share/ultimatedivision/config.json`, `~/.local/share/ultimatedivision/currencysigner/config.json` and `~/.local/share/ultimatedivision/nftsigner/config.json`, respectively. Then the reviewer used the values from the provided example config files from `configsexamples` folder of the repository to continue the setup process. Following the completion of the installation, the application became accessible at localhost:8088 on the server. + +- [Installation Logs](assets/installation-logs.md) + +## Usage Testing + +After starting the application, the reviewer did the user testing. Following user testing is told step by step as they appear in the acceptance criteria. + +1. The reviewer used Casper Signer to login to the application. + + #### Dashboard + ![](assets/dashboard.png) + #### Login + ![](assets/login.png) + +2. The gameplay recognizes NFTs and their metadata as in-game stats. The minting operation is done after creating randomly generated player cards. After the creation, the reviewer used the option to mint the specific cards and after some time, respective NFT were minted on chain. These operations can be checked from the deployments. Here are some example deploys for verification: + + - https://testnet.cspr.live/deploy/d1959ffda946aee578d4d5debd770883c885088da53f42e213b76745a5ec99ca + - https://testnet.cspr.live/deploy/0848404c44efc935aedbc9b9e73f789ea13c77ab5b4c0d45e14196be0ffe2206 + - https://testnet.cspr.live/deploy/97a3b95b9e98984752852fae7b96dac5ff957a1e62366e5e2be3c7ead56c475e + + #### Player stats and mint option + ![](assets/player-stats-and-mint.png) + +3. Match results impact player standing in the division. For the purpose of this review, the OP decreased the league durations and matches needed to be completed for a league to end. After doing three matches, a winner was selected and promoted to the upper league. + +4. Weekly competition concludes every Sunday and distributes $UDT rewards via the cryptography signer service. Users were able to get their rewards either at the end of each match, or at the end of the league all together. Here are some example deploys for reward claims: + - https://testnet.cspr.live/deploy/8eaad0e1406bd9bf27e0f9e54150e503bf2ab1ea46c6ea8b9c50a52ad8de1f76 + - https://testnet.cspr.live/deploy/012082b0c99583b3ed8d31953b245c43cd55a854de023943b0f8823eab8b0e63 + - https://testnet.cspr.live/deploy/b74bc3892febbd4266ed2fc7dcb4a7f8c779b62fab07d9715456cee5b45119ff + +5. NFTs can be traded on the Ultimate Division marketplace. For the purpose of this review, the duration of the marketplace sells were lowered. Also, the option to sell immediately were used in some places. A seller can list a player card from the marketplace screen and then a buyer can put bids on it. If the buyer is willing to get the card immediately, they can just buy it from the sell price defined by the seller. Some sample deploys are below: + + #### Listing 1: Card is bought with bidding offer + - `create_listing`: https://testnet.cspr.live/deploy/9912226a16a7b9172c4edfbd7138aaa6e43c7f011e591e4ca68e5de800654e5d + - `make_offer`: https://testnet.cspr.live/deploy/27e99a0d39f216b1c378082be4cd8f489b48f3312c8698da8f23e4bfb5c82ea7 + - `buy_listing`: https://testnet.cspr.live/deploy/1baa4d1e6ffb62a9ac6cbd15e5989e3759b8021136b39715c417c581b244dfa9 + + #### Listing 2: Card is directly bought + - `create_listing`: https://testnet.cspr.live/deploy/1d2cb7100e997f8c47590384517ec14bc960fac715ee201752fdc7bb3bfdfa4c + - `final_listing`: https://testnet.cspr.live/deploy/f2ace5aabd932588c5d414f7ad7357d6a92aa760aec2645252e6231e9ab92261 + + #### Selling a card + ![](assets/sell-card.png) + #### Marketplace with auctioned cards + ![](assets/marketplace.png) + #### Bidding screen for buyers + ![](assets/bidding.png) + +6. The reviewer created a team by going to the field page and assigning player cards to their starting lineup. For this, at least 11 player cards were needed. After assigning all positions, the team was ready to play a game against another user. At this stage, the reviewer clicked Play to look for a match. Another test user was used to accept the match and the gameplay page loaded. Gameplay page consists of a visible landscape soccer field and players, each laying on a point on the grid system. The game is played in a turn-by-turn basis. Each player clicks and makes a move for one of their players for each round. After playing for a while, the game ends and the score is noted. Then, users are rewarded according to the result of the match. + + #### Field + ![](assets/field.jpg) + #### Gameplay + ![](assets/gameplay-1.jpg) + ![](assets/gameplay-2.jpg) + #### End game + ![](assets/endgame.png) + #### Claiming rewards + ![](assets/claiming-rewards.png) + + +## Overall Impression of usage testing + +The project builds without errors, and the documentation provides sufficient installation and execution instructions. Additionally, the project functionality meets the acceptance criteria and operates without errors. All builds were successful, and all unit tests ran without errors. + +Requirement | Finding +------------ | ------------- +Project builds without errors | PASS +Documentation provides sufficient installation/execution instructions | PASS +Project functionality meets/exceeds acceptance criteria and operates without error | PASS + +# Unit / Automated Testing + +Unit tests for the project are present, covering critical functionality as defined in the acceptance criteria. However, the reviewer suggests improving the existing unit tests for other parts of the project to ensure a more comprehensive assessment. + +- [Unit Tests Logs](assets/unit-tests-logs.md) + +Requirement | Finding +------------ | ------------- +Unit Tests - At least one positive path test | PASS +Unit Tests - At least one negative path test | PASS +Unit Tests - Additional path tests | PASS + + +# Documentation + +### Code Documentation + +Code documentation is very well prepared and is of high quality. All critical functionality of the code is commented. Many other helping comments and documentation are provided within the code and they are well prepared and detailed. + +Requirement | Finding +------------ | ------------- +Code Documented | PASS + +### Project Documentation + +At the start of the review, the README file was not up to date, and the installation instructions were not very clear due to the document's structure and the assumption that the user already knew some parts of the installation process and dependencies. After discussing these issues with OP, they revised the structure of the steps, added additional information, and clarified the ambiguous parts. In its final state, the project documentation is sufficient. There are proper instructions about the installation, testing and deployment requirements in the README file. Additional documentation is readily available for developers. + +Requirement | Finding +------------ | ------------- +Usage Documented | PASS +Example Documented | PASS + +## Overall Conclusion on Documentation + +Both the code documentation and the project documentation for the project is sufficiently prepared for this milestone. + + +# Open Source Practices + +## Licenses + +The project is released under MIT license. + +Requirement | Finding +------------ | ------------- +OSI-approved open source software license | PASS + +## Contribution Policies + +Project contains CONTRIBUTING, SECURITY and CODE OF CONDUCT policies. However, there are some missing parts inside the CONTRIBUTING policy, while not directly affecting the policy, the reviewer suggests that these should either be expanded, or removed completely, to prevent confusion. Pull requests and Issues are enabled on the repositories and the project is set up for public participation. + +Requirement | Finding +------------ | ------------- +OSS contribution best practices | PASS + + +# Coding Standards + +## General Observations + +Source code is well written, easily readable, and conforms to good coding practices overall. The project also uses `golangci-lint` as its linter, which adds additional value to its syntax and structure. + + +# Final Conclusion + +The application successfully fulfills the acceptance criteria. Critical functionality is covered by unit tests, and both code and general documentation provide sufficient information. The project adheres to open-source practices and coding standards, showcasing a high level of competence. Because of these, the reviewer recommends a resolution of PASS for this milestone. + + +# Recommendation + +Recommendation | PASS +------------ | ------------- diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/bidding.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/bidding.png new file mode 100644 index 00000000..550de8ce Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/bidding.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/claiming-rewards.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/claiming-rewards.png new file mode 100644 index 00000000..58c25fde Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/claiming-rewards.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/dashboard.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/dashboard.png new file mode 100644 index 00000000..fcdccd15 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/dashboard.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/endgame.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/endgame.png new file mode 100644 index 00000000..9ec5b9b9 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/endgame.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/field.jpg b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/field.jpg new file mode 100644 index 00000000..4a88ef97 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/field.jpg differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-1.jpg b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-1.jpg new file mode 100644 index 00000000..f320ef0c Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-1.jpg differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-2.jpg b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-2.jpg new file mode 100644 index 00000000..24578f1d Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/gameplay-2.jpg differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/installation-logs.md b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/installation-logs.md new file mode 100644 index 00000000..e6e69168 --- /dev/null +++ b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/installation-logs.md @@ -0,0 +1,121 @@ +# Installation Logs + +```sh +gitpod /workspace/ultimatedivision (develop) $ docker run --name=db -e POSTGRES_PASSWORD='123456' -p 5432:5432 -d --rm post +gres +Unable to find image 'postgres:latest' locally +latest: Pulling from library/postgres +faef57eae888: Pull complete +a33c10a72186: Pull complete +d662a43776d2: Pull complete +a3ba86413420: Pull complete +a627f37e9916: Pull complete +424bade69494: Pull complete +dd8d4fcd466b: Pull complete +03d0efeea592: Pull complete +4f27e1518a67: Pull complete +0c8ac8b8eb90: Pull complete +c08e79653ad2: Pull complete +d5724e8c22af: Pull complete +3db4aa0d2013: Pull complete +Digest: sha256:362a63cb1e864195ea2bc29b5066bdb222bc9a4461bfaff2418f63a06e56bce0 +Status: Downloaded newer image for postgres:latest +7dc712b86bdce6569ae381463ca79f6d55f86160726f9e36e16418ce960f8d17 +gitpod /workspace/ultimatedivision (develop) $ docker exec -it db createdb -U postgres ultimatedivisiondb_test +gitpod /workspace/ultimatedivision (develop) $ go run cmd/ultimatedivision/main.go setup +gitpod /workspace/ultimatedivision (develop) $ go run cmd/currencysigner/main.go setup +gitpod /workspace/ultimatedivision (develop) $ go run cmd/nftsigner/main.go setup +``` + +```sh +gitpod /workspace/ultimatedivision (develop) $ cd web/console/ +gitpod /workspace/ultimatedivision/web/console (develop) $ npm i --force && npm run build +npm WARN using --force Recommended protections disabled. +npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. +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 workbox-cacheable-response@6.6.0: workbox-background-sync@6.6.0 +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 sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead +npm WARN deprecated mini-create-react-context@0.4.1: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. +npm WARN deprecated @types/redux-thunk@2.1.0: This is a stub types definition for Redux Thunk (https://github.com/gaearon/redux-thunk). Redux Thunk provides its own type definitions, so you don't need @types/redux-thunk installed! +npm WARN deprecated @types/redux@3.6.0: This is a stub types definition for Redux (https://github.com/reactjs/redux). Redux provides its own type definitions, so you don't need @types/redux installed! +npm WARN deprecated @types/history@5.0.0: This is a stub types definition. history provides its own type definitions, so you do not need this installed. +npm WARN deprecated @stylelint/postcss-markdown@0.36.2: Use the original unforked package instead: postcss-markdown +npm WARN deprecated @stylelint/postcss-css-in-js@0.37.3: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. +npm WARN deprecated svgo@1.3.2: This SVGO version is no longer supported. Upgrade to v2.x.x. + +added 1688 packages, and audited 1689 packages in 22s + +361 packages are looking for funding + run `npm fund` for details + +found 0 vulnerabilities +npm notice +npm notice New minor version of npm available! 9.5.1 -> 9.8.1 +npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.8.1 +npm notice Run npm install -g npm@9.8.1 to update! +npm notice + +> cryptofotball@0.1.0 build +> webpack --mode production + +(node:11990) [DEP_WEBPACK_TEMPLATE_PATH_PLUGIN_REPLACE_PATH_VARIABLES_HASH] DeprecationWarning: [hash] is now [fullhash] (also consider using [chunkhash] or [contenthash], see documentation for details) +(Use `node --trace-deprecation ...` to show where the warning was created) +assets by info 22.8 MiB [immutable] 115 assets +assets by path *.css 522 KiB + asset 691.css 215 KiB [emitted] 1 related asset + asset 453.css 58 KiB [emitted] 1 related asset + + 17 assets +assets by path webGl/ 58.7 MiB + assets by path webGl/*.js 272 KiB 2 assets + asset webGl/Football.wasm 37.2 MiB [emitted] [from: src/app/static/webGl/Football.wasm] [copied] [big] + asset webGl/Football.data 21.2 MiB [emitted] [from: src/app/static/webGl/Football.data] [copied] [big] +asset index.html 1.61 KiB [emitted] +asset favicon.ico 533 bytes [emitted] +Entrypoint main [big] 456 KiB (642 KiB) = 722.05df16d97dd5fe73da10.js 378 KiB main.css 24.3 KiB main.05df16d97dd5fe73da10.js 53.3 KiB 24 auxiliary assets +orphan modules 1.51 MiB [orphan] 318 modules +runtime modules 9.89 KiB 16 modules +modules by path ./ 3.01 MiB (javascript) 497 KiB (css/mini-extract) 20.3 MiB (asset) + javascript modules 3.01 MiB + modules by path ./node_modules/ 2.63 MiB 262 modules + modules by path ./src/ 394 KiB 68 modules + css modules 497 KiB + modules by path ./src/app/components/ 409 KiB 46 modules + modules by path ./src/app/views/ 68.9 KiB 15 modules + modules by path ./node_modules/ 16 KiB 3 modules + css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/index.scss 3.11 KiB [built] [code generated] + asset modules 2.54 KiB (javascript) 20.3 MiB (asset) 62 modules +optional modules 30 bytes [optional] + buffer (ignored) 15 bytes [optional] [built] [code generated] + buffer (ignored) 15 bytes [optional] [built] [code generated] + +WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). +This can impact web performance. +Assets: + images/background9acd5.svg (309 KiB) + images/represent-logo6583d.gif (11.7 MiB) + images/diamondCardea9e0.webp (871 KiB) + images/playing-field5117d.svg (1.93 MiB) + images/player-left8406f.svg (1.85 MiB) + images/player-right4c58e.svg (1.85 MiB) + images/field-animationbeb31.webp (737 KiB) + 54.05df16d97dd5fe73da10.js (984 KiB) + 722.05df16d97dd5fe73da10.js (378 KiB) + webGl/Football.data (21.2 MiB) + webGl/Football.framework.js (252 KiB) + webGl/Football.wasm (37.2 MiB) + images/player-right4c58e.svg.br (1.36 MiB) + images/player-left8406f.svg.br (1.36 MiB) + images/playing-field5117d.svg.br (1.43 MiB) + +WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance. +Entrypoints: + main (456 KiB) + 722.05df16d97dd5fe73da10.js + main.css + main.05df16d97dd5fe73da10.js + + +webpack 5.88.2 compiled with 2 warnings in 35937 ms +gitpod /workspace/ultimatedivision (develop) $ go run cmd/ultimatedivision/main.go run +``` \ No newline at end of file diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/login.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/login.png new file mode 100644 index 00000000..2549dc89 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/login.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/marketplace.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/marketplace.png new file mode 100644 index 00000000..f01c6ca0 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/marketplace.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/player-stats-and-mint.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/player-stats-and-mint.png new file mode 100644 index 00000000..c348ccfd Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/player-stats-and-mint.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/sell-card.png b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/sell-card.png new file mode 100644 index 00000000..76ed0a51 Binary files /dev/null and b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/sell-card.png differ diff --git a/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/unit-tests-logs.md b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/unit-tests-logs.md new file mode 100644 index 00000000..5b1c582c --- /dev/null +++ b/Reviews/174 - Ultimate Division - decentralised game with true ownership/2 - Tactical gameplay, NFT marketplace, weekly competition and ranked divisions/assets/unit-tests-logs.md @@ -0,0 +1,70 @@ +```sh +gitpod /workspace/ultimatedivision (develop) $ go test ./... +? ultimatedivision [no test files] +? ultimatedivision/admin/adminauth [no test files] +? ultimatedivision/admin/adminserver [no test files] +? ultimatedivision/admin/adminserver/controllers [no test files] +? ultimatedivision/cardgenerator [no test files] +? ultimatedivision/cardgenerator/cardavatars [no test files] +? ultimatedivision/cmd/cardgenerator [no test files] +? ultimatedivision/cmd/currencysigner [no test files] +? ultimatedivision/cmd/nftsigner [no test files] +? ultimatedivision/cmd/ultimatedivision [no test files] +? ultimatedivision/console/consoleserver [no test files] +? ultimatedivision/console/consoleserver/controllers [no test files] +? ultimatedivision/console/consoleserver/controllers/servertesting [no test files] +? ultimatedivision/database/dbtesting [no test files] +? ultimatedivision/currencysigner [no test files] +? ultimatedivision/database [no test files] +? ultimatedivision/console/emails [no test files] +ok ultimatedivision/admin/admins 1.010s +ok ultimatedivision/cards 1.281s +ok ultimatedivision/cards/avatars 1.105s +ok ultimatedivision/cards/nfts 1.111s +ok ultimatedivision/cards/waitlist 1.186s +ok ultimatedivision/clubs 1.205s +ok ultimatedivision/console/connections 0.913s +ok ultimatedivision/divisions 0.805s +ok ultimatedivision/gameplay/gameengine 0.903s +? ultimatedivision/gameplay/matchmaking [no test files] +? ultimatedivision/internal/logger [no test files] +? ultimatedivision/internal/logger/zaplog [no test files] +? ultimatedivision/internal/mail [no test files] +? ultimatedivision/internal/metrics [no test files] +? ultimatedivision/internal/postgres [no test files] +? ultimatedivision/internal/remotefilestorage [no test files] +? ultimatedivision/internal/remotefilestorage/mock [no test files] +? ultimatedivision/internal/remotefilestorage/storj [no test files] +? ultimatedivision/internal/tempdb [no test files] +? ultimatedivision/internal/templatefuncs [no test files] +ok ultimatedivision/gameplay/matches 1.393s +ok ultimatedivision/gameplay/queue 0.589s +ok ultimatedivision/internal/contract/casper (cached) +? ultimatedivision/nftsigner [no test files] +? ultimatedivision/pkg/auth [no test files] +? ultimatedivision/pkg/contractcasper [no test files] +? ultimatedivision/pkg/fileutils [no test files] +? ultimatedivision/pkg/imageprocessing [no test files] +? ultimatedivision/pkg/jsonrpc [no test files] +? ultimatedivision/pkg/mail [no test files] +? ultimatedivision/pkg/nft [no test files] +? ultimatedivision/pkg/pagination [no test files] +? ultimatedivision/pkg/publicprivatekey [no test files] +? ultimatedivision/pkg/rand [no test files] +? ultimatedivision/pkg/sqlsearchoperators [no test files] +? ultimatedivision/pkg/velas [no test files] +ok ultimatedivision/marketplace 1.091s +ok ultimatedivision/marketplace/bids 1.178s +ok ultimatedivision/pkg/bigint (cached) +ok ultimatedivision/pkg/eventparsing (cached) +ok ultimatedivision/pkg/ratelimit (cached) +ok ultimatedivision/pkg/signer (cached) +? ultimatedivision/seed [no test files] +? ultimatedivision/users/userauth [no test files] +ok ultimatedivision/seasons 0.590s +ok ultimatedivision/store 0.503s +ok ultimatedivision/store/lootboxes 0.519s +ok ultimatedivision/udts 0.510s +ok ultimatedivision/udts/currencywaitlist 0.511s +ok ultimatedivision/users 0.673s +``` \ No newline at end of file