Я работал с узлом контрактов паритета (последняя версия) и узлом шаблона подложки (тег polkadot-v0.9.18), оба из которых представляют одну и ту же проблему при компиляции.
У меня есть очень простой поддон, в котором хранятся определенные предметы. Основная структура следующая:
#[pallet::storage]
#[pallet::getter(fn items)]
/// 'Mapping' Item ID -> Item Data
pub(crate) type Items<T: Config> = StorageMap<_, Twox64Concat, T::Hash, Item<T>>;
Я пытался добавить простой метод RPC, следуя этим руководствам https://core.tetcoin.org/recipes/custom-rpc.html#rpc-to-call-a-runtime-api и https://core.tetcoin. org/recipes/runtime-api.html
Я также проверил некоторые проекты, которые уже имеют собственные реализации вызовов RPC, такие как de subsocial node, и у меня почти такая же структура и зависимости.
Мой метод rpc ничего не делает, кроме как возвращает число 2, просто чтобы убедиться, что он работает, но это не так. Вот как выглядит каталог поддонов:
каталог поддонов
Когда я пытаюсь скомпилировать, появляется следующая ошибка
error: the wasm32-unknown-unknown target is not supported by default, you may need to
enable the "js" feature. For more information see:
https://docs.rs/getrandom/#webassembly-support
Я даже не использую этот модуль, но я читал, что он где-то используется как косвенная зависимость. Я компилирую свой проект с помощью следующей команды
cargo build --release
Проверив документацию, касающуюся проблемы с контейнером «getrandom», я добавил следующую зависимость в Cargo.toml (я пытался добавить ее в каждый Cargo.toml в проекте, индивидуально, парами,...)
getrandom = { version = "0.2", features = ["js"] }
Затем появляется другая ошибка:
error: failed to run custom build command for secp256k1-sys v0.4.1
Что опять же не имеет для меня никакого смысла. В самом проекте нет ничего, кроме базы шаблонов узлов и новой палитры, реализующей функцию создания и переноса. Без реализации RPC он отлично работает с приложением Polkadot, но как только я включаю пользовательский rpc, он просто не компилируется.
This is my rust configuration (rustup show)
installed toolchains
--------------------
stable-x86_64-apple-darwin (default)
nightly-2021-11-04-x86_64-apple-darwin
nightly-x86_64-apple-darwin
active toolchain
----------------
stable-x86_64-apple-darwin (default)
rustc 1.59.0 (9d1b2106e 2022-02-23)
Я не нашел никого, кто имел дело с такой проблемой, и я не знаю, в чем может быть проблема.
Это журналы первой проблемы:
error: the wasm32-unknown-unknown target is not supported by default, you may need to enable the "js" feature. For more information see: https://docs.rs/getrandom/#webassembly-support
--> /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.5/src/lib.rs:229:9
|
229 | / compile_error!("the wasm32-unknown-unknown target is not supported by \
230 | | default, you may need to enable the \"js\" feature. \
231 | | For more information see: \
232 | | https://docs.rs/getrandom/#webassembly-support");
| |________________________________________________________________________^
error[E0433]: failed to resolve: use of undeclared crate or module `imp`
--> /home/ubuntu/.cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.2.5/src/lib.rs:256:5
|
256 | imp::getrandom_inner(dest)
| ^^^ use of undeclared crate or module `imp`
For more information about this error, try `rustc --explain E0433`.
error: could not compile `getrandom` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
Текущий статус (для воспроизведения ошибки): https://github.com/andresvsm/substrate-pallet-rpc/tree/items-branch
Решение проблемы
Исправлено для меня, когда я добавил «функции по умолчанию =« ложь »» в свой Cargo.toml в соответствии с рассматриваемой зависимостью.
Комментариев нет:
Отправить комментарий