假设我有以下智能合约(在Rust中):
#[near_bindgen]
#[derive(BorshDeserialize, BorshSerialize)]
pub struct Number {
pub val: u128,
pub decimals: u8
}
是否可以在未为其定义decimals
的情况下访问val
或pub fn
?
答案 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一起反序列化。