如何从 `wasm` 文件夹生成内容?

How do I generate the content from the `wasm` folder?

我正在尝试从头开始构建智能合约。我从 cargo new my-contract 开始。 我连接了 Elrond 依赖项,现在 cargo 运行 没有抱怨了。

现在当我 运行 erdpy contract build 我得到

FileNotFoundError: [Errno 2] No such file or directory: '/home/bogdan/workspace/sc-from-scratch/wasm'

查看其他模板,发现生成了这个wasm文件夹的内容。 这是我的问题的相关提交:https://github.com/bogdan-marian/sc-from-scratch/commit/aa6f912e6bca413a91f18c9de52257390645b139

如何从 wasm 文件夹生成内容?

在构建智能合约本身之前,您是否尝试过 cargo build

它将安装依赖项,并生成相应的文件夹。如果它仍然没有创建 wasm 文件夹,您是否检查了 cargo.toml 文件中的依赖项?

你应该有类似的东西:

[package]
name = "router"
version = "0.0.0"
authors = [ "you",]
edition = "2018"
publish = false

[lib]
path = "src/lib.rs"

[features]
wasm-output-mode = [
  "elrond-wasm-node",
  "token_send/wasm-output-mode",
]

[dependencies.token_send]
path = "../../common/modules/token_send"

[dependencies.elrond-wasm]
version = "0.21"
features = ["derive"]

[dependencies.elrond-wasm-derive]
version = "0.21"

[dependencies.elrond-wasm-node]
version = "0.21"
optional = true

[dev-dependencies.elrond-wasm-debug]
version = "0.21"

[dependencies.pair]
path = "../pair"

source

我建议从示例项目之一的 wasm 文件夹开始,该文件夹适合您正在使用的 elrond-wasm 版本。

在较新的版本中,wasm/src/lib.rs 的内容将由您也应该拥有的元子项目生成。

一般来说,如果您使用 erdpy contract new 所定义的模板之一,如所述 here

例如

erdpy contract new --template adder

事实证明,这个问题比我最初认为的要复杂得多。我最终创建了一个关于如何从头开始创建智能合约的完整教程。短版是

  • 需要手动添加wasm文件夹
  • 稍后添加 meta crate 后,将为您生成此文件夹的内容。 在这里你可以看到我经历了整个流程: https://youtu.be/UYU9Gqw8ldg