========================
yarn install===============
Every smart contract in NEAR has its own associated account. When you run yarn dev, your smart contract gets deployed to the live NEAR TestNet with a throwaway account. When you're ready to make it permanent, here's how.
near-cli is a command line interface (CLI) for interacting with the NEAR blockchain. It was installed to the local node_modules folder when you ran yarn install, but for best ergonomics you may want to install it globally:
yarn install --global near-cli
Or, if you'd rather use the locally-installed version, you can prefix all near commands with npx
Ensure that it's installed with near --version (or npx near --version)
Each account on NEAR can have at most one contract deployed to it. If you've already created an account such as your-name.testnet, you can deploy your contract to amm.your-name.testnet. Assuming you've already created an account on NEAR Wallet, here's how to create amm.your-name.testnet:
-
Authorize NEAR CLI, following the commands it gives you:
near login
-
Create a subaccount (replace
YOUR-NAMEbelow with your actual account name):near create-account amm.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet
Modify the line in src/config.js that sets the account name of the contract. Set it to the account id you used above.
const CONTRACT_NAME = process.env.CONTRACT_NAME || 'amm.YOUR-NAME.testnet'
yarn deploy or near deploy
As you can see in package.json, this does two things:
- builds & deploys smart contract to NEAR TestNet
- builds & deploys frontend code to GitHub using gh-pages. This will only work if the project already has a repository set up on GitHub. Feel free to modify the
deployscript inpackage.jsonto deploy elsewhere.
On Windows, if you're seeing an error containing EPERM it may be related to spaces in your path. Please see this issue for more details.
/**
* Vector chứa các trận đấu đang chờ
* PersistentVector ~ List ~ Danh sách liên kết đơn/đôi
**/
const waitingMatch = new PersistentVector<Match>("w");/**
* Vector chứa các trận đấu đang diễn ra
* Khi 1 trận đấu đang ở waiting mà đủ người chơi, trận đấu sẽ chuyển sang trạng thái running
* Trình tự: Remove match from waitingMatch Vertor -> Insert to RunningMatch Vector
**/
const runningMatch = new PersistentVector<Match>("r");/**
* Vector chứa các trận đấu đã diễn ra
* Khi 1 trận đấu đang ở running mà đã có kết quả, dữ liệu trận đấu sẽ được lưu vào finishedMatch
* Trình tự: Remove match from runningMatch vector -> Insert to FinishedMatch Vector
**/
const finishedMatch = new PersistentVector<Match>("f");/**
* Vector chứa lịch sử thi đấu của người chơi
* Khi runningMatch hoàn thành, trận đấu sẽ kết thúc
* Hệ thống sẽ ghi nhận người thắng/ thua và lưu vào danh sách lịch sử của người chơi
**/
const historyMatch = new PersistentMap<String, PersistentVector<History>>("h")