Сборка не удалась в Substrate.dev Ink! руководство. сп-аритметический недостаток типа?
Моя сборка не удалась.
Все выглядело хорошо, пока я не проверил свой контракт с помощью команды:
cargo +nightly test
У меня ошибка [E0282]
Вот полный отчет об ошибке:
error[E0282]: type annotations needed
--> /home/mal/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
|
541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving `accuracy` a type
...
1595 | / implement_fixed!(
1596 | | FixedI64,
1597 | | test_fixed_i64,
1598 | | i64,
... |
1601 | | "_Fixed Point 64 bits signed, range = [-9223372036.854775808, 9223372036.854775807]_",
1602 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0282]: type annotations needed
--> /home/mal/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
|
541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving `accuracy` a type
...
1604 | / implement_fixed!(
1605 | | FixedI128,
1606 | | test_fixed_i128,
1607 | | i128,
... |
1611 | | [-170141183460469231731.687303715884105728, 170141183460469231731.687303715884105727]_",
1612 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0282]: type annotations needed
--> /home/mal/.cargo/registry/src/github.com-1ecc6299db9ec823/sp-arithmetic-2.0.0/src/fixed_point.rs:541:9
|
541 | let accuracy = P::ACCURACY.saturated_into();
| ^^^^^^^^ consider giving `accuracy` a type
...
1614 | / implement_fixed!(
1615 | | FixedU128,
1616 | | test_fixed_u128,
1617 | | u128,
... |
1621 | | [0.000000000000000000, 340282366920938463463.374607431768211455]_",
1622 | | );
| |__- in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0282`.
error: could not compile `sp-arithmetic`
Это часть более широкого руководства.
Я считаю, что ржавчина обновилась.
Проблема, похоже, заключается в макросе sp-aritmetic, однако я не уверен, как дать ему "тип". Моей ржавчины нет...
Очень хочется попасть в Ink! так что любая помощь приветствуется.
1 ответ
Причина этой ошибки - регресс в компиляторе rust nightly, начиная с версии 2020-10-06. Вам нужно
rustup toolchain install 2020-10-05
и используйте его для создания среды выполнения, пока эта проблема не будет решена. Обычно для создания среды выполнения автоматически используется последняя версия nightly. Вы можете изменить это поведение, установив
WASM_BUILD_TOOLCHAIN
переменная окружения. В этом случае:
export WASM_BUILD_TOOLCHAIN='nightly-2020-10-05'
В случае заключения договора с грузовым контрактом следует использовать:
cargo +nightly-2020-10-05 contract build