From 9b0c87eea69e89c865fe0228b7516591ddbfbc8f Mon Sep 17 00:00:00 2001 From: Elliot Braem <16282460+elliotBraem@users.noreply.github.com> Date: Wed, 17 Jan 2024 09:56:42 -0500 Subject: [PATCH] Update "Building Smart Contracts" Quickstart to use near-cli-rs (#1638) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update "Building Smart Contracts" Quickstart to use near-cli-rs Now uses near-cli-rs (https://github.com/near/near-cli-rs/issues/235) --------- Co-authored-by: Damián Parrino Co-authored-by: gagdiez --- docs/2.develop/contracts/quickstart.md | 67 +++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/docs/2.develop/contracts/quickstart.md b/docs/2.develop/contracts/quickstart.md index e4a6d01d9ce..2beb995c20e 100644 --- a/docs/2.develop/contracts/quickstart.md +++ b/docs/2.develop/contracts/quickstart.md @@ -23,18 +23,30 @@ This quickstart is dedicated to creating smart contracts. We also have one dedic Before starting, make sure you have the following installed: 1. [Node.js](https://nodejs.org/en/download), to use our scaffolding tool. -2. [NEAR CLI](/tools/near-cli#installation), to deploy and interact with the contract. +2. [NEAR CLI](/tools/near-cli#installation) or [NEAR CLI-RS](/tools/near-cli-rs), to deploy and interact with the contract. 3. [cargo-near](https://github.com/near/cargo-near), to easily create testnet accounts. 4. (optional) [Rust](https://www.Rust-lang.org/tools/install), to create Rust contracts. :::tip Easy Install -Install both `near-cli` and `cargo-near` tools using `npm i -g near-cli cargo-near` + +- **NEAR-CLI:** Install both `near-cli` and `cargo-near` tools using + ``` + npm i -g near-cli cargo-near + ``` + +- **NEAR-CLI-RS:** Install both `near-cli-rs` and `cargo-near` tools using + ``` + npm i -g near-cli-rs cargo-near + ``` + ::: :::info Testnet Account -There is no need to have a testnet account to follow this tutorial. -However, if you want to create one, you can do so through [a wallet](https://testnet.mynearwallet.com), and use it from the `near-cli` by invoking `near login`. +There is no need to have a `testnet` account to follow this tutorial. + +However, if you want to create one, you can do so through [a wallet](https://testnet.mynearwallet.com), and use it from the `near-cli` by invoking `near login`. (if you prefer `near-cli-rs`, use `near account`) + ::: --- @@ -214,7 +226,9 @@ New account "lovely-event.testnet" created successfully. :::tip -Here we are creating a random account since we do not care about the account's name. Remember that you can create a named account through any wallet (i.e. [MyNearWallet](https://testnet.mynearwallet.com)) and then use it from the `near-cli` by invoking `near login`. + +Here we are creating a random account since we do not care about the account's name. Remember that you can create a named account through any wallet (i.e. [MyNearWallet](https://testnet.mynearwallet.com)) and then use it from the `near-cli` by invoking `near login`. (if you prefer `near-cli-rs`, use `near account`) + ::: --- @@ -250,20 +264,45 @@ Having our account created, we can now deploy the contract into it: ## Interacting with the Contract -To interact with your deployed smart contract you can call its methods using the `near-cli` tool. +To interact with your deployed smart contract you can call its methods using the `near-cli` or `near-cli-rs` tools. #### Get Greeting + The `get_greeting` method is a [`view`](./anatomy.md#public-methods) method, meaning it only reads from the contract's state, and thus can be called for **free**. + + + + ```bash > near view get_greeting "Hello" # Response ``` + + + + +```bash +> near contract call-function as-read-only get_greeting + +"Hello" # Response +``` + + + + + + #### Set Greeting + The `set_greeting` method is a [`change`](./anatomy.md#public-methods) method, meaning it modifies the contract's state, and thus requires a user to sign a transaction in order to be executed. + + + + ```bash > near call set_greeting '{"greeting": "Hola"}' --accountId @@ -272,6 +311,22 @@ Log: Saving greeting "Hola" # Response In this case we are asking the account that stores the contract to call its own contract's method (`--accountId `). + + + + +```bash +> near contract call-function as-transaction set_greeting '{"greeting": "Hola"}' sign-as + +Log: Saving greeting "Hola" # Response +``` + +In this case we are asking the account that stores the contract to call its own contract's method (`sign-as `). + + + + + --- ## Moving Forward