Need to add configuration of Combination of (Location, Asset) to pendulum xcm_config.rs
Reproduce step:
here is extrinsic for Stetemint to check reserve transfer assets for Statemint USDT to Pendulum chain.
encoded call data
0x1f0801010100b92001000101004e5d80a091a712b727ecbb00882bb28d4d64a6e7f6c87654b3243c489623f5100104000002043205011f0002093d000000000000
Here is the pendulum block details where xcmpQueue pallet emit Fail event with error UntrustedReserveLocation
error description
IsReserve is configuration for trustable chain as reserve chain for assets. link to polkadot repo
Now pendulum support only Native assets in xcm_executor config
https://github.com/pendulum-chain/pendulum/blob/main/runtime/pendulum/src/xcm_config.rs#L243
pub struct XcmConfig;
impl xcm_executor::Config for XcmConfig {
...
type IsReserve = NativeAsset;
...
}
need update configuration to following:
/// A `FilterAssetLocation` implementation. Filters multi native assets whose
/// reserve is same with `origin`.
pub struct MultiNativeAsset<ReserveProvider>(PhantomData<ReserveProvider>);
impl<ReserveProvider> FilterAssetLocation for MultiNativeAsset<ReserveProvider>
where
ReserveProvider: Reserve,
{
fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool {
if let Some(ref reserve) = ReserveProvider::reserve(asset) {
if reserve == origin {
return true;
}
}
false
}
}
type IsReserve = MultiNativeAsset<RelativeReserveProvider>;
Need to add configuration of Combination of (Location, Asset) to pendulum xcm_config.rs
Reproduce step:
here is extrinsic for Stetemint to check reserve transfer assets for Statemint USDT to Pendulum chain.
encoded call data
0x1f0801010100b92001000101004e5d80a091a712b727ecbb00882bb28d4d64a6e7f6c87654b3243c489623f5100104000002043205011f0002093d000000000000Here is the pendulum block details where xcmpQueue pallet emit Fail event with error
UntrustedReserveLocationerror description
IsReserveis configuration for trustable chain as reserve chain for assets. link to polkadot repoNow pendulum support only Native assets in
xcm_executorconfighttps://github.com/pendulum-chain/pendulum/blob/main/runtime/pendulum/src/xcm_config.rs#L243
need update configuration to following:
type IsReserve = MultiNativeAsset<RelativeReserveProvider>;