The smart contract exposes two methods to enable storing and retrieving a greeting in the NEAR network.
@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;
}
}
You can automatically compile and test the contract by running:
npm run build
You can create a new account and deploy the contract by running:
near create-account <your-account.testnet> --useFaucet
near deploy <your-account.testnet> build/release/hello_near.wasm
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 <your-account.testnet> get_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.
# 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:
# Use near-cli to login your NEAR account
near login
and then use the logged account to sign the transaction: --accountId <another-account>
.