0

I'm testing a reserve asset transfer from polkadot asset hub to a parachain using chopsticks, the transfer is failing, I think this is because the xcm origin being used for the reserve asset transfer is superuser, here are the logs:

[14:49:23.902] INFO (xcm): outboundHrmpMessage
    app: "chopsticks"
    outboundHrmpMessage: [
      {
        "recipient": 2093,
        "data": "0x000314010800010300a10f0432056000070010a5d4e800010000070010a5d4e80a1300010000070010a5d4e8000d010208000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a482c6a02f777dd14daf49832339ced9bcaf342f1db457485888df15f554c3da15b0b"
      }
    ]
[14:49:24.098] INFO (block-builder): Hashed Network building #2,868,162
    app: "chopsticks"
    number: 2868162
    extrinsics: []
    umpCount: 0
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 9936287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 11
xcm::origin_conversion       TRACE: SovereignSignedViaLocation origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: RelayChainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SiblingParachainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SignedAccountId32AsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::convert_origin          TRACE: could not convert: origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 10061287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 3094
runtime::system              DEBUG: [2868162] 0 extrinsics, length: 3094 (normal 0%, op: 0%, mandatory 0%) / normal weight:Weight(ref_time: 0, proof_size: 0) (0%) op weight Weight(ref_time: 0, proof_size: 0) (0%) / mandatory weight Weight(ref_time: 10061287000, proof_size: 1493) (0%)
[14:49:25.134] INFO (block-builder): Hashed Network new head #2,868,162

Is this as expected?

This is the call I'm performing: 0x1f0203010100b52003000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4803080000020432056000070010a5d4e800010000070010a5d4e801000000

This is the parachain xcm config file: https://github.com/hashed-io/hashed-substrate-parachain/blob/cb6e9e318b79192263dfb87fb777e3362f058d32/runtime/src/xcm_config.rs#L209

Please note the it was built with the RelayNetwork as Polkadot not Rococo.

UPDATE:

I've performed this test in rococo and I can see the same xcm superuser orgin, but the reserve transfer succeeds:

    outboundHrmpMessage: [
      {
        "recipient": 2093,
        "data": "0x000314010800010000070010a5d4e800010300a10f043205d8000b00a0724e18090a1300010000070010a5d4e8000d010208000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a482cce23683c180481f4bc5a2826e2e15951c279a0918af0ee863998a4360af63a37"
      }
    ]
[18:39:12.646] INFO (block-builder): MD5 Network building #819,334
    app: "chopsticks"
    number: 819334
    extrinsics: []
    umpCount: 0
xcm::origin_conversion       TRACE: SovereignSignedViaLocation origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: RelayChainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SiblingParachainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SignedAccountId32AsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::convert_origin          TRACE: could not convert: origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
cumulus_pallet_xcmp_queue    DEBUG: Processing XCMP-XCM: [73, 248, 53, 24, 62, 136, 249, 17, 19, 210, 102, 66, 239, 107, 59, 47, 53, 207, 141, 36, 91, 100, 237, 192, 138, 42, 235, 5, 209, 33, 198, 233]
xcm::weight                  TRACE: FixedWeightBounds message: Xcm([ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }, SetTopic([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55])])
xcm::execute_xcm_in_credit   TRACE: origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, message: Xcm([ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }, SetTopic([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55])]), weight_credit: Weight { ref_time: 0, proof_size: 0 }
xcm::barriers                TRACE: TrailingSetTopicAsId origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }, SetTopic([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55])], max_weight: Weight { ref_time: 5000000000, proof_size: 327680 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: None }
xcm::barriers                TRACE: TakeWeightCredit origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }], max_weight: Weight { ref_time: 5000000000, proof_size: 327680 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55]) }
xcm::barriers                TRACE: AllowKnownQueryResponses origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }], max_weight: Weight { ref_time: 5000000000, proof_size: 327680 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55]) }
xcm::barriers                TRACE: WithComputedOrigin origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }], max_weight: Weight { ref_time: 5000000000, proof_size: 327680 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55]) }
xcm::barriers                TRACE: AllowTopLevelPaidExecutionFrom origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }], max_weight: Weight { ref_time: 5000000000, proof_size: 327680 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55]) }
xcm::process                 TRACE: origin: Some(MultiLocation { parents: 1, interior: X1(Parachain(1000)) }), total_surplus/refunded: Weight { ref_time: 0, proof_size: 0 }/Weight { ref_time: 0, proof_size: 0 }, error_handler_weight: Weight { ref_time: 0, proof_size: 0 }
xcm::process_instruction     TRACE: === ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }]))
xcm::contains                TRACE: NativeAsset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }
xcm::AssetsFrom              TRACE: prefix: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }
xcm::contains                TRACE: NativeAsset asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }
xcm::AssetsFrom              TRACE: prefix: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, asset: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }
xcm::process_instruction     TRACE: === ClearOrigin
xcm::process_instruction     TRACE: === BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Limited(Weight { ref_time: 5000000000, proof_size: 327680 }) }
xcm::weight                  TRACE: FixedRateOfFungible::buy_weight weight: Weight { ref_time: 5000000000, proof_size: 327680 }, payment: <wasm:stripped>, context: XcmContext { origin: None, message_id: [206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55], topic: None }
xcm::process_instruction     TRACE: === DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }
xcm::currency_adapter        TRACE: deposit_asset what: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(990623500938) }, who: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) }
xcm::fungibles_adapter       TRACE: deposit_asset what: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(990623500938) }, who: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) }
xcm::currency_adapter        TRACE: deposit_asset what: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }, who: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) }
xcm::fungibles_adapter       TRACE: deposit_asset what: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }, who: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) }
xcm::process_instruction     TRACE: === SetTopic([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55])
xcm::execute_xcm_in_credit   TRACE: result: Ok(())
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 10061287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 3055
runtime::system              DEBUG: [819334] 0 extrinsics, length: 3055 (normal 0%, op: 0%, mandatory 0%) / normal weight:Weight(ref_time: 0, proof_size: 0) (0%) op weight Weight(ref_time: 0, proof_size: 0) (0%) / mandatory weight Weight(ref_time: 10061287000, proof_size: 1493) (0%)

