gpt4 book ai didi

smartcontracts - 是否可以在没有功能的情况下访问 NEAR 智能合约中的公共(public)结构字段?

转载 作者:行者123 更新时间:2023-12-04 08:51:08 24 4
gpt4 key购买 nike

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

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

我可以访问 decimalsval没有定义 pub fn为了它?

最佳答案

TL;DR:不,如果没有 getter 函数,您将无法访问状态结构的特定公共(public)字段。
长答案:当您使用 near-sdk-rs 时,状态结构以 Borsh 序列化格式存储,但它只是在 near-sdk-rs 帮助器上定义的高级包装器; NEAR 协议(protocol)对存储的值(名称、格式或任何东西)没有任何限制,它只为智能合约运行时提供键值存储。如果你想深入挖掘,可以view the raw state of your contract via RPC ,并观察到有一个由 near-sdk-rs 为你创建的键“STATE”,你可以在你身边使用 Borsh 反序列化它。

关于smartcontracts - 是否可以在没有功能的情况下访问 NEAR 智能合约中的公共(public)结构字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64099972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com