diff --git a/.changeset/violet-shirts-rule.md b/.changeset/violet-shirts-rule.md new file mode 100644 index 00000000..a74747f1 --- /dev/null +++ b/.changeset/violet-shirts-rule.md @@ -0,0 +1,5 @@ +--- +'@galacticcouncil/xcm-cfg': patch +--- + +Fix assethub foreign balance location (v3 -> v4) diff --git a/integration-tests/xcm-test/src/__snapshots__/call.spec.ts.snap b/integration-tests/xcm-test/src/__snapshots__/call.spec.ts.snap index 5f5853b4..0f5471e0 100644 --- a/integration-tests/xcm-test/src/__snapshots__/call.spec.ts.snap +++ b/integration-tests/xcm-test/src/__snapshots__/call.spec.ts.snap @@ -1,818 +1,860 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Wallet with XCM config should return valid calldata for Acala -> Hydration ACA [aca] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Kusama calldata for AssetHub -> Karura USDT [usdt] transfer 1`] = ` +Array [ + "kusama-assethub-karura-usdt", + "0x0901041f0803010100411f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000002043205011f0002093d000000000000", +] +`; + +exports[`Wallet with XCM config should return valid Kusama calldata for AssetHub -> Kusama KSM [ksm] transfer 1`] = ` +Array [ + "kusama-assethub-kusama-ksm", + "0xf0041f090101000100010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d010400010000070010a5d4e80000000000", +] +`; + +exports[`Wallet with XCM config should return valid Kusama calldata for Karura -> AssetHub USDT [usdt] transfer 1`] = ` +Array [ + "karura-kusama-assethub-usdt", + "0xf40436010300010300a10f043205011f0002093d0003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", +] +`; + +exports[`Wallet with XCM config should return valid Kusama calldata for Karura -> Kusama KSM [ksm] transfer 1`] = ` +Array [ + "karura-kusama-ksm", + "0xec04360000820010a5d4e800000000000000000000000301010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", +] +`; + +exports[`Wallet with XCM config should return valid Kusama calldata for Kusama -> AssetHub KSM [ksm] transfer 1`] = ` +Array [ + "kusama-kusama-assethub-ksm", + "0xfc04630903000100a10f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d030400000000070010a5d4e80000000000", +] +`; + +exports[`Wallet with XCM config should return valid Kusama calldata for Kusama -> Karura KSM [ksm] transfer 1`] = ` +Array [ + "kusama-karura-ksm", + "0xfc04630803000100411f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d030400000000070010a5d4e80000000000", +] +`; + +exports[`Wallet with XCM config should return valid Polkadot calldata for Acala -> Hydration ACA [aca] transfer 1`] = ` Array [ "acala-hydration-aca", "0xf804360000000010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Acala -> Hydration DAI [dai_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Acala -> Hydration DAI [dai_awh] transfer 1`] = ` Array [ "acala-hydration-dai_awh", "0x45010436000254a37a01cd75b616d63e0ab665bffdb0143c52ae000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Acala -> Hydration LDOT [ldot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Acala -> Hydration LDOT [ldot] transfer 1`] = ` Array [ "acala-hydration-ldot", "0xf8043600000300e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Acala -> Hydration WBTC [wbtc_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Acala -> Hydration WBTC [wbtc_awh] transfer 1`] = ` Array [ "acala-hydration-wbtc_awh", "0x450104360002c80084af223c8b598536178d9361dc55bfda681800e1f50500000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Acala -> Hydration WETH [weth_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Acala -> Hydration WETH [weth_awh] transfer 1`] = ` Array [ "acala-hydration-weth_awh", "0x4501043600025a4d6acdc4e3e5ab15717f407afe957f7a242578000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Ajuna -> Hydration AJUN [ajun] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ajuna -> Hydration AJUN [ajun] transfer 1`] = ` Array [ "ajuna-hydration-ajun", "0xf4042300000010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Bifrost PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Bifrost PINK [pink] transfer 1`] = ` Array [ "assethub-bifrost-pink", "0x0d01041f0803010100b91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d03040000020432055c000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Bifrost USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Bifrost USDC [usdc] transfer 1`] = ` Array [ "assethub-bifrost-usdc", "0x0901041f0803010100b91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000002043205e5140002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Bifrost USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Bifrost USDT [usdt] transfer 1`] = ` Array [ "assethub-bifrost-usdt", "0x0901041f0803010100b91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000002043205011f0002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration DED [ded] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration DED [ded] transfer 1`] = ` Array [ "assethub-hydration-ded", "0x4101041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d030800000204320578000700e40b5402000002043205011f00823801000100000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration DOT [dot] transfer 1`] = ` Array [ "assethub-hydration-dot", "0xfc041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000100000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration DOTA [dota] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration DOTA [dota] transfer 1`] = ` Array [ "assethub-hydration-dota", "0x3101041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d03080000020432054800419c000002043205011f00823801000100000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration PINK [pink] transfer 1`] = ` Array [ "assethub-hydration-pink", "0x4101041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d03080000020432055c000700e40b5402000002043205011f00823801000100000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration USDC [usdc] transfer 1`] = ` Array [ "assethub-hydration-usdc", "0x0901041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000002043205e5140002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration USDT [usdt] transfer 1`] = ` Array [ "assethub-hydration-usdt", "0x0901041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000002043205011f0002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Hydration WUD [wud] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Hydration WUD [wud] transfer 1`] = ` Array [ "assethub-hydration-wud", "0x4d01041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0308000002043205011f0082380100000002043205a6e90100000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Moonbeam PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Moonbeam PINK [pink] transfer 1`] = ` Array [ "assethub-moonbeam-pink", "0x1101041f0803010100511f0300010300000000000000000000000000000000000000000003080000020432055c000700e40b5402000002043205011f00c2d401000100000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Moonbeam USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Moonbeam USDC [usdc] transfer 1`] = ` Array [ "assethub-moonbeam-usdc", "0xd8041f0803010100511f030001030000000000000000000000000000000000000000000304000002043205e5140002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Moonbeam USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Moonbeam USDT [usdt] transfer 1`] = ` Array [ "assethub-moonbeam-usdt", "0xd8041f0803010100511f030001030000000000000000000000000000000000000000000304000002043205011f0002093d000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Mythos MYTH [myth] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Mythos MYTH [myth] transfer 1`] = ` Array [ "assethub-mythos-myth", "0xe0041f0904010100a534040001030000000000000000000000000000000000000000000404010100a5340013000064a7b3b6e00d0000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for AssetHub -> Polkadot DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for AssetHub -> Polkadot DOT [dot] transfer 1`] = ` Array [ "assethub-polkadot-dot", "0xf0041f090101000100010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0104000100000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Astar -> Hydration ASTR [astr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Astar -> Hydration ASTR [astr] transfer 1`] = ` Array [ "astar-hydration-astr", "0x050104330203010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d03040000000013000064a7b3b6e00d00000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Astar -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Astar -> Hydration DOT [dot] transfer 1`] = ` Array [ "astar-hydration-dot", "0x3101043700ffffffffffffffffffffffffffffffff00e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> AssetHub PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> AssetHub PINK [pink] transfer 1`] = ` Array [ "bifrost-assethub-pink", "0x4d01044605030800010300a10f0432055c000700e40b540200010300a10f043205011f0082fc0a000100000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> AssetHub USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> AssetHub USDC [usdc] transfer 1`] = ` Array [ "bifrost-assethub-usdc", "0x0901044605030400010300a10f043205e5140002093d000000000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> AssetHub USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> AssetHub USDT [usdt] transfer 1`] = ` Array [ "bifrost-assethub-usdt", "0x0901044605030400010300a10f043205011f0002093d000000000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> Hydration BNC [bnc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> Hydration BNC [bnc] transfer 1`] = ` Array [ "bifrost-hydration-bnc", "0xf804460000010010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> Hydration DOT [dot] transfer 1`] = ` Array [ "bifrost-hydration-dot", "0xf8044600080000e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> Hydration vASTR [vastr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> Hydration vASTR [vastr] transfer 1`] = ` Array [ "bifrost-hydration-vastr", "0xf80446000903000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> Hydration vDOT [vdot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> Hydration vDOT [vdot] transfer 1`] = ` Array [ "bifrost-hydration-vdot", "0xf8044600090000e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Bifrost -> Polkadot DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Bifrost -> Polkadot DOT [dot] transfer 1`] = ` Array [ "bifrost-polkadot-dot", "0xec044600080000e40b540200000000000000000000000301010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Centrifuge -> Hydration CFG [cfg] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Centrifuge -> Hydration CFG [cfg] transfer 1`] = ` Array [ "centrifuge-hydration-cfg", "0xf4047c0000000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Crust network -> Hydration CRU [cru] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Crust network -> Hydration CRU [cru] transfer 1`] = ` Array [ "crust-hydration-cru", "0xf4047d00000010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Darwinia -> Hydration RING [ring] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Darwinia -> Hydration RING [ring] transfer 1`] = ` Array [ "darwinia-hydration-ring", "0xf4042e0000000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Ethereum -> Hydration DAI [dai] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ethereum -> Hydration DAI [dai] transfer 1`] = ` Array [ "ethereum-hydration-dai", "0xc5a5ebda0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000290001010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Ethereum -> Hydration ETH [eth] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ethereum -> Hydration ETH [eth] transfer 1`] = ` Array [ "ethereum-hydration-eth", "0xbee9cdfc000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000290001010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Ethereum -> Hydration USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ethereum -> Hydration USDC [usdc] transfer 1`] = ` Array [ "ethereum-hydration-usdc", "0xc5a5ebda000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000290001010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Ethereum -> Hydration USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ethereum -> Hydration USDT [usdt] transfer 1`] = ` Array [ "ethereum-hydration-usdt", "0xc5a5ebda000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000290001010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Ethereum -> Hydration WBTC [wbtc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Ethereum -> Hydration WBTC [wbtc] transfer 1`] = ` Array [ "ethereum-hydration-wbtc", "0xc5a5ebda0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000290001010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Acala ACA [aca] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Acala ACA [aca] transfer 1`] = ` Array [ "hydration-acala-aca", "0x0101048900a3420f000010a5d4e8000000000000000000000003010200411f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Acala DAI [dai_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Acala DAI [dai_awh] transfer 1`] = ` Array [ "hydration-acala-dai_awh", "0x010104890002000000000064a7b3b6e00d000000000000000003010200411f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Acala LDOT [ldot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Acala LDOT [ldot] transfer 1`] = ` Array [ "hydration-acala-ldot", "0x0101048900a4420f0000e40b5402000000000000000000000003010200411f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Acala WBTC [wbtc_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Acala WBTC [wbtc_awh] transfer 1`] = ` Array [ "hydration-acala-wbtc_awh", "0x01010489000300000000e1f50500000000000000000000000003010200411f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Acala WETH [weth_awh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Acala WETH [weth_awh] transfer 1`] = ` Array [ "hydration-acala-weth_awh", "0x010104890004000000000064a7b3b6e00d000000000000000003010200411f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ajuna AJUN [ajun] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ajuna AJUN [ajun] transfer 1`] = ` Array [ "hydration-ajuna-ajun", "0x0101048900200000000010a5d4e80000000000000000000000030102000d200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub DED [ded] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub DED [ded] transfer 1`] = ` Array [ "hydration-assethub-ded", "0x4d01048905030800010300a10f04320578000700e40b540200010300a10f043205011f0082fc0a000100000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub DOT [dot] transfer 1`] = ` Array [ "hydration-assethub-dot", "0x0d01046b0d04010100a10f04040100000700e40b5402020401000204040d010000010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub DOTA [dota] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub DOTA [dota] transfer 1`] = ` Array [ "hydration-assethub-dota", "0x3d01048905030800010300a10f0432054800419c00010300a10f043205011f0082fc0a000100000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub PINK [pink] transfer 1`] = ` Array [ "hydration-assethub-pink", "0x4d01048905030800010300a10f0432055c000700e40b540200010300a10f043205011f0082fc0a000100000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub USDC [usdc] transfer 1`] = ` Array [ "hydration-assethub-usdc", "0xf40489010300010300a10f043205e5140002093d0003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub USDT [usdt] transfer 1`] = ` Array [ "hydration-assethub-usdt", "0xf40489010300010300a10f043205011f0002093d0003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> AssetHub WUD [wud] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> AssetHub WUD [wud] transfer 1`] = ` Array [ "hydration-assethub-wud", "0x5901048905030800010300a10f043205011f0082fc0a0000010300a10f043205a6e90100000700e40b54020000000003010200a10f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Astar ASTR [astr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Astar ASTR [astr] transfer 1`] = ` Array [ "hydration-astar-astr", "0x010104890009000000000064a7b3b6e00d000000000000000003010200591f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Astar DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Astar DOT [dot] transfer 1`] = ` Array [ "hydration-astar-dot", "0x01010489000500000000e40b5402000000000000000000000003010200591f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Bifrost BNC [bnc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Bifrost BNC [bnc] transfer 1`] = ` Array [ "hydration-bifrost-bnc", "0x01010489000e0000000010a5d4e8000000000000000000000003010200b91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Bifrost DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Bifrost DOT [dot] transfer 1`] = ` Array [ "hydration-bifrost-dot", "0x01010489000500000000e40b5402000000000000000000000003010200b91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Bifrost vASTR [vastr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Bifrost vASTR [vastr] transfer 1`] = ` Array [ "hydration-bifrost-vastr", "0x010104890021000000000064a7b3b6e00d000000000000000003010200b91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Bifrost vDOT [vdot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Bifrost vDOT [vdot] transfer 1`] = ` Array [ "hydration-bifrost-vdot", "0x01010489000f00000000e40b5402000000000000000000000003010200b91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Centrifuge CFG [cfg] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Centrifuge CFG [cfg] transfer 1`] = ` Array [ "hydration-centrifuge-cfg", "0x01010489000d000000000064a7b3b6e00d000000000000000003010200bd1f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Crust network CRU [cru] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Crust network CRU [cru] transfer 1`] = ` Array [ "hydration-crust-cru", "0x01010489001b0000000010a5d4e8000000000000000000000003010200611f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Darwinia RING [ring] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Darwinia RING [ring] transfer 1`] = ` Array [ "hydration-darwinia-ring", "0xd00489001f000000000064a7b3b6e00d000000000000000003010200f91f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ethereum DAI [dai_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ethereum DAI [dai_mwh] transfer 1`] = ` Array [ "hydration-ethereum-dai_mwh", "0x1d11040d020889040812000000000064a7b3b6e00d000000000000000010000000000064a7b3b6e00d00000000000000000100000003010200511f0300f959d131179b0264f98ac96d2c9c13c403129f5d006b0003010100511f03140004000001040a00130000da493b717d0c13000001040a00130000da493b717d0c00060107b090111d1dd2121300810e6d0000404b4c0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000000110d96e292b8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000200000000000000000000000006e605775296e851ff43b4daa541bb0984e9d6fd000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41019d65400000000000000000000000006e605775296e851ff43b4daa541bb0984e9d6fd0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140d01020400010300f959d131179b0264f98ac96d2c9c13c403129f5d", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ethereum USDC [usdc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ethereum USDC [usdc_mwh] transfer 1`] = ` Array [ "hydration-ethereum-usdc_mwh", "0x1d11040d02088904081500000040420f0000000000000000000000000010000000000064a7b3b6e00d00000000000000000100000003010200511f0300f959d131179b0264f98ac96d2c9c13c403129f5d006b0003010100511f03140004000001040a00130000da493b717d0c13000001040a00130000da493b717d0c00060107b090111d1dd2121300810e6d0000404b4c0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000000110d96e292b8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000931715fee2d06333043d11f658c8ce934ac61d0c000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41019d654000000000000000000000000931715fee2d06333043d11f658c8ce934ac61d0c00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140d01020400010300f959d131179b0264f98ac96d2c9c13c403129f5d", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ethereum USDT [usdt_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ethereum USDT [usdt_mwh] transfer 1`] = ` Array [ "hydration-ethereum-usdt_mwh", "0x1d11040d02088904081700000040420f0000000000000000000000000010000000000064a7b3b6e00d00000000000000000100000003010200511f0300f959d131179b0264f98ac96d2c9c13c403129f5d006b0003010100511f03140004000001040a00130000da493b717d0c13000001040a00130000da493b717d0c00060107b090111d1dd2121300810e6d0000404b4c0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000000110d96e292b8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c30e9ca94cf52f3bf5692aacf81353a27052c46f000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41019d654000000000000000000000000c30e9ca94cf52f3bf5692aacf81353a27052c46f00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140d01020400010300f959d131179b0264f98ac96d2c9c13c403129f5d", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ethereum WBTC [wbtc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ethereum WBTC [wbtc_mwh] transfer 1`] = ` Array [ "hydration-ethereum-wbtc_mwh", "0x1d11040d02088904081300000000e1f50500000000000000000000000010000000000064a7b3b6e00d00000000000000000100000003010200511f0300f959d131179b0264f98ac96d2c9c13c403129f5d006b0003010100511f03140004000001040a00130000da493b717d0c13000001040a00130000da493b717d0c00060107b090111d1dd2121300810e6d0000404b4c0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000000110d96e292b8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000e57ebd2d67b462e9926e04a8e33f01cd0d64346d000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41019d654000000000000000000000000e57ebd2d67b462e9926e04a8e33f01cd0d64346d0000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140d01020400010300f959d131179b0264f98ac96d2c9c13c403129f5d", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Ethereum WETH [weth_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Ethereum WETH [weth_mwh] transfer 1`] = ` Array [ "hydration-ethereum-weth_mwh", "0x1d11040d020889040814000000000064a7b3b6e00d000000000000000010000000000064a7b3b6e00d00000000000000000100000003010200511f0300f959d131179b0264f98ac96d2c9c13c403129f5d006b0003010100511f03140004000001040a00130000da493b717d0c13000001040a00130000da493b717d0c00060107b090111d1dd2121300810e6d0000404b4c0000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000000110d96e292b8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ab3f0245b83feb11d15aaffefd7ad465a59817ed000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000cafd2f0a35a4459fa40c0517e17e6fa2939441ca0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c41019d654000000000000000000000000ab3f0245b83feb11d15aaffefd7ad465a59817ed0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140d01020400010300f959d131179b0264f98ac96d2c9c13c403129f5d", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Interlay DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Interlay DOT [dot] transfer 1`] = ` Array [ "hydration-interlay-dot", "0x01010489000500000000e40b5402000000000000000000000003010200c11f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Interlay HDX [hdx] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Interlay HDX [hdx] transfer 1`] = ` Array [ "hydration-interlay-hdx", "0x0101048900000000000010a5d4e8000000000000000000000003010200c11f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Interlay IBTC [ibtc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Interlay IBTC [ibtc] transfer 1`] = ` Array [ "hydration-interlay-ibtc", "0x01010489000b00000000e1f50500000000000000000000000003010200c11f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Interlay INTR [intr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Interlay INTR [intr] transfer 1`] = ` Array [ "hydration-interlay-intr", "0x01010489001100000000e40b5402000000000000000000000003010200c11f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Kilt KILT [kilt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Kilt KILT [kilt] transfer 1`] = ` Array [ "hydration-kilt-kilt", "0x01010489001c0000000080c6a47e8d030000000000000000000301020099200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam DAI [dai_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam DAI [dai_mwh] transfer 1`] = ` Array [ "hydration-moonbeam-dai_mwh", "0x35010489040812000000000064a7b3b6e00d0000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam DOT [dot] transfer 1`] = ` Array [ "hydration-moonbeam-dot", "0xd00489000500000000e40b5402000000000000000000000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam GLMR [glmr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam GLMR [glmr] transfer 1`] = ` Array [ "hydration-moonbeam-glmr", "0xd004890010000000000064a7b3b6e00d000000000000000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam HDX [hdx] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam HDX [hdx] transfer 1`] = ` Array [ "hydration-moonbeam-hdx", "0xd0048900000000000010a5d4e8000000000000000000000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam USDC [usdc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam USDC [usdc_mwh] transfer 1`] = ` Array [ "hydration-moonbeam-usdc_mwh", "0x3501048904081500000040420f00000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam USDT [usdt_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam USDT [usdt_mwh] transfer 1`] = ` Array [ "hydration-moonbeam-usdt_mwh", "0x3501048904081700000040420f00000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam WBTC [wbtc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam WBTC [wbtc_mwh] transfer 1`] = ` Array [ "hydration-moonbeam-wbtc_mwh", "0x3501048904081300000000e1f505000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Moonbeam WETH [weth_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Moonbeam WETH [weth_mwh] transfer 1`] = ` Array [ "hydration-moonbeam-weth_mwh", "0x35010489040814000000000064a7b3b6e00d0000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Mythos MYTH [myth] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Mythos MYTH [myth] transfer 1`] = ` Array [ "hydration-mythos-myth", "0xd00489001e000000000064a7b3b6e00d000000000000000003010200a5340300000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Nodle NODL [nodl] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Nodle NODL [nodl] transfer 1`] = ` Array [ "hydration-nodle-nodl", "0x01010489001a00000000e8764817000000000000000000000003010200a91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Pendulum PEN [pen] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Pendulum PEN [pen] transfer 1`] = ` Array [ "hydration-pendulum-pen", "0x010104890091420f000010a5d4e8000000000000000000000003010200b9200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Phala PHA [pha] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Phala PHA [pha] transfer 1`] = ` Array [ "hydration-phala-pha", "0x0101048900080000000010a5d4e8000000000000000000000003010200cd1f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Polkadot DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Polkadot DOT [dot] transfer 1`] = ` Array [ "hydration-polkadot-dot", "0xf40489000500000000e40b540200000000000000000000000301010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Subsocial SUB [sub] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Subsocial SUB [sub] transfer 1`] = ` Array [ "hydration-subsocial-sub", "0x01010489001800000000e40b5402000000000000000000000003010200d5200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Unique network UNQ [unq] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Unique network UNQ [unq] transfer 1`] = ` Array [ "hydration-unique-unq", "0x010104890019000000000064a7b3b6e00d000000000000000003010200d51f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Zeitgeist GLMR [glmr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Zeitgeist GLMR [glmr] transfer 1`] = ` Array [ "hydration-zeitgeist-glmr", "0x010104890010000000000064a7b3b6e00d000000000000000003010200b1200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Zeitgeist USDC [usdc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Zeitgeist USDC [usdc_mwh] transfer 1`] = ` Array [ "hydration-zeitgeist-usdc_mwh", "0x6501048904081500000040420f000000000000000000000000001000000000008a5d7845630100000000000000000100000003010200b1200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Hydration -> Zeitgeist ZTG [ztg] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Hydration -> Zeitgeist ZTG [ztg] transfer 1`] = ` Array [ "hydration-zeitgeist-ztg", "0x01010489000c00000000e40b5402000000000000000000000003010200b1200100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Interlay -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Interlay -> Hydration DOT [dot] transfer 1`] = ` Array [ "interlay-hydration-dot", "0xf8045e00000000e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Interlay -> Hydration HDX [hdx] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Interlay -> Hydration HDX [hdx] transfer 1`] = ` Array [ "interlay-hydration-hdx", "0x0501045e00010d0000000010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Interlay -> Hydration IBTC [ibtc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Interlay -> Hydration IBTC [ibtc] transfer 1`] = ` Array [ "interlay-hydration-ibtc", "0xf8045e00000100e1f50500000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Interlay -> Hydration INTR [intr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Interlay -> Hydration INTR [intr] transfer 1`] = ` Array [ "interlay-hydration-intr", "0xf8045e00000200e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Kilt -> Hydration KILT [kilt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Kilt -> Hydration KILT [kilt] transfer 1`] = ` Array [ "kilt-hydration-kilt", "0x050104530803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000000000f0080c6a47e8d030000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> AssetHub PINK [pink] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> AssetHub PINK [pink] transfer 1`] = ` Array [ "moonbeam-assethub-pink", "0xab946323000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000ffffffff30478fafbe935e466da114e14fb3563d00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000ffffffffea09fb06d082fd1275cd48b191cbcd1d000000000000000000000000000000000000000000000000000000000002bf2000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> AssetHub USDC [usdc] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> AssetHub USDC [usdc] transfer 1`] = ` Array [ "moonbeam-assethub-usdc", "0xb9f813ff000000000000000000000000ffffffff7d2b0b761af01ca8e25242976ac0ad7d00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> AssetHub USDT [usdt] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> AssetHub USDT [usdt] transfer 1`] = ` Array [ "moonbeam-assethub-usdt", "0xb9f813ff000000000000000000000000ffffffffea09fb06d082fd1275cd48b191cbcd1d00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000003e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration DAI [dai_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration DAI [dai_mwh] transfer 1`] = ` Array [ "moonbeam-hydration-dai_mwh", "0xb9f813ff00000000000000000000000006e605775296e851ff43b4daa541bb0984e9d6fd0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration DOT [dot] transfer 1`] = ` Array [ "moonbeam-hydration-dot", "0xb9f813ff000000000000000000000000ffffffff1fcacbd218edc0eba20fc2308c77808000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration GLMR [glmr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration GLMR [glmr] transfer 1`] = ` Array [ "moonbeam-hydration-glmr", "0xb9f813ff00000000000000000000000000000000000000000000000000000000000008020000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration HDX [hdx] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration HDX [hdx] transfer 1`] = ` Array [ "moonbeam-hydration-hdx", "0xb9f813ff000000000000000000000000ffffffff345dc44ddae98df024eb494321e73fcc000000000000000000000000000000000000000000000000000000e8d4a510000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration USDC [usdc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration USDC [usdc_mwh] transfer 1`] = ` Array [ "moonbeam-hydration-usdc_mwh", "0xb9f813ff000000000000000000000000931715fee2d06333043d11f658c8ce934ac61d0c00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration USDT [usdt_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration USDT [usdt_mwh] transfer 1`] = ` Array [ "moonbeam-hydration-usdt_mwh", "0xb9f813ff000000000000000000000000c30e9ca94cf52f3bf5692aacf81353a27052c46f00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration WBTC [wbtc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration WBTC [wbtc_mwh] transfer 1`] = ` Array [ "moonbeam-hydration-wbtc_mwh", "0xb9f813ff000000000000000000000000e57ebd2d67b462e9926e04a8e33f01cd0d64346d0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Moonbeam -> Hydration WETH [weth_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Moonbeam -> Hydration WETH [weth_mwh] transfer 1`] = ` Array [ "moonbeam-hydration-weth_mwh", "0xb9f813ff000000000000000000000000ab3f0245b83feb11d15aaffefd7ad465a59817ed0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002201d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00000000000000000000000000000000000000000000000000000000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Mythos -> AssetHub MYTH [myth] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Mythos -> AssetHub MYTH [myth] transfer 1`] = ` Array [ "mythos-assethub-myth", "0x0501041f0904010100a10f0400010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d040400000013000064a7b3b6e00d0000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Mythos -> Hydration MYTH [myth] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Mythos -> Hydration MYTH [myth] transfer 1`] = ` Array [ "mythos-hydration-myth", "0x0901041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d03040000000013000064a7b3b6e00d0000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Pendulum -> Hydration PEN [pen] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Pendulum -> Hydration PEN [pen] transfer 1`] = ` Array [ "pendulum-hydration-pen", "0xf4043600000010a5d4e8000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Phala -> Hydration PHA [pha] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Phala -> Hydration PHA [pha] transfer 1`] = ` Array [ "phala-hydration-pha", "0xf004520000000000070010a5d4e8010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d010700f2052a0100", ] `; -exports[`Wallet with XCM config should return valid calldata for Polkadot -> AssetHub DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Polkadot -> AssetHub DOT [dot] transfer 1`] = ` Array [ "polkadot-assethub-dot", "0xfc04630903000100a10f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000000000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Polkadot -> Bifrost DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Polkadot -> Bifrost DOT [dot] transfer 1`] = ` Array [ "polkadot-bifrost-dot", "0xfc04630803000100b91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000000000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Polkadot -> Hydration DOT [dot] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Polkadot -> Hydration DOT [dot] transfer 1`] = ` Array [ "polkadot-hydration-dot", "0xfc04630803000100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000000000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Subsocial -> Hydration SUB [sub] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Subsocial -> Hydration SUB [sub] transfer 1`] = ` Array [ "subsocial-hydration-sub", "0xfc041f0803010100c91f0300010100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0304000000000700e40b54020000000000", ] `; -exports[`Wallet with XCM config should return valid calldata for Unique network -> Hydration UNQ [unq] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Unique network -> Hydration UNQ [unq] transfer 1`] = ` Array [ "unique-hydration-unq", "0x010104260000000000000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Zeitgeist -> Hydration GLMR [glmr] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Zeitgeist -> Hydration GLMR [glmr] transfer 1`] = ` Array [ "zeitgeist-hydration-glmr", "0x0501047e000503000000000064a7b3b6e00d000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Zeitgeist -> Hydration USDC [usdc_mwh] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Zeitgeist -> Hydration USDC [usdc_mwh] transfer 1`] = ` Array [ "zeitgeist-hydration-usdc_mwh", "0x6d01047e0408050100000040420f00000000000000000000000000050300000000008a5d7845630100000000000000000100000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", ] `; -exports[`Wallet with XCM config should return valid calldata for Zeitgeist -> Hydration ZTG [ztg] transfer 1`] = ` +exports[`Wallet with XCM config should return valid Polkadot calldata for Zeitgeist -> Hydration ZTG [ztg] transfer 1`] = ` Array [ "zeitgeist-hydration-ztg", "0xf4047e000400e40b5402000000000000000000000003010200c91f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d00", diff --git a/integration-tests/xcm-test/src/__snapshots__/e2e.spec.ts.snap b/integration-tests/xcm-test/src/__snapshots__/e2e.spec.ts.snap new file mode 100644 index 00000000..294634bd --- /dev/null +++ b/integration-tests/xcm-test/src/__snapshots__/e2e.spec.ts.snap @@ -0,0 +1,505 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Wallet with XCM config should result in valid transfer for Ajuna -> Hydration AJUN [ajun] transfer 1`] = ` +Array [ + "ajuna-hydration-ajun", + "0xf40423000000a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Astar -> Hydration ASTR [astr] transfer 1`] = ` +Array [ + "astar-hydration-astr", + "0x050104330203010100c91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee030400000000130000e8890423c78a00000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Astar -> Hydration DOT [dot] transfer 1`] = ` +Array [ + "astar-hydration-dot", + "0x3101043700ffffffffffffffffffffffffffffffff00e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> AssetHub PINK [pink] transfer 1`] = ` +Array [ + "bifrost-assethub-pink", + "0x4d01044605030800010300a10f0432055c000700e876481700010300a10f043205011f0082fc0a000100000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> AssetHub USDT [usdt] transfer 1`] = ` +Array [ + "bifrost-assethub-usdt", + "0x0901044605030400010300a10f043205011f00025a62020000000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> Hydration BNC [bnc] transfer 1`] = ` +Array [ + "bifrost-hydration-bnc", + "0xf8044600000100a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> Hydration DOT [dot] transfer 1`] = ` +Array [ + "bifrost-hydration-dot", + "0xf8044600080000e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> Hydration vASTR [vastr] transfer 1`] = ` +Array [ + "bifrost-hydration-vastr", + "0xf804460009030000e8890423c78a000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> Hydration vDOT [vdot] transfer 1`] = ` +Array [ + "bifrost-hydration-vdot", + "0xf8044600090000e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Bifrost -> Polkadot DOT [dot] transfer 1`] = ` +Array [ + "bifrost-polkadot-dot", + "0xec044600080000e87648170000000000000000000000030101010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Centrifuge -> Hydration CFG [cfg] transfer 1`] = ` +Array [ + "centrifuge-hydration-cfg", + "0xf4047c00000000e8890423c78a000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Crust network -> Hydration CRU [cru] transfer 1`] = ` +Array [ + "crust-hydration-cru", + "0xf4047d000000a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Darwinia -> Hydration RING [ring] transfer 1`] = ` +Array [ + "darwinia-hydration-ring", + "0xf4042e00000000e8890423c78a000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Ajuna AJUN [ajun] transfer 1`] = ` +Array [ + "hydration-ajuna-ajun", + "0x01010489002000000000a0724e180900000000000000000000030102000d20010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub DED [ded] transfer 1`] = ` +Array [ + "hydration-assethub-ded", + "0x4d01048905030800010300a10f04320578000700e876481700010300a10f043205011f0082fc0a000100000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub DOT [dot] transfer 1`] = ` +Array [ + "hydration-assethub-dot", + "0x0d01046b0d04010100a10f04040100000700e8764817020401000204040d01000001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub DOTA [dota] transfer 1`] = ` +Array [ + "hydration-assethub-dota", + "0x4501048905030800010300a10f0432054800821a060000010300a10f043205011f0082fc0a000100000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub PINK [pink] transfer 1`] = ` +Array [ + "hydration-assethub-pink", + "0x4d01048905030800010300a10f0432055c000700e876481700010300a10f043205011f0082fc0a000100000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub USDC [usdc] transfer 1`] = ` +Array [ + "hydration-assethub-usdc", + "0xf40489010300010300a10f043205e51400025a620203010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub USDT [usdt] transfer 1`] = ` +Array [ + "hydration-assethub-usdt", + "0xf40489010300010300a10f043205011f00025a620203010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> AssetHub WUD [wud] transfer 1`] = ` +Array [ + "hydration-assethub-wud", + "0x5901048905030800010300a10f043205011f0082fc0a0000010300a10f043205a6e90100000700e87648170000000003010200a10f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Astar ASTR [astr] transfer 1`] = ` +Array [ + "hydration-astar-astr", + "0x0101048900090000000000e8890423c78a000000000000000003010200591f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Astar DOT [dot] transfer 1`] = ` +Array [ + "hydration-astar-dot", + "0x01010489000500000000e8764817000000000000000000000003010200591f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Bifrost BNC [bnc] transfer 1`] = ` +Array [ + "hydration-bifrost-bnc", + "0x01010489000e00000000a0724e18090000000000000000000003010200b91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Bifrost DOT [dot] transfer 1`] = ` +Array [ + "hydration-bifrost-dot", + "0x01010489000500000000e8764817000000000000000000000003010200b91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Bifrost vASTR [vastr] transfer 1`] = ` +Array [ + "hydration-bifrost-vastr", + "0x0101048900210000000000e8890423c78a000000000000000003010200b91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Bifrost vDOT [vdot] transfer 1`] = ` +Array [ + "hydration-bifrost-vdot", + "0x01010489000f00000000e8764817000000000000000000000003010200b91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Centrifuge CFG [cfg] transfer 1`] = ` +Array [ + "hydration-centrifuge-cfg", + "0x01010489000d0000000000e8890423c78a000000000000000003010200bd1f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Crust network CRU [cru] transfer 1`] = ` +Array [ + "hydration-crust-cru", + "0x01010489001b00000000a0724e18090000000000000000000003010200611f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Darwinia RING [ring] transfer 1`] = ` +Array [ + "hydration-darwinia-ring", + "0xd00489001f0000000000e8890423c78a000000000000000003010200f91f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Interlay DOT [dot] transfer 1`] = ` +Array [ + "hydration-interlay-dot", + "0x01010489000500000000e8764817000000000000000000000003010200c11f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Interlay HDX [hdx] transfer 1`] = ` +Array [ + "hydration-interlay-hdx", + "0x01010489000000000000a0724e18090000000000000000000003010200c11f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Interlay IBTC [ibtc] transfer 1`] = ` +Array [ + "hydration-interlay-ibtc", + "0x01010489000b00000000ca9a3b00000000000000000000000003010200c11f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Interlay INTR [intr] transfer 1`] = ` +Array [ + "hydration-interlay-intr", + "0x01010489001100000000e8764817000000000000000000000003010200c11f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Kilt KILT [kilt] transfer 1`] = ` +Array [ + "hydration-kilt-kilt", + "0x01010489001c0000000000c16ff28623000000000000000000030102009920010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam DAI [dai_mwh] transfer 1`] = ` +Array [ + "hydration-moonbeam-dai_mwh", + "0x350104890408120000000000e8890423c78a0000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam DOT [dot] transfer 1`] = ` +Array [ + "hydration-moonbeam-dot", + "0xd00489000500000000e8764817000000000000000000000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam GLMR [glmr] transfer 1`] = ` +Array [ + "hydration-moonbeam-glmr", + "0xd0048900100000000000e8890423c78a000000000000000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam HDX [hdx] transfer 1`] = ` +Array [ + "hydration-moonbeam-hdx", + "0xd00489000000000000a0724e18090000000000000000000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam USDC [usdc_mwh] transfer 1`] = ` +Array [ + "hydration-moonbeam-usdc_mwh", + "0x3501048904081500000080969800000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam USDT [usdt_mwh] transfer 1`] = ` +Array [ + "hydration-moonbeam-usdt_mwh", + "0x3501048904081700000080969800000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam WBTC [wbtc_mwh] transfer 1`] = ` +Array [ + "hydration-moonbeam-wbtc_mwh", + "0x3501048904081300000000ca9a3b000000000000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Moonbeam WETH [weth_mwh] transfer 1`] = ` +Array [ + "hydration-moonbeam-weth_mwh", + "0x350104890408140000000000e8890423c78a0000000000000000100000000000087e93371c0100000000000000000100000003010200511f0300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Mythos MYTH [myth] transfer 1`] = ` +Array [ + "hydration-mythos-myth", + "0xd00489001e0000000000e8890423c78a000000000000000003010200a5340300f24ff3a9cf04c71dbc94d0b566f7a27b94566cac00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Pendulum PEN [pen] transfer 1`] = ` +Array [ + "hydration-pendulum-pen", + "0x010104890091420f0000a0724e18090000000000000000000003010200b920010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Phala PHA [pha] transfer 1`] = ` +Array [ + "hydration-phala-pha", + "0x01010489000800000000a0724e18090000000000000000000003010200cd1f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Polkadot DOT [dot] transfer 1`] = ` +Array [ + "hydration-polkadot-dot", + "0xf40489000500000000e87648170000000000000000000000030101010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Subsocial SUB [sub] transfer 1`] = ` +Array [ + "hydration-subsocial-sub", + "0x01010489001800000000e8764817000000000000000000000003010200d520010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Unique network UNQ [unq] transfer 1`] = ` +Array [ + "hydration-unique-unq", + "0x0101048900190000000000e8890423c78a000000000000000003010200d51f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Zeitgeist GLMR [glmr] transfer 1`] = ` +Array [ + "hydration-zeitgeist-glmr", + "0x0101048900100000000000e8890423c78a000000000000000003010200b120010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Zeitgeist USDC [usdc_mwh] transfer 1`] = ` +Array [ + "hydration-zeitgeist-usdc_mwh", + "0x65010489040815000000809698000000000000000000000000001000000000008a5d7845630100000000000000000100000003010200b120010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Hydration -> Zeitgeist ZTG [ztg] transfer 1`] = ` +Array [ + "hydration-zeitgeist-ztg", + "0x01010489000c00000000e8764817000000000000000000000003010200b120010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Interlay -> Hydration DOT [dot] transfer 1`] = ` +Array [ + "interlay-hydration-dot", + "0xf8045e00000000e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Interlay -> Hydration HDX [hdx] transfer 1`] = ` +Array [ + "interlay-hydration-hdx", + "0x0501045e00010d00000000a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Interlay -> Hydration HDX [hdx] transfer 2`] = ` +Array [ + "interlay-hydration-hdx", + "0x0501045e00010d00000000a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Interlay -> Hydration IBTC [ibtc] transfer 1`] = ` +Array [ + "interlay-hydration-ibtc", + "0xf8045e00000100ca9a3b00000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Interlay -> Hydration INTR [intr] transfer 1`] = ` +Array [ + "interlay-hydration-intr", + "0xf8045e00000200e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Kilt -> Hydration KILT [kilt] transfer 1`] = ` +Array [ + "kilt-hydration-kilt", + "0x050104530803010100c91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0304000000000f0000c16ff286230000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Moonbeam -> Hydration DAI [dai_mwh] transfer 1`] = ` +Array [ + "moonbeam-hydration-dai_mwh", + "0xb9f813ff00000000000000000000000006e605775296e851ff43b4daa541bb0984e9d6fd0000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220188dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00000000000000000000000000000000000000000000000000000000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Moonbeam -> Hydration GLMR [glmr] transfer 1`] = ` +Array [ + "moonbeam-hydration-glmr", + "0xb9f813ff00000000000000000000000000000000000000000000000000000000000008020000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220188dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00000000000000000000000000000000000000000000000000000000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Moonbeam -> Hydration HDX [hdx] transfer 1`] = ` +Array [ + "moonbeam-hydration-hdx", + "0xb9f813ff000000000000000000000000ffffffff345dc44ddae98df024eb494321e73fcc000000000000000000000000000000000000000000000000000009184e72a0000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000007f200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220188dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00000000000000000000000000000000000000000000000000000000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Mythos -> AssetHub MYTH [myth] transfer 1`] = ` +Array [ + "mythos-assethub-myth", + "0x0501041f0904010100a10f040001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0404000000130000e8890423c78a0000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Mythos -> Hydration MYTH [myth] transfer 1`] = ` +Array [ + "mythos-hydration-myth", + "0x0901041f0803010100c91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee030400000000130000e8890423c78a0000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Pendulum -> Hydration PEN [pen] transfer 1`] = ` +Array [ + "pendulum-hydration-pen", + "0xf40436000000a0724e18090000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Polkadot -> AssetHub DOT [dot] transfer 1`] = ` +Array [ + "polkadot-assethub-dot", + "0xfc04630903000100a10f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0304000000000700e87648170000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Polkadot -> Bifrost DOT [dot] transfer 1`] = ` +Array [ + "polkadot-bifrost-dot", + "0xfc04630803000100b91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0304000000000700e87648170000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Polkadot -> Hydration DOT [dot] transfer 1`] = ` +Array [ + "polkadot-hydration-dot", + "0xfc04630803000100c91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0304000000000700e87648170000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Subsocial -> Hydration SUB [sub] transfer 1`] = ` +Array [ + "subsocial-hydration-sub", + "0xfc041f0803010100c91f030001010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0304000000000700e87648170000000000", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Unique network -> Hydration UNQ [unq] transfer 1`] = ` +Array [ + "unique-hydration-unq", + "0x0101042600000000000000e8890423c78a000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Zeitgeist -> Hydration GLMR [glmr] transfer 1`] = ` +Array [ + "zeitgeist-hydration-glmr", + "0x0501047e0005030000000000e8890423c78a000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Zeitgeist -> Hydration USDC [usdc_mwh] transfer 1`] = ` +Array [ + "zeitgeist-hydration-usdc_mwh", + "0x6d01047e0408050100000080969800000000000000000000000000050300000000008a5d7845630100000000000000000100000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; + +exports[`Wallet with XCM config should result in valid transfer for Zeitgeist -> Hydration ZTG [ztg] transfer 1`] = ` +Array [ + "zeitgeist-hydration-ztg", + "0xf4047e000400e8764817000000000000000000000003010200c91f010088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee00", +] +`; diff --git a/integration-tests/xcm-test/src/call.spec.ts b/integration-tests/xcm-test/src/call.spec.ts index 56b44c0e..87fcf3e9 100644 --- a/integration-tests/xcm-test/src/call.spec.ts +++ b/integration-tests/xcm-test/src/call.spec.ts @@ -11,12 +11,8 @@ const jestConsole = console; const { configService, init } = setup; const { runXcm } = xcm; -describe('Wallet with XCM config', () => { - jest.setTimeout(3 * 60 * 1000); // Execution time <= 3 min - - let wallet: Wallet; - - const blacklist = ['acala-evm']; +const getPolkadotChains = () => { + const blacklist: string[] = ['acala-evm']; const chains = Array.from(configService.chains.values()) .filter( (c) => @@ -25,6 +21,32 @@ describe('Wallet with XCM config', () => { ) .filter((c) => !blacklist.includes(c.key)); + return { + blacklist, + chains, + }; +}; + +const getKusamaChains = () => { + const blacklist: string[] = ['basilisk']; + const chains = Array.from(configService.chains.values()) + .filter((c) => c.ecosystem === ChainEcosystem.Kusama) + .filter((c) => !blacklist.includes(c.key)); + + return { + blacklist, + chains, + }; +}; + +describe('Wallet with XCM config', () => { + jest.setTimeout(3 * 60 * 1000); // Execution time <= 3 min + + let wallet: Wallet; + + const polkadot = getPolkadotChains(); + const kusama = getKusamaChains(); + beforeAll(async () => { global.console = console; console.log('Starting suite 👷 ...\n'); @@ -40,27 +62,69 @@ describe('Wallet with XCM config', () => { expect(wallet).toBeDefined(); }); - describe.each(chains)('should return valid calldata for', (c) => { - const config = configService.getChainRoutes(c); - const { chain, routes } = config; - - for (const route of Array.from(routes.values())) { - const info = getRouteInfo(chain, route); - - runXcm( - `${info} transfer`, - async () => { - return { - chain: chain, - route: route, - }; - }, - async () => { - return { - wallet: wallet, - }; + describe.each(polkadot.chains)( + 'should return valid Polkadot calldata for', + (c) => { + const config = configService.getChainRoutes(c); + const { chain, routes } = config; + + for (const route of Array.from(routes.values())) { + const { blacklist } = polkadot; + const { destination } = route; + + if (blacklist.includes(destination.chain.key)) { + continue; } - ); + + const info = getRouteInfo(chain, route); + runXcm( + `${info} transfer`, + async () => { + return { + chain: chain, + route: route, + }; + }, + async () => { + return { + wallet: wallet, + }; + } + ); + } } - }); + ); + + describe.each(kusama.chains)( + 'should return valid Kusama calldata for', + (c) => { + const config = configService.getChainRoutes(c); + const { chain, routes } = config; + + for (const route of Array.from(routes.values())) { + const { blacklist } = kusama; + const { destination } = route; + + if (blacklist.includes(destination.chain.key)) { + continue; + } + + const info = getRouteInfo(chain, route); + runXcm( + `${info} transfer`, + async () => { + return { + chain: chain, + route: route, + }; + }, + async () => { + return { + wallet: wallet, + }; + } + ); + } + } + ); }); diff --git a/integration-tests/xcm-test/src/e2e.spec.ts b/integration-tests/xcm-test/src/e2e.spec.ts index c186cc10..8977c805 100644 --- a/integration-tests/xcm-test/src/e2e.spec.ts +++ b/integration-tests/xcm-test/src/e2e.spec.ts @@ -9,77 +9,94 @@ import console from 'console'; import { setup, network, xcm, SetupCtx } from './e2e'; import { getRouteInfo } from './utils'; +import { write, loadExisting } from './file'; const jestConsole = console; +const DB = 'metadata.db.json'; const { configService, initWithCtx } = setup; const { createNetworks } = network; const { runXcm } = xcm; +const getPolkadotChains = () => { + const bridge: string[] = ['ethereum']; + const blacklist: string[] = bridge.concat(['acala-evm', 'nodle']); + const chains: Parachain[] = Array.from(configService.chains.values()) + .filter((c) => c instanceof Parachain) + .filter((c) => c.ecosystem === ChainEcosystem.Polkadot) + .filter((c) => !blacklist.includes(c.key)); + + return { + blacklist, + bridge, + chains, + }; +}; + describe('Wallet with XCM config', () => { jest.setTimeout(3 * 60 * 1000); // Execution time <= 3 min let wallet: Wallet; let networks: SetupCtx[] = []; - const blacklist = ['acala-evm', 'acala', 'nodle']; - const bridge = ['ethereum']; - const chains = Array.from(configService.chains.values()) - .filter((c) => c instanceof Parachain) - .filter((c) => c.ecosystem === ChainEcosystem.Polkadot) - .filter((c) => !blacklist.includes(c.key)); + const reportCtx = loadExisting(DB); + const polkadot = getPolkadotChains(); beforeAll(async () => { global.console = console; - networks = await createNetworks(chains); + networks = await createNetworks(polkadot.chains); const ctx = networks.find((n) => n.config.key === 'hydration')!; wallet = await initWithCtx(ctx); }); afterAll(async () => { global.console = jestConsole; - await Promise.all(networks.map((network) => network.teardown())); await SubstrateApis.getInstance().release(); + await Promise.all(networks.map((network) => network.teardown())); + write(reportCtx, DB); }); it('is defined', () => { expect(configService).toBeDefined(); }); - describe.each(chains)('should result in valid transfer for', (c) => { - const config = configService.getChainRoutes(c); - const { chain, routes } = config; + describe.each(polkadot.chains)( + 'should result in valid Polkadot transfer for', + (c) => { + const config = configService.getChainRoutes(c); + const { chain, routes } = config; - for (const route of Array.from(routes.values())) { - const skip = bridge - .concat(blacklist) - .includes(route.destination.chain.key); - if (skip) { - continue; - } + for (const route of Array.from(routes.values())) { + const { blacklist } = polkadot; + const { destination } = route; - const info = getRouteInfo(chain, route); - runXcm( - `${info} transfer`, - async () => { - return { - chain: chain, - route: route, - }; - }, - async () => { - return { - networks: networks, - wallet: wallet, - }; - }, - { - skip: - chain.key != 'hydration' || - route.destination.chain.key != 'zeitgeist', - //route.source.asset.key != 'wbtc_mwh', + if (blacklist.includes(destination.chain.key)) { + continue; } - ); + + const isContractTransfer = !!route.contract; + + const info = getRouteInfo(chain, route); + runXcm( + `${info} transfer`, + async () => { + return { + chain: chain, + route: route, + }; + }, + async () => { + return { + report: reportCtx, + networks: networks, + wallet: wallet, + }; + }, + { + skip: isContractTransfer, + } + ); + } } - }); + ); }); diff --git a/integration-tests/xcm-test/src/e2e/amount.ts b/integration-tests/xcm-test/src/e2e/amount.ts new file mode 100644 index 00000000..45a8540d --- /dev/null +++ b/integration-tests/xcm-test/src/e2e/amount.ts @@ -0,0 +1,13 @@ +import { Asset, AssetAmount } from '@galacticcouncil/xcm-core'; + +export const getAmount = async ( + amount: number, + asset: Asset, + assetDecimals: number +) => { + const assetAmount = amount * 10 ** assetDecimals; + return AssetAmount.fromAsset(asset, { + decimals: assetDecimals, + amount: BigInt(assetAmount), + }); +}; diff --git a/integration-tests/xcm-test/src/e2e/events.ts b/integration-tests/xcm-test/src/e2e/events.ts new file mode 100644 index 00000000..89699d95 --- /dev/null +++ b/integration-tests/xcm-test/src/e2e/events.ts @@ -0,0 +1,70 @@ +import type { + DispatchError, + EventRecord, +} from '@polkadot/types/interfaces/system'; +import type { AnyJson } from '@polkadot/types-codec/types'; +import { ApiPromise } from '@polkadot/api'; + +import { findNestedKey } from '../utils'; + +export function checkIfFailed(api: ApiPromise, events: EventRecord[]): boolean { + return events.some(({ event: { method, section, data } }) => { + const eventData = data.toHuman(); + if (section === 'system' && method === 'ExtrinsicFailed') { + logEvent(section, method, eventData); + logError(api, data); + return true; + } + return false; + }); +} + +export function checkIfSent(events: EventRecord[]): boolean { + return events.some(({ event: { method, section, data } }) => { + const eventData = data.toHuman(); + switch (section) { + case 'xcmpQueue': + logEvent(section, method, eventData); + return method === 'XcmpMessageSent'; + default: + return false; + } + }); +} + +export function checkIfProcessed(events: EventRecord[]): boolean { + return events.some(({ event: { method, section, data } }) => { + const eventData = data.toHuman(); + switch (section) { + case 'messageQueue': + logEvent(section, method, eventData); + return method === 'Processed' && checkProcessedStatus(eventData); + case 'xcmpQueue': + logEvent(section, method, eventData); + return method === 'Success'; + case 'dmpQueue': + logEvent(section, method, eventData); + return method === 'ExecutedDownward'; + default: + return false; + } + }); +} + +function checkProcessedStatus(data: AnyJson): boolean { + const dataEntry = findNestedKey(data, 'success'); + return dataEntry['success'] === true; +} + +function logEvent(section: string, method: string, data: AnyJson) { + console.log('🥢 STATUS: ' + section + '.' + method, data); +} + +function logError(api: ApiPromise, data: any) { + const { dispatchError } = data; + const error = dispatchError as DispatchError; + const decoded = api.registry.findMetaError(error.asModule); + console.error( + `🥢 ${decoded.section}.${decoded.method}: ${decoded.docs.join(' ')}` + ); +} diff --git a/integration-tests/xcm-test/src/e2e/hooks/index.ts b/integration-tests/xcm-test/src/e2e/hooks/index.ts new file mode 100644 index 00000000..4ef7a8ff --- /dev/null +++ b/integration-tests/xcm-test/src/e2e/hooks/index.ts @@ -0,0 +1 @@ +export * as moonbeam from './moonbeam'; diff --git a/integration-tests/xcm-test/src/e2e/hooks/moonbeam.ts b/integration-tests/xcm-test/src/e2e/hooks/moonbeam.ts new file mode 100644 index 00000000..f5f1e918 --- /dev/null +++ b/integration-tests/xcm-test/src/e2e/hooks/moonbeam.ts @@ -0,0 +1,84 @@ +import { XCallEvm } from '@galacticcouncil/xcm-sdk'; + +import { ApiPromise } from '@polkadot/api'; +import { SubmittableExtrinsic } from '@polkadot/api/promise/types'; + +import { decodeFunctionData } from 'viem'; + +import { jsonFormatter } from '../../utils'; + +const NATIVE = '0x0000000000000000000000000000000000000802'; +const FOREIGN_PREFIX = '0xffffffff'; + +const getCurrencyId = (asset: string) => { + const assetFmt = asset.toLowerCase(); + + if (assetFmt.startsWith(FOREIGN_PREFIX)) { + const assetHex = '0x' + assetFmt.replace(FOREIGN_PREFIX, ''); + return { + ForeignAsset: BigInt(assetHex).toString(), + }; + } else if (assetFmt === NATIVE) { + return 'SelfReserve'; + } else { + return { + Erc20: { contractAddress: assetFmt }, + }; + } +}; + +const getAccountId32 = (account: string) => { + return '0x' + account.replace('0x01', '').replace('0x03', '').slice(0, -2); +}; + +const getContractArgs = (calldata: XCallEvm) => { + const { abi, data } = calldata; + return decodeFunctionData({ + abi: JSON.parse(abi!!), + data: data, + }); +}; + +export const toTransferExtrinsic = ( + api: ApiPromise, + calldata: XCallEvm +): SubmittableExtrinsic => { + const { args, functionName } = getContractArgs(calldata); + + const [asset, amount, destination, weight] = args; + const { parents, interior } = destination; + const [parachain, account] = interior; + + const fn = api.tx['xTokens'][functionName]; + const fnArgs = [ + getCurrencyId(asset), + amount, + { + ['V4']: { + parents: parents, + interior: { + X2: [ + { + Parachain: Number(parachain), + }, + { + AccountId32: { + id: getAccountId32(account), + network: null, + }, + }, + ], + }, + }, + }, + 'Unlimited', + ]; + + const extrinsic = fn(...fnArgs); + console.log('🥢 Executing XTokens contract as extrinsic ...'); + console.log('🥢 Contract: ' + calldata.data); + console.log('🥢 Extrinsic hex: ', extrinsic.toHex()); + console.log('🥢 Extrinsic args: ', JSON.stringify(fnArgs, jsonFormatter, 2)); + + return extrinsic; +}; diff --git a/integration-tests/xcm-test/src/e2e/matchers.ts b/integration-tests/xcm-test/src/e2e/matchers.ts deleted file mode 100644 index 376e2a87..00000000 --- a/integration-tests/xcm-test/src/e2e/matchers.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { withExpect } from '@acala-network/chopsticks-testing'; - -/* const { check, checkEvents, checkHrmp, checkSystemEvents, checkUmp } = - withExpect((x: any) => ({ - toMatchSnapshot(msg?: string): void { - expect(x).toMatchSnapshot(msg); - }, - toMatch(value: any, _msg?: string): void { - expect(x).toMatch(value); - }, - toMatchObject(value: any, _msg?: string): void { - expect(x).toMatchObject(value); - }, - })); */ - -const { check, checkEvents, checkHrmp, checkSystemEvents, checkUmp } = - withExpect((x: any) => ({ - toMatchSnapshot(msg?: string): void { - console.log(msg); - console.log(x); - console.log(JSON.stringify(x, null, 2)); - }, - toMatch(value: any, _msg?: string): void { - console.log(x); - }, - toMatchObject(value: any, _msg?: string): void { - console.log(x); - }, - })); - -export { check, checkEvents, checkHrmp, checkSystemEvents, checkUmp }; diff --git a/integration-tests/xcm-test/src/e2e/network.ts b/integration-tests/xcm-test/src/e2e/network.ts index fd6fc191..3686f01b 100644 --- a/integration-tests/xcm-test/src/e2e/network.ts +++ b/integration-tests/xcm-test/src/e2e/network.ts @@ -11,7 +11,7 @@ export async function createNetwork(chain: Parachain): Promise { }); const chainStorage = await initStorage(ctx.api, chain); - console.log('🥢 Storage initialized for ' + chain.name); + console.log('🥢 ' + chain.name + ' storage ready.'); await ctx.dev.setStorage(chainStorage); return { ...ctx, diff --git a/integration-tests/xcm-test/src/e2e/xcm.ts b/integration-tests/xcm-test/src/e2e/xcm.ts index 9d7fed23..afd01b50 100644 --- a/integration-tests/xcm-test/src/e2e/xcm.ts +++ b/integration-tests/xcm-test/src/e2e/xcm.ts @@ -1,18 +1,32 @@ import { sendTransaction } from '@acala-network/chopsticks-testing'; import { AnyChain, - AssetAmount, AssetRoute, + CallType, Parachain, } from '@galacticcouncil/xcm-core'; -import { Wallet, XTransfer } from '@galacticcouncil/xcm-sdk'; +import { + TransferAdapter, + Wallet, + XCallEvm, + XTransfer, +} from '@galacticcouncil/xcm-sdk'; import { getAccount } from './account'; -import { checkSystemEvents } from './matchers'; +import { getAmount } from './amount'; +import { checkIfFailed, checkIfProcessed, checkIfSent } from './events'; +import { moonbeam } from './hooks'; +import { + getSourceBalanceDiff, + getDestinationBalanceDiff, + getDestinationFee, +} from './xcm.utils'; import { SetupCtx } from './types'; import { getRouteKey } from '../utils'; +const TRANSFER_AMOUNT = '10'; + export const runXcm = ( name: string, cfg: () => Promise<{ @@ -20,6 +34,7 @@ export const runXcm = ( route: AssetRoute; }>, ctx: () => Promise<{ + report: Map; networks: SetupCtx[]; wallet: Wallet; }>, @@ -30,7 +45,7 @@ export const runXcm = ( name, async () => { const { chain, route } = await cfg(); - const { networks, wallet } = await ctx(); + const { report, networks, wallet } = await ctx(); const srcChain = chain as Parachain; const srcNetwork = networks.find((n) => n.config.key === srcChain.key)!; @@ -39,7 +54,7 @@ export const runXcm = ( const key = getRouteKey(chain, route); - console.log('\n🥢 Executing ' + name); + console.log('\n🥢 Executing ' + name + ' ...'); console.log('🥢 Route key: ' + key); const transfer = await getTransfer( @@ -49,16 +64,26 @@ export const runXcm = ( route ); - const { data } = await transfer.buildCall('10'); - const extrinsic = srcNetwork.api.tx(data); + const calldata = await transfer.buildCall(TRANSFER_AMOUNT); + + let extrinsic; + if (calldata.type === CallType.Evm && chain.key === 'moonbeam') { + // Skipped for now + extrinsic = moonbeam.toTransferExtrinsic( + srcNetwork.api, + calldata as XCallEvm + ); + } else { + extrinsic = srcNetwork.api.tx(calldata.data); + } const srcAccount = getAccount(srcChain); await sendTransaction(extrinsic.signAsync(srcAccount)); await srcNetwork.chain.newBlock(); - await checkSystemEvents(srcNetwork, 'xcmpQueue').toMatchSnapshot( - 'xcmpQueue' - ); + const srcEvents = await srcNetwork.api.query.system.events(); + expect(checkIfFailed(srcNetwork.api, srcEvents)).toBeFalsy(); + checkIfSent(srcEvents); if (isMoonbeamReserve(srcChain, route)) { const moonbeam = networks.find((n) => n.config.key === 'moonbeam')!; @@ -71,17 +96,49 @@ export const runXcm = ( } await destNetwork.chain.newBlock(); - await checkSystemEvents( + const destEvents = await destNetwork.api.query.system.events(); + expect(checkIfProcessed(destEvents)).toBeTruthy(); + expect([key, calldata.data]).toMatchSnapshot(); + + const postTransfer = await getTransfer( + wallet, + srcNetwork, destNetwork, - 'xcmpQueue', - 'messageQueue' - ).toMatchSnapshot('messageQueue'); + route + ); - const after = await getTransfer(wallet, srcNetwork, destNetwork, route); - getTransferTable(transfer, after); - console.log('🥢 DONE: ' + name); + const destinationFee = getDestinationFee( + TRANSFER_AMOUNT, + transfer, + postTransfer + ); + + report.set(key, { + updated: Date.now(), + destination: { + fee: destinationFee.delta, + feeAsset: destinationFee.asset, + feeNative: destinationFee.deltaBn, + }, + }); + + console.table( + [ + tableRow( + 'Balance (Source)', + getSourceBalanceDiff(transfer, postTransfer) + ), + tableRow( + 'Balance (Destination)', + getDestinationBalanceDiff(transfer, postTransfer) + ), + tableRow('Fee', destinationFee), + ], + ['name', 'asset', 'delta'] + ); + console.log('🥢 ' + name + ' complete.'); }, - 240000 + 2 * 60 * 1000 ); }; @@ -122,6 +179,14 @@ const getTransfer = async ( .spyOn(destNetwork.config, 'api', 'get') .mockImplementation(async () => destNetwork.api); + if (route.contract) { + jest + .spyOn(TransferAdapter.prototype, 'estimateFee') + .mockImplementation(async () => { + return getAmount(0.1, source.asset, 18); + }); + } + const isSwapSupportedMock = jest .spyOn(wallet.dex, 'isSwapSupported') .mockImplementation(() => false); @@ -141,51 +206,16 @@ const getTransfer = async ( return xTransfer; }; -const getTransferTable = (before: XTransfer, after: XTransfer) => { - const isSufficientAssetTransfer = before.source.balance.isSame( - before.source.destinationFee - ); - - const balance = getTransferTableRow( - 'Balance', - before.source.balance, - after.source.balance - ); - - const balanceDest = getTransferTableRow( - 'Balance (Destination)', - before.destination.balance, - after.destination.balance - ); - - const report = [balance, balanceDest]; - - if (!isSufficientAssetTransfer) { - const fee = getTransferTableRow( - 'Fee', - before.source.destinationFeeBalance, - after.source.destinationFeeBalance - ); - report.push(fee); - } - - console.table(report); -}; - -const getTransferTableRow = ( +const tableRow = ( title: string, - before: AssetAmount, - after: AssetAmount + info: { + asset: string; + delta: string; + deltaBn: bigint; + } ) => { - const beforeFtm = before.toDecimal(before.decimals); - const afterFmt = after.toDecimal(after.decimals); - const delta = Number(beforeFtm) - Number(afterFmt); - return { name: title, - asset: before.originSymbol, - before: beforeFtm, - after: afterFmt, - delta: delta < 0 ? '+' + Math.abs(delta) : '-' + delta, + ...info, }; }; diff --git a/integration-tests/xcm-test/src/e2e/xcm.utils.ts b/integration-tests/xcm-test/src/e2e/xcm.utils.ts new file mode 100644 index 00000000..fb1ed895 --- /dev/null +++ b/integration-tests/xcm-test/src/e2e/xcm.utils.ts @@ -0,0 +1,77 @@ +import { big } from '@galacticcouncil/xcm-core'; +import { XTransfer } from '@galacticcouncil/xcm-sdk'; + +const isSufficientAssetTransfer = (transfer: XTransfer): boolean => { + return transfer.source.balance.isSame(transfer.source.destinationFee); +}; + +export const getSourceBalanceDiff = (before: XTransfer, after: XTransfer) => { + const balance = before.source.balance; + const balanceAfter = after.source.balance; + + const delta = balance.amount - balanceAfter.amount; + const deltaFmt = big.toDecimal(delta, balance.decimals); + + return { + asset: balance.originSymbol, + delta: '-' + deltaFmt, + deltaBn: delta, + }; +}; + +export const getDestinationBalanceDiff = ( + before: XTransfer, + after: XTransfer +) => { + const balance = before.destination.balance; + const balanceAfter = after.destination.balance; + + const delta = balanceAfter.amount - balance.amount; + const deltaFmt = big.toDecimal(delta, balance.decimals); + + return { + asset: balance.originSymbol, + delta: '+' + deltaFmt, + deltaBn: delta, + }; +}; + +export const getDestinationFee = ( + amount: string, + before: XTransfer, + after: XTransfer +) => { + const isSufficient = isSufficientAssetTransfer(before); + + if (isSufficient) { + const balance = before.destination.balance; + const balanceAfter = after.destination.balance; + + const transfered = big.toBigInt(amount, balance.decimals); + + /* console.log(transfered, balanceAfter.amount - balance.amount); + */ + const delta = transfered - (balanceAfter.amount - balance.amount); + const deltaFmt = big.toDecimal(delta, balance.decimals, balance.decimals); + + /* console.log(delta, deltaFmt); + */ + return { + asset: balance.originSymbol, + delta: deltaFmt, + deltaBn: delta, + }; + } + + const balance = before.source.destinationFeeBalance; + const balanceAfter = after.source.destinationFeeBalance; + + const delta = balance.amount - balanceAfter.amount; + const deltaFmt = big.toDecimal(delta, balance.decimals, balance.decimals); + + return { + asset: balance.originSymbol, + delta: deltaFmt, + deltaBn: delta, + }; +}; diff --git a/integration-tests/xcm-test/src/file.ts b/integration-tests/xcm-test/src/file.ts new file mode 100644 index 00000000..e09ba0eb --- /dev/null +++ b/integration-tests/xcm-test/src/file.ts @@ -0,0 +1,28 @@ +import { readFileSync, writeFileSync } from 'fs'; + +import { jsonFormatter } from './utils'; + +const DB_PATH = './src/__db__/'; + +export const write = (data: any, db: string) => { + const json = JSON.stringify(Object.fromEntries(data), jsonFormatter, 2); + const file = [DB_PATH + db].join(''); + writeFileSync(file, json); +}; + +export const loadExisting = (db: string) => { + const file = [DB_PATH + db].join(''); + let jsonString; + try { + jsonString = readFileSync(file, { encoding: 'utf8', flag: 'r' }); + } catch { + jsonString = '{}'; + } + + const jsonObject = JSON.parse(jsonString); + const jsonMap = new Map(); + for (const key in jsonObject) { + jsonMap.set(key, jsonObject[key]); + } + return jsonMap; +}; diff --git a/integration-tests/xcm-test/src/mock/xcm.ts b/integration-tests/xcm-test/src/mock/xcm.ts index 6341a867..771667b2 100644 --- a/integration-tests/xcm-test/src/mock/xcm.ts +++ b/integration-tests/xcm-test/src/mock/xcm.ts @@ -15,6 +15,7 @@ import { getRouteKey } from '../utils'; const BALANCE = 10; const FEE = 0.1; +const TRANSFER_AMOUNT = '1'; export const runXcm = ( name: string, @@ -37,11 +38,11 @@ export const runXcm = ( const key = getRouteKey(chain, route); const transfer = await getTransfer(wallet, chain, route); - const calldata = await transfer.buildCall('1'); + const { data } = await transfer.buildCall(TRANSFER_AMOUNT); - expect([key, calldata.data]).toMatchSnapshot(); + expect([key, data]).toMatchSnapshot(); }, - 4 * 60 * 1000 + 1 * 60 * 1000 ); }; diff --git a/integration-tests/xcm-test/src/utils.ts b/integration-tests/xcm-test/src/utils.ts index 09952e6e..4b96303a 100644 --- a/integration-tests/xcm-test/src/utils.ts +++ b/integration-tests/xcm-test/src/utils.ts @@ -1,5 +1,7 @@ import { AnyChain, AssetRoute } from '@galacticcouncil/xcm-core'; +import { writeFileSync } from 'fs'; + export const getRouteKey = (chain: AnyChain, route: AssetRoute) => { const { source, destination } = route; return [chain.key, destination.chain.key, source.asset.key].join('-'); @@ -19,6 +21,17 @@ export const getRouteInfo = (chain: AnyChain, route: AssetRoute) => { ].join(' '); }; -export const jsonFromatter = (_: any, nestedValue: any) => { +export const jsonFormatter = (_: any, nestedValue: any) => { return typeof nestedValue === 'bigint' ? nestedValue.toString() : nestedValue; }; + +export const findNestedKey = (obj: any, keyToFind: any) => { + const foundObj: any[] = []; + JSON.stringify(obj, (_, nestedValue) => { + if (nestedValue && nestedValue[keyToFind]) { + foundObj.push(nestedValue); + } + return nestedValue; + }); + return foundObj[0]; +}; diff --git a/packages/xcm-cfg/src/builders/BalanceBuilder.ts b/packages/xcm-cfg/src/builders/BalanceBuilder.ts index 8260d1db..3ce15a52 100644 --- a/packages/xcm-cfg/src/builders/BalanceBuilder.ts +++ b/packages/xcm-cfg/src/builders/BalanceBuilder.ts @@ -14,6 +14,9 @@ import { } from '@polkadot/types/lookup'; import { isString } from '@polkadot/util'; +import { XcmVersion } from './types'; +import { normalizeInterior } from './ExtrinsicBuilder.utils'; + export function BalanceBuilder() { return { substrate, @@ -95,7 +98,13 @@ function foreignAssets() { build: ({ address, asset, chain }) => { const ctx = chain as Parachain; + // TODO - use v4 locations const assetLocation = ctx.getAssetXcmLocation(asset); + const normalizeAssetLocation = normalizeInterior( + assetLocation!, + XcmVersion.v4 + ); + if (!assetLocation) { throw new Error('Missing asset xcm location for ' + asset.key); } @@ -103,7 +112,7 @@ function foreignAssets() { return new SubstrateQueryConfig({ module: 'foreignAssets', func: 'account', - args: [assetLocation, address], + args: [normalizeAssetLocation, address], transform: async ( response: Option ): Promise => response.unwrapOrDefault().balance.toBigInt(), diff --git a/packages/xcm-cfg/src/builders/ExtrinsicBuilder.utils.ts b/packages/xcm-cfg/src/builders/ExtrinsicBuilder.utils.ts index 25deb99b..c2ff453c 100644 --- a/packages/xcm-cfg/src/builders/ExtrinsicBuilder.utils.ts +++ b/packages/xcm-cfg/src/builders/ExtrinsicBuilder.utils.ts @@ -73,7 +73,7 @@ export function getExtrinsicAssetLocation( * @param version - xcm version * @returns normalized x1 interior if <= V3 */ -function normalizeInterior( +export function normalizeInterior( assetLocation: Record, version: XcmVersion ) { diff --git a/packages/xcm-cfg/src/configs/polkadot/interlay.ts b/packages/xcm-cfg/src/configs/polkadot/interlay.ts index bdbe07c2..998258cd 100644 --- a/packages/xcm-cfg/src/configs/polkadot/interlay.ts +++ b/packages/xcm-cfg/src/configs/polkadot/interlay.ts @@ -17,7 +17,7 @@ const toHydration: AssetRoute[] = [ chain: hydration, asset: intr, fee: { - amount: 0.136389, + amount: 0.13, asset: intr, }, }, @@ -39,8 +39,8 @@ const toHydration: AssetRoute[] = [ chain: hydration, asset: ibtc, fee: { - amount: 0.00000007, - asset: ibtc, + amount: 0.03, + asset: intr, }, }, extrinsic: ExtrinsicBuilder().xTokens().transfer(), diff --git a/packages/xcm-cfg/src/index.ts b/packages/xcm-cfg/src/index.ts index 11487b82..90f90df7 100644 --- a/packages/xcm-cfg/src/index.ts +++ b/packages/xcm-cfg/src/index.ts @@ -3,6 +3,7 @@ export { chainsMap } from './chains'; export { routesMap } from './configs'; export { validations } from './validations'; +export * as builders from './builders'; export * as clients from './clients'; export * as utils from './utils'; diff --git a/packages/xcm-sdk/src/adapters/transfer/ContractTransfer.ts b/packages/xcm-sdk/src/adapters/transfer/ContractTransfer.ts index 84a634f8..39be2edb 100644 --- a/packages/xcm-sdk/src/adapters/transfer/ContractTransfer.ts +++ b/packages/xcm-sdk/src/adapters/transfer/ContractTransfer.ts @@ -1,6 +1,7 @@ import { AnyEvmChain, AssetAmount, + CallType, ContractConfig, EvmClient, } from '@galacticcouncil/xcm-core'; @@ -34,6 +35,7 @@ export class ContractTransfer implements TransferProvider { from: account as `0x${string}`, to: config.address as `0x${string}`, value: config.value, + type: CallType.Evm, } as XCallEvm; if (isPrecompile(config) || isNativeEthBridge(config)) { @@ -53,6 +55,7 @@ export class ContractTransfer implements TransferProvider { data: approve as `0x${string}`, from: account as `0x${string}`, to: asset as `0x${string}`, + type: CallType.Evm, } as XCallEvm; } diff --git a/packages/xcm-sdk/src/adapters/transfer/SubstrateTransfer.ts b/packages/xcm-sdk/src/adapters/transfer/SubstrateTransfer.ts index 46783772..265d66bf 100644 --- a/packages/xcm-sdk/src/adapters/transfer/SubstrateTransfer.ts +++ b/packages/xcm-sdk/src/adapters/transfer/SubstrateTransfer.ts @@ -1,6 +1,7 @@ import { AnyParachain, AssetAmount, + CallType, ExtrinsicConfig, } from '@galacticcouncil/xcm-core'; @@ -28,6 +29,7 @@ export class SubstrateTransfer implements TransferProvider { return { from: account, data: extrinsic.toHex(), + type: CallType.Substrate, } as XCall; } diff --git a/packages/xcm-sdk/src/types.ts b/packages/xcm-sdk/src/types.ts index d1565f0b..a5b7cb74 100644 --- a/packages/xcm-sdk/src/types.ts +++ b/packages/xcm-sdk/src/types.ts @@ -1,5 +1,6 @@ import { AssetAmount, + CallType, SwapCtx, TransferValidationReport, } from '@galacticcouncil/xcm-core'; @@ -60,6 +61,8 @@ export interface XCall { from: string; /** Hex-encoded call data. */ data: `0x${string}`; + /** Calltype. */ + type: CallType; } export interface XCallEvm extends XCall {