3个版本
0.1.2 | 2022年3月8日 |
---|---|
0.1.1 | 2022年3月8日 |
0.1.0 | 2022年2月28日 |
#136 在 #near
29KB
528 代码行
near-accounts 允许跟踪与账户相关的数据以及存储管理。
使用非常简单。从所需的导入开始
use near_account::{
impl_near_accounts_plugin, Account, AccountDeposits, Accounts, NearAccountPlugin,
NearAccountsPluginNonExternal, NewInfo,
};
然后,定义一个结构体,以确定合约应该为每个账户存储哪些信息。例如,如果合约打算跟踪每个用户的消息
#[derive(BorshDeserialize, BorshSerialize)]
pub struct AccountInfo {
pub message: String,
}
然后,合约必须实现 NewInfo
特性为 AccountInfo
,例如
impl NewInfo for AccountInfo {
fn default_from_account_id(account_id: AccountId) -> Self {
Self {
message: "".to_string(),
internal_balance: UnorderedMap::new(format!("{}-bal", account_id).as_bytes()),
}
}
}
最后,剩下的工作就是定义合约并调用实现宏
#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)]
pub struct Contract {
pub accounts: Accounts<AccountInfo>,
}
impl_near_accounts_plugin!(Contract, accounts, AccountInfo);
有关外部定义方法(公开可调用的)的文档,请参阅NearAccountPlugin 特性
有关内部合约使用函数的文档,请参阅 NearAccountsPluginNonExternal 特性 和 AccountDeposits 特性
依赖项
~5.5MB
~106K SLoC