UPDATE 17/04/24:

@Branislav I've tried executing the call you provided with the following results:

On Polkadot using chopsticks I get the following error:

runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 435971000, proof_size: 9279 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 10061287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 3054
runtime::system              DEBUG: [2918049] 0 extrinsics, length: 3054 (normal 0%, op: 0%, mandatory 0%) / normal weight:Weight(ref_time: 435971000, proof_size: 9279) (0%) op weight Weight(ref_time: 0, proof_size: 0) (0%) / mandatory weight Weight(ref_time: 10061287000, proof_size: 1493) (0%)
[13:33:02.402] INFO (block-builder): Hashed Network new head #2,918,049
    app: "chopsticks"
    number: 2918049
    hash: "0x2d079b215cb8a1df46a55091482b2ac6eeea3dfd46b37ac6e43ca1242ed6e9bd"
    extrinsics: [
      "0xe1018400d43593c715fdd31c61141abd…00420002000000010300a10f04320564"
    ]
    pendingExtrinsics: []
    ump: {}
[13:33:02.504] INFO (xcm): outboundHrmpMessage
    app: "chopsticks"
    outboundHrmpMessage: []
runtime                      ERROR: panicked at /build/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs:906:1:
Bad input data provided to query_info: Codec error
[13:37:31.712] INFO (ws): Error handling request: 'Error: wasm `unreachable` instruction executed
    at Block.call (file:///home/sebastian/vsc-workspace/chopsticks/packages/core/src/blockchain/block.ts:245:35)
    at async state_call (file:///home/sebastian/vsc-workspace/chopsticks/packages/core/src/rpc/substrate/state.ts:79:18)
    at async processRequest (file:///home/sebastian/vsc-workspace/chopsticks/packages/chopsticks/src/server.ts:102:30)
    at async WebSocket.<anonymous> (file:///home/sebastian/vsc-workspace/chopsticks/packages/chopsticks/src/server.ts:164:30)'
    app: "chopsticks"
runtime                      ERROR: panicked at /build/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs:906:1:
Bad input data provided to validate_transaction: Codec error
[13:37:34.690] ERROR (rpc-author): ExtrinsicFailed
    app: "chopsticks"
    error: {}
[13:37:34.691] INFO (ws): Error handling request: 'ResponseError: Error: wasm `unreachable` instruction executed
    at author_submitAndWatchExtrinsic (file:///home/sebastian/vsc-workspace/chopsticks/packages/core/src/rpc/substrate/author.ts:75:15)
    at async processRequest (file:///home/sebastian/vsc-workspace/chopsticks/packages/chopsticks/src/server.ts:102:30)
    at async WebSocket.<anonymous> (file:///home/sebastian/vsc-workspace/chopsticks/packages/chopsticks/src/server.ts:164:30)'
    app: "chopsticks"
runtime                      ERROR: panicked at /build/system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs:906:1:

On rococo live I get the following error:

#/extrinsics/decode/0x1f0203010100b5200300010100e266243731bf69fff27133f3cbb8def28c6fd26d688d14fee34ab6950351aa0f030800010000070010a5d4e8000002043205d8000b00a0724e180900000000
Submit UnsignedSubmit Transaction
polkadotXcm.reserveTransferAssets
1002: Verification Error: Runtime error: Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed WASM backtrace: error while executing at wasm backtrace: 0: 0x4c1798 - <unknown>!rust_begin_unwind 1: 0x44b343 - <unknown>!core::panicking::panic_fmt::hd79411a297d06dc8 2: 0x36dd22 - <unknown>!TaggedTransactionQueue_validate_transaction: RuntimeApi, Execution failed: Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed\nWASM backtrace:\nerror while executing at wasm backtrace:\n 0: 0x4c1798 - <unknown>!rust_begin_unwind\n 1: 0x44b343 - <unknown>!core::…

I've also tried on Polkadot using chopsticks the original call I was performing, and it still fails but I now get the following logs:

[14:02:15.100] INFO (xcm): outboundHrmpMessage
    app: "chopsticks"
    outboundHrmpMessage: [
      {
        "recipient": 2093,
        "data": "0x000308030003030000000000002cec9838a107582fb4418010172161d33d2a9230ca33c96586638c330f12c89485"
      }
    ]
[14:02:15.270] INFO (block-builder): Hashed Network building #2,918,053
    app: "chopsticks"
    number: 2918053
    extrinsics: []
    umpCount: 0
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 9936287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 11
xcm::origin_conversion       TRACE: SovereignSignedViaLocation origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: RelayChainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SiblingParachainAsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::origin_conversion       TRACE: SignedAccountId32AsNative origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
xcm::convert_origin          TRACE: could not convert: origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, kind: Superuser
cumulus_pallet_xcmp_queue    DEBUG: Processing XCMP-XCM: [37, 65, 101, 163, 41, 243, 92, 14, 211, 0, 35, 124, 49, 139, 31, 75, 23, 39, 254, 124, 37, 133, 201, 179, 119, 226, 108, 131, 31, 92, 216, 253]
xcm::weight                  TRACE: FixedWeightBounds message: Xcm([QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }, SetTopic([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133])])
xcm::execute_xcm_in_credit   TRACE: origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, message: Xcm([QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }, SetTopic([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133])]), weight_credit: Weight { ref_time: 0, proof_size: 0 }
xcm::barriers                TRACE: TrailingSetTopicAsId origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }, SetTopic([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133])], max_weight: Weight { ref_time: 2000000000, proof_size: 131072 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: None }
xcm::barriers                TRACE: TakeWeightCredit origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }], max_weight: Weight { ref_time: 2000000000, proof_size: 131072 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133]) }
xcm::barriers                TRACE: AllowKnownQueryResponses origin: MultiLocation { parents: 1, interior: X1(Parachain(1000)) }, instructions: [QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }], max_weight: Weight { ref_time: 2000000000, proof_size: 131072 }, properties: Properties { weight_credit: Weight { ref_time: 0, proof_size: 0 }, message_id: Some([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133]) }
xcm::process                 TRACE: origin: Some(MultiLocation { parents: 1, interior: X1(Parachain(1000)) }), total_surplus/refunded: Weight { ref_time: 0, proof_size: 0 }/Weight { ref_time: 0, proof_size: 0 }, error_handler_weight: Weight { ref_time: 0, proof_size: 0 }
xcm::process_instruction     TRACE: === QueryResponse { query_id: 0, response: Version(3), max_weight: Weight { ref_time: 0, proof_size: 0 }, querier: None }
xcm::process_instruction     TRACE: === SetTopic([236, 152, 56, 161, 7, 88, 47, 180, 65, 128, 16, 23, 33, 97, 211, 61, 42, 146, 48, 202, 51, 201, 101, 134, 99, 140, 51, 15, 18, 200, 148, 133])
xcm::execute_xcm_in_credit   TRACE: result: Ok(())
runtime::system              TRACE: Used block weight: PerDispatchClass { normal: Weight { ref_time: 0, proof_size: 0 }, operational: Weight { ref_time: 0, proof_size: 0 }, mandatory: Weight { ref_time: 10061287000, proof_size: 1493 } }
runtime::system              TRACE: Used block length: 3016
runtime::system              DEBUG: [2918053] 0 extrinsics, length: 3016 (normal 0%, op: 0%, mandatory 0%) / normal weight:Weight(ref_time: 0, proof_size: 0) (0%) op weight Weight(ref_time: 0, proof_size: 0) (0%) / mandatory weight Weight(ref_time: 10061287000, proof_size: 1493) (0%)
[14:02:16.484] INFO (block-builder): Hashed Network new head #2,918,053
    app: "chopsticks"
    number: 2918053
    hash: "0xd957651b5ee6be2ca3ea5d9b82f75e96ee43dcdeed1bfbf339d721b5bae6d030"
    extrinsics: []
    pendingExtrinsics: []
    ump: {}
