1

我正在尝试在 Elrond rust 智能合约中解码以 JSON 编码的属性。我正在用serde箱子解析它。我的合同编译得很好,但是当我部署它时,我得到了一个无效的合同代码。

这是我的 Cargo.toml

[dependencies]
serde = { version = "1.0", default-features = false, features = ["derive", "alloc"] }
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }

这是失败的部署交易:https ://devnet-explorer.elrond.com/transactions/6579f00950eecec3f3e5280eda463d05e159f6000bf9603e6692a90abed04b0d

请问如何处理 rust 智能合约上的 JSON 属性?

4

1 回答 1

0

我强烈建议不要将 json 用于您的属性。

处理它的最佳方法是创建一个表示您的属性的结构并使用 elrond 提供的序列化/反序列化。

这不仅会为您简化很多事情。但是您还需要在 nft 中存储更少的数据,这将为您和您的用户节省大量气体。(最近 elrond 升级使分配器变得更加昂贵,这将产生巨大的影响)。

您可以在此处查看如何在智能合约中处理基于结构的方法。

于 2022-03-02T18:46:30.627 回答