5

I am running the Astar node locally and pointing to the astar-frame repository which is cloned on my local machine. In the Astar node repository, I added the paths-override method to the point all dependencies of astar-frame to the local folder which solved some dependency issues.

When building the Astar node using cargo build --release, I get the following error:

  error[E0046]: not all trait items implemented, missing: `reserve_withdraw_assets`
    --> /Users/snowmead/.cargo/git/checkouts/polkadot-4038f27d5e4ea2e8/c22e1c4/runtime/polkadot/src/weights/pallet_xcm.rs:47:1
     |
  47 | impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `reserve_withdraw_assets` in implementation
     |
     = help: implement the missing item: `fn reserve_withdraw_assets() -> _feps::Weight { todo!() }`

Since I haven't modified anything in astar-frame pallet-xcm, I believe this might be a dependency issue. And to confirm that this trait item is implemented, we see in the pallet_xcm::Config trait that it uses pallet_xcm::weights::SubstrateWeight<Runtime>; which implements the reserve_withdraw_assets trait item.

2
  • After some further debugging, it is most likely because pallet-xcm is a sub dependency of polkadot-runtime which is imported in the nomination pool pallet. Astar-frame has their own fork of pallet-xcm and therefore is conflicting with the polkadot-runtime.
    – Snowmead
    Commented Jun 13, 2023 at 20:19
  • 1
    I did such modifications multiple items already, and it just depends what have you overridden. It'd be helpful to see the delta between your modifications and main branch of Astar. We will remove the custom fork of pallet-xcm soon, and will also merge the two repos we have into one.
    – Dinonard
    Commented Jun 14, 2023 at 6:48

1 Answer 1

1

I applied a temporary fix which was to rename the pallet-xcm dependency to astar-xcm in astar-frame and Astar to avoid dependency conflicts with the pallet-xcm subdependency from polkadot-runtime.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.