[14:02:16.485] INFO (xcm): outboundHrmpMessage
    app: "chopsticks"
    outboundHrmpMessage: []

I've also noticed that I had to perform a reserve asset transfer of only DOT, before trying to perform a reserve transfer of another asset, if not the the reserve asset transfer fails with FailedToTransactAsset. Why might this be?

1
  • How did you discover this? Any easy way to reproduce? Some script or test that uses chopstick would be good for investigation, thanks. Commented Apr 17 at 11:45

4 Answers 4

1

Based on the investigation, it appears that the original issue you encountered with AssetHubPolkadot was simply that this fix: https://github.com/paritytech/polkadot-sdk/pull/2129 didn't make it into the 1.1.X fellows release.

However, fortunately, during the past few days, a new AssetHubPolkadot 1.2.0 fellows release was enacted (with the fix included). Therefore, I believe that your original request should now work for AssetHubPolkadot as well.

But thank you for reporting this, I created a several checks and improvements: https://github.com/paritytech/polkadot-sdk/pull/4186

1
  • Thanks! This fixed the issue
    – Sebastian
    Commented Apr 23 at 20:51
1

@sebastian can you please try this submit this call to the both AssetHubRococo and AssetHubPolkadot?

0x1f0203010100b52003000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48030800010000070010a5d4e80000020432056000070010a5d4e800000000
1
  • I've updated the post accordingly
    – Sebastian
    Commented Apr 17 at 21:05
