为什么elrond-rust合约需要main.rs,为什么其中有某个函数调用



elrond合同的新增功能。

我试图弄清楚,在进行erdpy contract build时,成功构建elrond rust合同的绝对最低要求是什么。

对我来说,合同只是src/lib.rs

.
├── Cargo.toml
├── meta
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── src
└── lib.rs

meta/src/main.rs文件具有:

fn main() {
println!("hello");
//elrond_wasm_debug::meta::perform::<crowdfunding::AbiProvider>();
}

如果我注释掉meta/src/main.rs中的elronad_wasm....blah..blah行,并删除构建过程中生成的所有内容:

rm -rf $(find . -name Cargo.lock;
find . -type d -name target;
find . -type d -name output;
find . -type d -name wasm);

,然后进行构建,我得到:

CRITICAL:cli:No file matches pattern [*.wasm].

如果我联合国评论这句话,请重新进行所有的"清理",然后重新构建,没有错误。

编译elrond合同是一个多步骤的过程。首先,你的src的特征正在被编译。然后调用meta子项目来生成abi文件和wasm子项目的源代码。然后编译wasm子项目以实际获得wasm文件。

因此,通过删除wasm子项目,您已经销毁了最后一个编译步骤,并且没有收到wasm文件。注释meta子项目中的行将意味着你的abi文件将不再刷新,并且你将在编译的wasm中丢失方法。

所以所有这些都是绝对必要的,你只能安全地删除cargo.lock、输出和目标文件夹:(

相关内容

  • 没有找到相关文章

最新更新