Сборка не удалась в 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 
Другие вопросы по тегам