0

I tried the test bellow to decode those data, on the latest polkadot-sdk master and also on the tag v1.3.0-rc1 which is used here, but the result is the same:

#[test]
fn test_decode_hrmp_messages() {
    let decode_and_print = |label, mut data: Vec<u8>| {
        let mut data = data.as_slice();
        let format = XcmpMessageFormat::decode(&mut data);
        println!("{label}: format: {format:?}");
        let xcm = VersionedXcm::<()>::decode_with_depth_limit(MAX_XCM_DECODE_DEPTH, &mut data);
        println!("{label}: xcm: {xcm:?}");
    };

    // From AssetHubRococo
    decode_and_print(
        "AssetHubRococo",
        hex_literal::hex!("000314010800010000070010a5d4e800010300a10f043205d8000b00a0724e18090a1300010000070010a5d4e8000d010208000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a482cce23683c180481f4bc5a2826e2e15951c279a0918af0ee863998a4360af63a37").to_vec()
    );
    // From AssetHubPolkadot
    decode_and_print(
        "AssetHubPolkadot",
        hex_literal::hex!("000314010800010300a10f0432056000070010a5d4e800010000070010a5d4e80a1300010000070010a5d4e8000d010208000101008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a482c6a02f777dd14daf49832339ced9bcaf342f1db457485888df15f554c3da15b0b").to_vec()
    );
}

The result:

From AssetHubRococo: format: Ok(ConcatenatedVersionedXcm)
From AssetHubRococo: xcm: Ok(V3(Xcm([ReserveAssetDeposited(MultiAssets([MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: X3(Parachain(1000), PalletInstance(50), GeneralIndex(54)) }), fun: Fungible(10000000000000) }])), ClearOrigin, BuyExecution { fees: MultiAsset { id: Concrete(MultiLocation { parents: 1, interior: Here }), fun: Fungible(1000000000000) }, weight_limit: Unlimited }, DepositAsset { assets: Wild(AllCounted(2)), beneficiary: MultiLocation { parents: 0, interior: X1(AccountId32 { network: None, id: [142, 175, 4, 21, 22, 135, 115, 99, 38, 201, 254, 161, 126, 37, 252, 82, 135, 97, 54, 147, 201, 18, 144, 156, 178, 38, 170, 71, 148, 242, 106, 72] }) } }, SetTopic([206, 35, 104, 60, 24, 4, 129, 244, 188, 90, 40, 38, 226, 225, 89, 81, 194, 121, 160, 145, 138, 240, 238, 134, 57, 152, 164, 54, 10, 246, 58, 55])])))
From AssetHubPolkadot: format: Ok(ConcatenatedVersionedXcm)
From AssetHubPolkadot: xcm: Err(Error { cause: Some(Error { cause: Some(Error { cause: None, desc: "Out of order" }), desc: "Could not decode `Instruction::ReserveAssetDeposited.0`" }), desc: "Could not decode `VersionedXcm::V3.0`" })

So it looks like that XCMP message from the AssetHubPolkadot is not valid and I suspect that XCMP processing ends here: https://github.com/paritytech/polkadot-sdk/blob/v1.3.0-rc1/cumulus/pallets/xcmp-queue/src/lib.rs#L791, therefore, we don't see no more logs for the AssetHubPolkadot case.

Could not decode VersionedXcm::V3.0

I am not sure why...

0

And to the second problem:

I've also noticed that I had to perform a reserve asset transfer of only DOT, before trying to perform a reserve transfer of another asset, if not the the reserve asset transfer fails with FailedToTransactAsset. Why might this be?

I would suggest to create separate issue with exact details (call, setup, how to reproduce and so on).

3

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.