【问题标题】:Is is possible to access public structure fileds in NEAR smart-contract without a function?是否可以在没有功能的情况下访问 NEAR 智能合约中的公共结构字段?
【发布时间】:2021-01-13 21:44:25
【问题描述】:

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

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

我可以在不为其定义pub fn 的情况下访问decimalsval 吗?

【问题讨论】:

    标签: smartcontracts nearprotocol


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-07-10
      • 2020-09-17
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      相关资源
      最近更新 更多