Skip to content

near-sdk-v5.1.0

Compare
Choose a tag to compare
@frol frol released this 28 Mar 19:21
· 7 commits to master since this release
9aa5eb0

Hightlights

Reduce your boilderpate and enable ABI support out of the box with the new #[near] macro-attribute.

BEFORE (still valid, not breaking changes or depreaction in this release): AFTER
use near_sdk::serde::{Deserialize, Serialize}
use near_sdk::borsh::{BorshDeserialize, BorshSerialize};
use near_sdk::schemars::JsonSchema;

#[derive(Deserialize, Serialize, JsonSchema, BorshDeserlialize, BorshSerialize)]
#[serde(crate = "near_sdk::serde")]
#[schemars(crate = "near_sdk::schemars")]
#[borsh(crate = "near_sdk::borsh")]
struct ...
use near_sdk::near;

#[near(serializers = [borsh, json])]
struct ...
use near_sdk::{near_bindgen, env};

#[near_bindgen]
#[derive(Default, BorshDeserialize, BorshSerialize)]
#[borsh(crate = "near_sdk::borsh")]
pub struct StatusMessage {
    records: HashMap<AccountId, String>,
}

#[near]
impl StatusMessage { ... }
use near_sdk::{near, env};

#[near(contract_state)]
#[derive(Default)]
pub struct StatusMessage {
    records: HashMap<AccountId, String>,
}

#[near]
impl StatusMessage { ... }

If you want to have an example, look no further, DevHub Contract is already migrated

Added

  • Finalize #[near] attribute-macro implementation with the support for custom parameters passing to serializer attributes #[near(serializers = [borsh(...)])] (#1158)
  • Introduce #[near] macro to further streamline contracts development reducing the boilerplate! (#1142)

Other

  • add typo checker in ci (#1159)