Can’t build smart contract - error compiling elrond-wasm with erdpy build contract

631 Views Asked by At

When I try to build the ping-pong smart contract from here using:

erdpy build contract

I don't get the following expected output:

INFO:projects.core:WASM file generated: output/ping-pong.wasm

because of the following errors that appear in the sc_results.rs file:

Compiling elrond-codec v0.5.3
Compiling elrond-wasm v0.18.2
error[E0432]: unresolved import `core::ops::FromResidual`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:7:30
...
error[E0437]: type Output is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:62:5
...
error[E0437]: type Residual is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:63:5
...
error[E0407]: method branch is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:65:5
...
error[E0407]: method from_output is not a member of trait `Try`
--> /Users/<username>/elrondsdk/vendor-rust/registry/src/github.com-1ecc6299db9ec823/elrond-wasm-0.18.2/src/types/io/sc_result.rs:71:5
...
error aborting due to 5 previous errors
...
CRITICAL:cli:Build error: error code = 101, see output.

Environment:

  • elrond-wasm - v0.18.2
  • erdpy - v1.0.19

How to solve this build issue?

1

There are 1 best solutions below

0
On

The problem was that Rust had a non-backwards-compatible change earlier this year. So, there was an incompatibility with old versions, but it worked fine with newer versions.

Updating Rust using:

rustup update

solved the problem.

Now:

rustc --version | grep -o '^[^(]*'

prints

rustc 1.57.0-nightly