-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add project structure docs * Add architecture documentation and quickstart guide * Rearrange documentation * Change project structure doc
- Loading branch information
1 parent
d8c7ae4
commit a97e4b8
Showing
7 changed files
with
156 additions
and
117 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,7 @@ package-lock.json | |
/contract/target | ||
|
||
# misc | ||
dev.env | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,100 +1,60 @@ | ||
near-blank-project | ||
================== | ||
# SWEAT DeFi Jar | ||
|
||
This app was initialized with [create-near-app] | ||
$SWEAT staking smart contract. | ||
|
||
--- | ||
|
||
Quick Start | ||
=========== | ||
## 1. Exploring the project | ||
|
||
If you haven't installed dependencies during setup: | ||
Read the [**Project documentation**](docs/requirements.md) page. | ||
|
||
npm install | ||
## 2. Quickstart | ||
|
||
1. Make sure you have installed [rust](https://rust.org/). | ||
2. Install the [`NEAR CLI`](https://github.com/near/near-cli#setup) | ||
|
||
Build and deploy your contract to TestNet with a temporary dev account: | ||
If you already have `rustup` installed, you can ensure that the correct version of the compiler and the NEAR CLI is installed as well: | ||
|
||
npm run deploy | ||
```shell | ||
make install | ||
``` | ||
|
||
Test your contract: | ||
### 2.1. General information | ||
|
||
npm test | ||
To learn how to build the project, deploy it, and run tests run the following command: | ||
|
||
If you have a frontend, run `npm start`. This will run a dev server. | ||
```shell | ||
make help | ||
``` | ||
|
||
### 2.2. Build and Deploy the Contract | ||
First build the contract using provided `make` command: | ||
|
||
Exploring The Code | ||
================== | ||
```bash | ||
make build | ||
``` | ||
|
||
1. The smart-contract code lives in the `/contract` folder. See the README there for | ||
more info. In blockchain apps the smart contract is the "backend" of your app. | ||
2. The frontend code lives in the `/frontend` folder. `/frontend/index.html` is a great | ||
place to start exploring. Note that it loads in `/frontend/index.js`, | ||
this is your entrypoint to learn how the frontend connects to the NEAR blockchain. | ||
3. Test your contract: `npm test`, this will run the tests in `integration-tests` directory. | ||
Then deploy and initialize it. Rename `dev.env.example` to `dev.env` and define variable values there. To deploy the contract to dev-account on Testnet use the following command: | ||
|
||
```bash | ||
make deploy | ||
``` | ||
|
||
Deploy | ||
====== | ||
Once finished, check the `neardev/dev-account` file to find the address in which the contract was deployed: | ||
|
||
Every smart contract in NEAR has its [own associated account][NEAR accounts]. | ||
When you run `npm run deploy`, your smart contract gets deployed to the live NEAR TestNet with a temporary dev account. | ||
When you're ready to make it permanent, here's how: | ||
```bash | ||
cat ./neardev/dev-account | ||
# e.g. dev-1659899566943-21539992274727 | ||
``` | ||
|
||
### 2.3. Reproducible build | ||
|
||
Step 0: Install near-cli (optional) | ||
------------------------------------- | ||
If you build your contract on two different machines, it's highly likely that you'll obtain two binaries that are | ||
similar but not exactly identical. Your build outcome can be influenced by various factors in your build environment, | ||
such as the locale, timezone, build path, and numerous other variables. | ||
|
||
[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 `npm install`, but for best ergonomics you may want to install it globally: | ||
To obtain an identical build artifact on any machine, matching the one deployed on NEAR, you can build it using Docker: | ||
|
||
npm 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`) | ||
|
||
|
||
Step 1: Create an account for the contract | ||
------------------------------------------ | ||
|
||
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 `near-blank-project.your-name.testnet`. Assuming you've already created an account on [NEAR Wallet], here's how to create `near-blank-project.your-name.testnet`: | ||
|
||
1. Authorize NEAR CLI, following the commands it gives you: | ||
|
||
near login | ||
|
||
2. Create a subaccount (replace `YOUR-NAME` below with your actual account name): | ||
|
||
near create-account near-blank-project.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet | ||
|
||
Step 2: deploy the contract | ||
--------------------------- | ||
|
||
Use the CLI to deploy the contract to TestNet with your account ID. | ||
Replace `PATH_TO_WASM_FILE` with the `wasm` that was generated in `contract` build directory. | ||
|
||
near deploy --accountId near-blank-project.YOUR-NAME.testnet --wasmFile PATH_TO_WASM_FILE | ||
|
||
|
||
Step 3: set contract name in your frontend code | ||
----------------------------------------------- | ||
|
||
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 || 'near-blank-project.YOUR-NAME.testnet' | ||
|
||
|
||
|
||
Troubleshooting | ||
=============== | ||
|
||
On Windows, if you're seeing an error containing `EPERM` it may be related to spaces in your path. Please see [this issue](https://github.com/zkat/npx/issues/209) for more details. | ||
|
||
|
||
[create-near-app]: https://github.com/near/create-near-app | ||
[Node.js]: https://nodejs.org/en/download/package-manager/ | ||
[jest]: https://jestjs.io/ | ||
[NEAR accounts]: https://docs.near.org/concepts/basics/account | ||
[NEAR Wallet]: https://wallet.testnet.near.org/ | ||
[near-cli]: https://github.com/near/near-cli | ||
[gh-pages]: https://github.com/tschaub/gh-pages | ||
```shell | ||
make build-in-docker | ||
``` |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TOKEN_ACCOUNT_ID= | ||
ADMIN_ACCOUNT_ID= | ||
FEE_ACCOUNT_ID= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters