UNPKG

create-near-app

Version:

Quickly scaffold your dApp on NEAR Blockchain

83 lines (57 loc) 2.08 kB
# Hello NEAR Contract The smart contract exposes two methods to enable storing and retrieving a greeting in the NEAR network. ```ts @NearBindgen({}) class HelloNear { greeting: string = "Hello"; @view // This method is read-only and can be called for free get_greeting(): string { return this.greeting; } @call // This method changes the state, for which it cost gas set_greeting({ greeting }: { greeting: string }): void { // Record a log permanently to the blockchain! near.log(`Saving greeting ${greeting}`); this.greeting = greeting; } } ``` <br /> # Quickstart 1. Make sure you have installed [node.js](https://nodejs.org/en/download/package-manager/) >= 16. 2. Install the [`NEAR CLI`](https://github.com/near/near-cli#setup) <br /> ## 1. Build and Test the Contract You can automatically compile and test the contract by running: ```bash npm run build ``` <br /> ## 2. Create an Account and Deploy the Contract You can create a new account and deploy the contract by running: ```bash near create-account <your-account.testnet> --useFaucet near deploy <your-account.testnet> build/release/hello_near.wasm ``` <br /> ## 3. Retrieve the Greeting `get_greeting` is a read-only method (aka `view` method). `View` methods can be called for **free** by anyone, even people **without a NEAR account**! ```bash # Use near-cli to get the greeting near view <your-account.testnet> get_greeting ``` <br /> ## 4. Store a New Greeting `set_greeting` changes the contract's state, for which it is a `call` method. `Call` methods can only be invoked using a NEAR account, since the account needs to pay GAS for the transaction. ```bash # Use near-cli to set a new greeting near call <your-account.testnet> set_greeting '{"greeting":"howdy"}' --accountId <your-account.testnet> ``` **Tip:** If you would like to call `set_greeting` using another account, first login into NEAR using: ```bash # Use near-cli to login your NEAR account near login ``` and then use the logged account to sign the transaction: `--accountId <another-account>`.