微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。