NEAR Rust合约部署成功调用方法提示Contract method is not found
问题原因
- 最常见原因是编译生成的wasm合约文件未正确导出方法,通常由Cargo.toml配置错误、使用缓存的旧编译产物导致
- 其次是部署时使用了历史版本的wasm文件,而非修改代码后新编译的产物
- 少数情况由near-cli版本过低,或合约部署时未完全覆盖账户上的旧合约导致
解决步骤
- 检查项目根目录的Cargo.toml配置,确保存在以下配置项:
[lib] crate-type = ["cdylib", "rlib"] [dependencies] near-sdk = "4.0.0" # 版本和官方教程保持一致即可
- 清空历史编译缓存,重新编译合约:
cargo clean && cargo build --target wasm32-unknown-unknown --release
- 确认编译生成的wasm文件路径和部署命令中指定的路径一致,重新执行部署命令:
near deploy --wasmFile target/wasm32-unknown-unknown/release/rust_counter_tutorial.wasm --accountId josedlujan.testnet
- 部署完成后先测试view方法验证合约方法可正常访问:
near view josedlujan.testnet get_num
- 如仍报错可升级near-cli到最新版本后重试:
npm update -g near-cli
内容的提问来源于stack exchange,提问作者josedlujan
相关产品推荐
相关产品推荐

