Skip to content

ayoubbuoya/courchain-smart-contract

Repository files navigation

Hello NEAR Contract

The smart contract exposes two methods to enable storing and retrieving a greeting in the NEAR network.

const DEFAULT_GREETING: &str = "Hello";

#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize)]
pub struct Contract {
    greeting: String,
}

impl Default for Contract {
    fn default() -> Self {
        Self { greeting: DEFAULT_GREETING.to_string() }
    }
}

#[near_bindgen]
impl Contract {
    // Public: Returns the stored greeting, defaulting to 'Hello'
    pub fn get_greeting(&self) -> String {
        return self.greeting.clone();
    }

    // Public: Takes a greeting, such as 'howdy', and records it
    pub fn set_greeting(&mut self, greeting: String) {
        // Record a log permanently to the blockchain!
        log!("Saving greeting {}", greeting);
        self.greeting = greeting;
    }
}

Quickstart

  1. Make sure you have installed rust.
  2. Install the NEAR CLI

1. Build, Test and Deploy

To build the contract you can execute the ./build.sh script, which will in turn run:

rustup target add wasm32-unknown-unknown
cargo build --target wasm32-unknown-unknown --release

Then, run the ./deploy.sh script, which will in turn run:

near dev-deploy --wasmFile ./target/wasm32-unknown-unknown/release/hello_near.wasm

the command near dev-deploy automatically creates an account in the NEAR testnet, and deploys the compiled contract on it.

Once finished, check the ./neardev/dev-account file to find the address in which the contract was deployed:

cat ./neardev/dev-account
# e.g. dev-1659899566943-21539992274727

2. 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!

# Use near-cli to get the greeting
near view <dev-account> get_greeting

3. Store a New Greeting

set_greeting changes the contract's state, for which it is a change method.

Change methods can only be invoked using a NEAR account, since the account needs to pay GAS for the transaction. In this case, we are asking the account we created in step 1 to sign the transaction.

# Use near-cli to set a new greeting
near call <dev-account> set_greeting '{"greeting":"howdy"}' --accountId <dev-account>

Tip: If you would like to call set_greeting using your own account, first login into NEAR using:

# Use near-cli to login your NEAR account
near login

and then use the logged account to sign the transaction: --accountId <your-account>.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages