没有功能就可以访问NEAR智能合约中的公共结构文件吗?

时间:2020-09-28 09:59:17

标签: smartcontracts nearprotocol

假设我有以下智能合约(在Rust中):

#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize)]
pub struct Number {
    pub val: u128,
    pub decimals: u8
}

是否可以在未为其定义decimals的情况下访问valpub fn

1 个答案:

答案 0 :(得分:1)

TL; DR:不,没有getter函数,您将无法访问状态结构的特定公共字段。

长答案:当使用near-sdk-rs时,状态结构以Borsh序列化格式存储,但这只是在Near-sdk-rs帮助程序上定义的高级包装; NEAR协议不对存储的值(名称,格式或任何其他内容)施加任何约束,它仅为智能合约运行时提供键值存储。如果您想更深入地研究,可以view the raw state of your contract via RPC,并观察到有一个接近“ sdk-rs”为您创建的键“ STATE”,您可以将其与Borsh一起反序列化。