使用erdpy构建Elrond ping-pong智能合约时elrond-wasm编译报错如何解决
错误原因
该编译报错由Rust工具链版本与elrond-wasm v0.18.2依赖不兼容导致:
elrond-wasm v0.18.2为较早的版本,仅适配2022年初的Rust nightly版本。后续Rust官方对core::ops下的Try、FromResidual等特性接口做了破坏性调整,新版Rust工具链不再兼容该版本elrond-wasm的语法,因此触发缺失导入、trait成员不存在的报错。
解决步骤
方案一(适配现有版本,无需修改合约代码):
- 安装指定版本Rust nightly工具链,执行命令:
rustup install nightly-2022-01-30 - 进入你的ping-pong合约项目根目录,执行命令将该目录的默认Rust工具链设置为适配版本:
rustup override set nightly-2022-01-30 - 重新执行构建命令即可正常生成wasm文件:
erdpy build contract
- 安装指定版本Rust nightly工具链,执行命令:
方案二(升级依赖,适配新版工具链):
- 升级erdpy到最新稳定版
- 将项目的elrond-wasm依赖升级到最新稳定版,同步修改合约代码适配新版SDK的接口变更
- 重新执行构建命令即可
内容的提问来源于stack exchange,提问作者quentinpuzenat
相关产品推荐
相关产品推荐

