4个版本
0.0.8 | 2023年10月23日 |
---|---|
0.0.7 | 2023年6月9日 |
0.0.5 | 2023年3月13日 |
0.0.4 | 2023年1月16日 |
#2721 in 魔法豆
48KB
913 行
示例
use near_non_transferable_token::{impl_fungible_token_core, impl_fungible_token_storage};
#[near_bindgen]
impl Contract {
#[init]
pub fn new(
owner_id: AccountId,
metadata: FungibleTokenMetadata,
) -> Self {
assert!(!env::state_exists(), "Already initialized");
metadata.assert_valid();
let mut this = Self {
token: FungibleToken::new(b"a".to_vec()),
metadata: LazyOption::new(b"m".to_vec(), Some(&metadata)),
owner_id,
white_list: HashSet::new()
};
this
}
}
impl_fungible_token_core!(Contract, token);
impl_fungible_token_storage!(Contract, token);
#[near_bindgen]
impl FungibleTokenMetadataProvider for Contract {
fn ft_metadata(&self) -> FungibleTokenMetadata {
self.metadata.get().unwrap()
}
}
有关更多信息,请参阅 https://github.com/beepopula/Drip-contract。
功能
账本
不同合约的独立余额
#[derive(BorshDeserialize, BorshSerialize)]
pub struct Account {
pub contract_ids: UnorderedMap<Option<AccountId>, Balance>,
pub deposit_map: UnorderedMap<AccountId, HashMap<Option<AccountId>, Balance>> //key: specific community drip
}
说明
- 如果合约_ids的键为None,则表示余额总和。
- 存款是一个派生函数,用于证明您只有一次此类余额,防止无限证明。并且所有权应保持不变。
版本
语义版本
此crate遵循Cargo的semver指南。
状态破坏性更改(任何数据类型的低级序列化格式)将不惜一切代价避免。如果发生此类更改,则将带有主要版本,并带有编译器错误。如果您遇到一个没有的,请提出问题!
MSRV
当前最低支持的Rust版本为1.56
。如果需要安全补丁发布,需要提高Rust工具链,则没有保证会维持这个版本。
依赖项
~5MB
~103K SLoC