3

I have a couple of questions related to sending XCM messages. More specifically, I am trying to send a message from an Astar node to the Polkadot relay chain.

The XCM message contains the Instruction::Transact to target the create nomination pool extrinsic (parameters of the extrinsic in paritech/substrate).

I am getting the following event in the Polkadot relay chain which contains the error AssetNotFound: enter image description here

Does this error indicate that the target extrinsic itself was not found?

And it is not clear to me how Polkadot can use Alice's currency BSPY since the account is in Astar and is not using DOT. How can Polkadot create a nomination pool using Alice's BSPY funds? enter image description here

I made sure as well that my type indexes matched the NominationPool pallet and create extrinsic here.

Here is the XCM code executed from Astar pallet extrinsic.

1 Answer 1

2

Solved this by changing the MultiAsset location to point to the target chain I would be executed the operation on. In this case, the location should be the Polkadot relay chain (parent).

Changed from this:

calls.push(Instruction::WithdrawAsset((Here, 10_000_000u64).into()));
calls.push(Instruction::BuyExecution {
      fees: (Here, 10_000_000u64).into(),
      weight_limit: xcm::v3::WeightLimit::Unlimited,
});

to this:

let location: MultiLocation = MultiLocation {
    parents: 1,
    interior: Here,
};

calls.push(Instruction::WithdrawAsset((location, 10_000_000u64).into()));
calls.push(Instruction::BuyExecution {
      fees: (location, 10_000_000u64).into(),
      weight_limit: xcm::v3::WeightLimit::Unlimited,
});

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.