@paraspell/sdk 5.8.0 → 5.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { ethers } from 'ethers';
3
3
  import { prodRelayPolkadot, prodRelayKusama } from '@polkadot/apps-config/endpoints';
4
4
  import { u32 } from '@polkadot/types';
5
5
  import { BN } from '@polkadot/util';
6
- import { toPolkadot, environment, contextFactory } from '@snowbridge/api';
6
+ import { contextFactory, toPolkadot, environment } from '@snowbridge/api';
7
7
 
8
8
  function _arrayLikeToArray(r, a) {
9
9
  (null == a || a > r.length) && (a = r.length);
@@ -568,7 +568,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
568
568
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
569
569
  PERFORMANCE OF THIS SOFTWARE.
570
570
  ***************************************************************************** */
571
- /* global Reflect, Promise, SuppressedError, Symbol */
571
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
572
572
 
573
573
 
574
574
  function __awaiter(thisArg, _arguments, P, generator) {
@@ -600,6 +600,12 @@ var Parents;
600
600
  Parents[Parents["TWO"] = 2] = "TWO";
601
601
  })(Parents || (Parents = {}));
602
602
 
603
+ var BatchMode;
604
+ (function (BatchMode) {
605
+ BatchMode["BATCH_ALL"] = "BATCH_ALL";
606
+ BatchMode["BATCH"] = "BATCH";
607
+ })(BatchMode || (BatchMode = {}));
608
+
603
609
  // Used to inform user, that Parachain they wish to use has not yet implemented full XCM Support
604
610
  var NoXCMSupportImplementedError = /*#__PURE__*/function (_Error) {
605
611
  function NoXCMSupportImplementedError(node) {
@@ -611,8 +617,32 @@ var NoXCMSupportImplementedError = /*#__PURE__*/function (_Error) {
611
617
  }
612
618
  _inherits(NoXCMSupportImplementedError, _Error);
613
619
  return _createClass(NoXCMSupportImplementedError);
614
- }( /*#__PURE__*/_wrapNativeSuper(Error));
620
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
615
621
 
622
+ var Polkadot$1 = {
623
+ relayChainAssetSymbol: "DOT",
624
+ nativeAssetSymbol: "DOT",
625
+ nativeAssets: [
626
+ {
627
+ symbol: "DOT",
628
+ decimals: 10
629
+ }
630
+ ],
631
+ otherAssets: [
632
+ ]
633
+ };
634
+ var Kusama$1 = {
635
+ relayChainAssetSymbol: "KSM",
636
+ nativeAssetSymbol: "KSM",
637
+ nativeAssets: [
638
+ {
639
+ symbol: "KSM",
640
+ decimals: 12
641
+ }
642
+ ],
643
+ otherAssets: [
644
+ ]
645
+ };
616
646
  var Acala$3 = {
617
647
  paraId: 2000,
618
648
  relayChainAssetSymbol: "DOT",
@@ -664,6 +694,11 @@ var Acala$3 = {
664
694
  symbol: "EQD",
665
695
  decimals: 9
666
696
  },
697
+ {
698
+ assetId: "16",
699
+ symbol: "PDEX",
700
+ decimals: 12
701
+ },
667
702
  {
668
703
  assetId: "4",
669
704
  symbol: "INTR",
@@ -724,6 +759,11 @@ var Acala$3 = {
724
759
  symbol: "LDO",
725
760
  decimals: 18
726
761
  },
762
+ {
763
+ assetId: "17",
764
+ symbol: "HDX",
765
+ decimals: 12
766
+ },
727
767
  {
728
768
  assetId: "0x54a37a01cd75b616d63e0ab665bffdb0143c52ae",
729
769
  symbol: "DAI",
@@ -789,6 +829,11 @@ var Acala$3 = {
789
829
  symbol: "WBTC",
790
830
  decimals: 8
791
831
  },
832
+ {
833
+ assetId: "15",
834
+ symbol: "CFG",
835
+ decimals: 18
836
+ },
792
837
  {
793
838
  assetId: "3",
794
839
  symbol: "IBTC",
@@ -1202,11 +1247,6 @@ var Centrifuge$3 = {
1202
1247
  symbol: "USDC",
1203
1248
  decimals: 6
1204
1249
  },
1205
- {
1206
- assetId: "N",
1207
- symbol: "CFG",
1208
- decimals: 18
1209
- },
1210
1250
  {
1211
1251
  assetId: "100002",
1212
1252
  symbol: "LpBaseUSDC",
@@ -1416,6 +1456,26 @@ var Darwinia$3 = {
1416
1456
  }
1417
1457
  ],
1418
1458
  otherAssets: [
1459
+ {
1460
+ assetId: "1027",
1461
+ symbol: "ahUSDT",
1462
+ decimals: 6
1463
+ },
1464
+ {
1465
+ assetId: "1026",
1466
+ symbol: "KTON",
1467
+ decimals: 18
1468
+ },
1469
+ {
1470
+ assetId: "1028",
1471
+ symbol: "ahPINK",
1472
+ decimals: 10
1473
+ },
1474
+ {
1475
+ assetId: "1029",
1476
+ symbol: "DOT",
1477
+ decimals: 10
1478
+ }
1419
1479
  ]
1420
1480
  };
1421
1481
  var Hydration$3 = {
@@ -1761,7 +1821,7 @@ var Litentry$3 = {
1761
1821
  nativeAssets: [
1762
1822
  {
1763
1823
  symbol: "LIT",
1764
- decimals: 12
1824
+ decimals: 18
1765
1825
  }
1766
1826
  ],
1767
1827
  otherAssets: [
@@ -2209,6 +2269,11 @@ var AssetHubPolkadot$3 = {
2209
2269
  symbol: "MYTH",
2210
2270
  decimals: 18
2211
2271
  },
2272
+ {
2273
+ assetId: "22222005",
2274
+ symbol: "love",
2275
+ decimals: 12
2276
+ },
2212
2277
  {
2213
2278
  assetId: "9999",
2214
2279
  symbol: "TOM",
@@ -2224,6 +2289,11 @@ var AssetHubPolkadot$3 = {
2224
2289
  symbol: "WETH",
2225
2290
  decimals: 18
2226
2291
  },
2292
+ {
2293
+ assetId: "22222041",
2294
+ symbol: "PAD",
2295
+ decimals: 12
2296
+ },
2227
2297
  {
2228
2298
  assetId: "56",
2229
2299
  symbol: "UNION",
@@ -2234,6 +2304,11 @@ var AssetHubPolkadot$3 = {
2234
2304
  symbol: "HUB",
2235
2305
  decimals: 10
2236
2306
  },
2307
+ {
2308
+ assetId: "22222025",
2309
+ symbol: "XCMS",
2310
+ decimals: 12
2311
+ },
2237
2312
  {
2238
2313
  assetId: "81",
2239
2314
  symbol: "GVN",
@@ -2264,6 +2339,11 @@ var AssetHubPolkadot$3 = {
2264
2339
  symbol: "DUCK",
2265
2340
  decimals: 10
2266
2341
  },
2342
+ {
2343
+ assetId: "58",
2344
+ symbol: "MDMA",
2345
+ decimals: 12
2346
+ },
2267
2347
  {
2268
2348
  assetId: "222",
2269
2349
  symbol: "SHL",
@@ -2309,21 +2389,46 @@ var AssetHubPolkadot$3 = {
2309
2389
  symbol: "NFLR",
2310
2390
  decimals: 10
2311
2391
  },
2392
+ {
2393
+ assetId: "22222028",
2394
+ symbol: "COKE",
2395
+ decimals: 12
2396
+ },
2312
2397
  {
2313
2398
  assetId: "20090110",
2314
2399
  symbol: "test1",
2315
2400
  decimals: 10
2316
2401
  },
2402
+ {
2403
+ assetId: "22222024",
2404
+ symbol: "POLISD",
2405
+ decimals: 12
2406
+ },
2317
2407
  {
2318
2408
  assetId: "256",
2319
2409
  symbol: "ICE",
2320
2410
  decimals: 20
2321
2411
  },
2412
+ {
2413
+ assetId: "22222070",
2414
+ symbol: "Mill",
2415
+ decimals: 12
2416
+ },
2417
+ {
2418
+ assetId: "22222019",
2419
+ symbol: "PI",
2420
+ decimals: 12
2421
+ },
2322
2422
  {
2323
2423
  assetId: "20090130",
2324
2424
  symbol: "SUS",
2325
2425
  decimals: 10
2326
2426
  },
2427
+ {
2428
+ assetId: "108",
2429
+ symbol: "GAME",
2430
+ decimals: 10
2431
+ },
2327
2432
  {
2328
2433
  assetId: "1111",
2329
2434
  symbol: "TESTV2",
@@ -2334,21 +2439,41 @@ var AssetHubPolkadot$3 = {
2334
2439
  symbol: "USDT",
2335
2440
  decimals: 16
2336
2441
  },
2442
+ {
2443
+ assetId: "22222008",
2444
+ symbol: "ALIEN",
2445
+ decimals: 12
2446
+ },
2337
2447
  {
2338
2448
  assetId: "300",
2339
2449
  symbol: "DOGE",
2340
2450
  decimals: 6
2341
2451
  },
2452
+ {
2453
+ assetId: "22222046",
2454
+ symbol: "$PGH",
2455
+ decimals: 12
2456
+ },
2342
2457
  {
2343
2458
  assetId: "4",
2344
2459
  symbol: "EFI",
2345
2460
  decimals: 18
2346
2461
  },
2462
+ {
2463
+ assetId: "22222043",
2464
+ symbol: "DDT",
2465
+ decimals: 12
2466
+ },
2347
2467
  {
2348
2468
  assetId: "48",
2349
2469
  symbol: "SAX",
2350
2470
  decimals: 2
2351
2471
  },
2472
+ {
2473
+ assetId: "22222064",
2474
+ symbol: "RIDEMY",
2475
+ decimals: 12
2476
+ },
2352
2477
  {
2353
2478
  assetId: "21",
2354
2479
  symbol: "WBTC",
@@ -2359,6 +2484,11 @@ var AssetHubPolkadot$3 = {
2359
2484
  symbol: "DOKA",
2360
2485
  decimals: 6
2361
2486
  },
2487
+ {
2488
+ assetId: "22222050",
2489
+ symbol: "SHIVER",
2490
+ decimals: 12
2491
+ },
2362
2492
  {
2363
2493
  assetId: "28",
2364
2494
  symbol: "BULL",
@@ -2424,6 +2554,11 @@ var AssetHubPolkadot$3 = {
2424
2554
  symbol: "SHIB",
2425
2555
  decimals: 6
2426
2556
  },
2557
+ {
2558
+ assetId: "20090147",
2559
+ symbol: "RVGAV",
2560
+ decimals: 10
2561
+ },
2427
2562
  {
2428
2563
  assetId: "46",
2429
2564
  symbol: "PEPE",
@@ -2434,6 +2569,11 @@ var AssetHubPolkadot$3 = {
2434
2569
  symbol: "BSOD",
2435
2570
  decimals: 10
2436
2571
  },
2572
+ {
2573
+ assetId: "22222036",
2574
+ symbol: "Shit",
2575
+ decimals: 12
2576
+ },
2437
2577
  {
2438
2578
  assetId: "99",
2439
2579
  symbol: "Cypress",
@@ -2445,9 +2585,14 @@ var AssetHubPolkadot$3 = {
2445
2585
  decimals: 12
2446
2586
  },
2447
2587
  {
2448
- assetId: "7777",
2449
- symbol: "FUM",
2450
- decimals: 10
2588
+ assetId: "22222058",
2589
+ symbol: "PLS",
2590
+ decimals: 12
2591
+ },
2592
+ {
2593
+ assetId: "22222002",
2594
+ symbol: "TeMeL",
2595
+ decimals: 12
2451
2596
  },
2452
2597
  {
2453
2598
  assetId: "20090114",
@@ -2464,6 +2609,26 @@ var AssetHubPolkadot$3 = {
2464
2609
  symbol: "web3",
2465
2610
  decimals: 18
2466
2611
  },
2612
+ {
2613
+ assetId: "22222051",
2614
+ symbol: "NIN",
2615
+ decimals: 12
2616
+ },
2617
+ {
2618
+ assetId: "22222020",
2619
+ symbol: "CDOG",
2620
+ decimals: 12
2621
+ },
2622
+ {
2623
+ assetId: "22222073",
2624
+ symbol: "0x4b61696279c58d",
2625
+ decimals: 12
2626
+ },
2627
+ {
2628
+ assetId: "22222074",
2629
+ symbol: "$JAM",
2630
+ decimals: 12
2631
+ },
2467
2632
  {
2468
2633
  assetId: "20090111",
2469
2634
  symbol: "txt",
@@ -2474,6 +2639,16 @@ var AssetHubPolkadot$3 = {
2474
2639
  symbol: "DED",
2475
2640
  decimals: 18
2476
2641
  },
2642
+ {
2643
+ assetId: "22222062",
2644
+ symbol: "ALPHA",
2645
+ decimals: 12
2646
+ },
2647
+ {
2648
+ assetId: "75",
2649
+ symbol: "TeMe14",
2650
+ decimals: 12
2651
+ },
2477
2652
  {
2478
2653
  assetId: "20090119",
2479
2654
  symbol: "MDGA",
@@ -2489,6 +2664,16 @@ var AssetHubPolkadot$3 = {
2489
2664
  symbol: "IBW",
2490
2665
  decimals: 10
2491
2666
  },
2667
+ {
2668
+ assetId: "22222075",
2669
+ symbol: "DUD",
2670
+ decimals: 12
2671
+ },
2672
+ {
2673
+ assetId: "22222022",
2674
+ symbol: "X",
2675
+ decimals: 12
2676
+ },
2492
2677
  {
2493
2678
  assetId: "122",
2494
2679
  symbol: "TESTING",
@@ -2509,6 +2694,21 @@ var AssetHubPolkadot$3 = {
2509
2694
  symbol: "JAMD",
2510
2695
  decimals: 10
2511
2696
  },
2697
+ {
2698
+ assetId: "57",
2699
+ symbol: "MCP",
2700
+ decimals: 12
2701
+ },
2702
+ {
2703
+ assetId: "22222021",
2704
+ symbol: "BBB",
2705
+ decimals: 12
2706
+ },
2707
+ {
2708
+ assetId: "22222009",
2709
+ symbol: "china",
2710
+ decimals: 12
2711
+ },
2512
2712
  {
2513
2713
  assetId: "14",
2514
2714
  symbol: "LEAP",
@@ -2544,6 +2744,11 @@ var AssetHubPolkadot$3 = {
2544
2744
  symbol: "STINK",
2545
2745
  decimals: 10
2546
2746
  },
2747
+ {
2748
+ assetId: "22222068",
2749
+ symbol: "V",
2750
+ decimals: 12
2751
+ },
2547
2752
  {
2548
2753
  assetId: "20090143",
2549
2754
  symbol: "DMSTR",
@@ -2575,9 +2780,14 @@ var AssetHubPolkadot$3 = {
2575
2780
  decimals: 10
2576
2781
  },
2577
2782
  {
2578
- assetId: "323",
2579
- symbol: "DGNNNC",
2580
- decimals: 6
2783
+ assetId: "22222078",
2784
+ symbol: "JAMTON",
2785
+ decimals: 12
2786
+ },
2787
+ {
2788
+ assetId: "73",
2789
+ symbol: "TeMe12",
2790
+ decimals: 12
2581
2791
  },
2582
2792
  {
2583
2793
  assetId: "77",
@@ -2589,6 +2799,11 @@ var AssetHubPolkadot$3 = {
2589
2799
  symbol: "DOGE",
2590
2800
  decimals: 10
2591
2801
  },
2802
+ {
2803
+ assetId: "22222029",
2804
+ symbol: "dog",
2805
+ decimals: 12
2806
+ },
2592
2807
  {
2593
2808
  assetId: "9002",
2594
2809
  symbol: "TAPE",
@@ -2604,6 +2819,16 @@ var AssetHubPolkadot$3 = {
2604
2819
  symbol: "GIO",
2605
2820
  decimals: 10
2606
2821
  },
2822
+ {
2823
+ assetId: "22222053",
2824
+ symbol: "DOTZ",
2825
+ decimals: 12
2826
+ },
2827
+ {
2828
+ assetId: "1747",
2829
+ symbol: "EMR",
2830
+ decimals: 10
2831
+ },
2607
2832
  {
2608
2833
  assetId: "31",
2609
2834
  symbol: "WOOD",
@@ -2659,6 +2884,11 @@ var AssetHubPolkadot$3 = {
2659
2884
  symbol: "SKL",
2660
2885
  decimals: 6
2661
2886
  },
2887
+ {
2888
+ assetId: "22222077",
2889
+ symbol: "SAPIEN",
2890
+ decimals: 12
2891
+ },
2662
2892
  {
2663
2893
  assetId: "15",
2664
2894
  symbol: "Meme",
@@ -2669,6 +2899,21 @@ var AssetHubPolkadot$3 = {
2669
2899
  symbol: "BUG",
2670
2900
  decimals: 12
2671
2901
  },
2902
+ {
2903
+ assetId: "22222013",
2904
+ symbol: "TM",
2905
+ decimals: 12
2906
+ },
2907
+ {
2908
+ assetId: "22222010",
2909
+ symbol: "TP",
2910
+ decimals: 12
2911
+ },
2912
+ {
2913
+ assetId: "22222071",
2914
+ symbol: "WUDFUD",
2915
+ decimals: 12
2916
+ },
2672
2917
  {
2673
2918
  assetId: "78",
2674
2919
  symbol: "COCA",
@@ -2689,6 +2934,11 @@ var AssetHubPolkadot$3 = {
2689
2934
  symbol: "PEPE",
2690
2935
  decimals: 10
2691
2936
  },
2937
+ {
2938
+ assetId: "20090144",
2939
+ symbol: "CHUG",
2940
+ decimals: 10
2941
+ },
2692
2942
  {
2693
2943
  assetId: "2",
2694
2944
  symbol: "BTC",
@@ -2709,6 +2959,16 @@ var AssetHubPolkadot$3 = {
2709
2959
  symbol: "POO",
2710
2960
  decimals: 10
2711
2961
  },
2962
+ {
2963
+ assetId: "22222031",
2964
+ symbol: "VRN",
2965
+ decimals: 12
2966
+ },
2967
+ {
2968
+ assetId: "22222014",
2969
+ symbol: "GIT",
2970
+ decimals: 12
2971
+ },
2712
2972
  {
2713
2973
  assetId: "20090129",
2714
2974
  symbol: "FCD",
@@ -2719,6 +2979,16 @@ var AssetHubPolkadot$3 = {
2719
2979
  symbol: "SATS",
2720
2980
  decimals: 6
2721
2981
  },
2982
+ {
2983
+ assetId: "22222034",
2984
+ symbol: "0xf09f9980",
2985
+ decimals: 12
2986
+ },
2987
+ {
2988
+ assetId: "74",
2989
+ symbol: "TeMe13",
2990
+ decimals: 12
2991
+ },
2722
2992
  {
2723
2993
  assetId: "70",
2724
2994
  symbol: "STEEBOR",
@@ -2729,11 +2999,31 @@ var AssetHubPolkadot$3 = {
2729
2999
  symbol: "HTG",
2730
3000
  decimals: 10
2731
3001
  },
3002
+ {
3003
+ assetId: "12746",
3004
+ symbol: "TTTT",
3005
+ decimals: 6
3006
+ },
2732
3007
  {
2733
3008
  assetId: "32",
2734
3009
  symbol: "CLAY",
2735
3010
  decimals: 10
2736
3011
  },
3012
+ {
3013
+ assetId: "22222035",
3014
+ symbol: ".WH",
3015
+ decimals: 12
3016
+ },
3017
+ {
3018
+ assetId: "82",
3019
+ symbol: "ANGRY",
3020
+ decimals: 12
3021
+ },
3022
+ {
3023
+ assetId: "22222065",
3024
+ symbol: "BBQ",
3025
+ decimals: 12
3026
+ },
2737
3027
  {
2738
3028
  assetId: "2106",
2739
3029
  symbol: "STREAK",
@@ -2754,11 +3044,31 @@ var AssetHubPolkadot$3 = {
2754
3044
  symbol: "STAR",
2755
3045
  decimals: 6
2756
3046
  },
3047
+ {
3048
+ assetId: "22222001",
3049
+ symbol: "OMG2",
3050
+ decimals: 12
3051
+ },
3052
+ {
3053
+ assetId: "22222042",
3054
+ symbol: "CORE",
3055
+ decimals: 12
3056
+ },
3057
+ {
3058
+ assetId: "22222018",
3059
+ symbol: "WOLF",
3060
+ decimals: 12
3061
+ },
2757
3062
  {
2758
3063
  assetId: "49",
2759
3064
  symbol: "TeMe7",
2760
3065
  decimals: 12
2761
3066
  },
3067
+ {
3068
+ assetId: "22222044",
3069
+ symbol: "DONUT",
3070
+ decimals: 12
3071
+ },
2762
3072
  {
2763
3073
  assetId: "868367",
2764
3074
  symbol: "VSC",
@@ -2774,6 +3084,11 @@ var AssetHubPolkadot$3 = {
2774
3084
  symbol: "JTO",
2775
3085
  decimals: 10
2776
3086
  },
3087
+ {
3088
+ assetId: "22222037",
3089
+ symbol: "KSM",
3090
+ decimals: 12
3091
+ },
2777
3092
  {
2778
3093
  assetId: "53",
2779
3094
  symbol: "TeMe9",
@@ -2794,6 +3109,11 @@ var AssetHubPolkadot$3 = {
2794
3109
  symbol: "GAVUN",
2795
3110
  decimals: 10
2796
3111
  },
3112
+ {
3113
+ assetId: "22222059",
3114
+ symbol: "GOOD",
3115
+ decimals: 12
3116
+ },
2797
3117
  {
2798
3118
  assetId: "43",
2799
3119
  symbol: "TeMe5",
@@ -2809,6 +3129,16 @@ var AssetHubPolkadot$3 = {
2809
3129
  symbol: "DOTA",
2810
3130
  decimals: 6
2811
3131
  },
3132
+ {
3133
+ assetId: "22222003",
3134
+ symbol: "TeMe2L",
3135
+ decimals: 12
3136
+ },
3137
+ {
3138
+ assetId: "22222039",
3139
+ symbol: "DTS",
3140
+ decimals: 12
3141
+ },
2812
3142
  {
2813
3143
  assetId: "5",
2814
3144
  symbol: "PLX",
@@ -2819,11 +3149,21 @@ var AssetHubPolkadot$3 = {
2819
3149
  symbol: "DOTA",
2820
3150
  decimals: 4
2821
3151
  },
3152
+ {
3153
+ assetId: "83",
3154
+ symbol: "BOYS",
3155
+ decimals: 12
3156
+ },
2822
3157
  {
2823
3158
  assetId: "7",
2824
3159
  symbol: "lucky7",
2825
3160
  decimals: 20
2826
3161
  },
3162
+ {
3163
+ assetId: "22222055",
3164
+ symbol: "TOP",
3165
+ decimals: 12
3166
+ },
2827
3167
  {
2828
3168
  assetId: "4242",
2829
3169
  symbol: "GAVUN",
@@ -2839,6 +3179,11 @@ var AssetHubPolkadot$3 = {
2839
3179
  symbol: "ETH",
2840
3180
  decimals: 10
2841
3181
  },
3182
+ {
3183
+ assetId: "22222072",
3184
+ symbol: "BNG",
3185
+ decimals: 12
3186
+ },
2842
3187
  {
2843
3188
  assetId: "201",
2844
3189
  symbol: "WUD",
@@ -2874,6 +3219,11 @@ var AssetHubPolkadot$3 = {
2874
3219
  symbol: "BORK",
2875
3220
  decimals: 10
2876
3221
  },
3222
+ {
3223
+ assetId: "22222048",
3224
+ symbol: "PKSK",
3225
+ decimals: 12
3226
+ },
2877
3227
  {
2878
3228
  assetId: "33441",
2879
3229
  symbol: "MPACT",
@@ -2899,6 +3249,11 @@ var AssetHubPolkadot$3 = {
2899
3249
  symbol: "PGOLD",
2900
3250
  decimals: 7
2901
3251
  },
3252
+ {
3253
+ assetId: "22222038",
3254
+ symbol: "VOR",
3255
+ decimals: 12
3256
+ },
2902
3257
  {
2903
3258
  assetId: "777",
2904
3259
  symbol: "777",
@@ -2914,18 +3269,43 @@ var AssetHubPolkadot$3 = {
2914
3269
  symbol: "test1",
2915
3270
  decimals: 10
2916
3271
  },
3272
+ {
3273
+ assetId: "22222076",
3274
+ symbol: "AAPL",
3275
+ decimals: 12
3276
+ },
2917
3277
  {
2918
3278
  assetId: "567",
2919
3279
  symbol: "ANT",
2920
3280
  decimals: 6
2921
3281
  },
3282
+ {
3283
+ assetId: "457",
3284
+ symbol: "HGVH",
3285
+ decimals: 10
3286
+ },
3287
+ {
3288
+ assetId: "68",
3289
+ symbol: "Coin68",
3290
+ decimals: 12
3291
+ },
2922
3292
  {
2923
3293
  assetId: "54",
2924
3294
  symbol: "TeMe10",
2925
3295
  decimals: 12
2926
3296
  },
2927
3297
  {
2928
- assetId: "1230",
3298
+ assetId: "22222023",
3299
+ symbol: "LURPIS",
3300
+ decimals: 12
3301
+ },
3302
+ {
3303
+ assetId: "22222066",
3304
+ symbol: "DUW",
3305
+ decimals: 12
3306
+ },
3307
+ {
3308
+ assetId: "1230",
2929
3309
  symbol: "HAM",
2930
3310
  decimals: 10
2931
3311
  },
@@ -2934,11 +3314,21 @@ var AssetHubPolkadot$3 = {
2934
3314
  symbol: "RNET",
2935
3315
  decimals: 0
2936
3316
  },
3317
+ {
3318
+ assetId: "22222027",
3319
+ symbol: "TDC",
3320
+ decimals: 12
3321
+ },
2937
3322
  {
2938
3323
  assetId: "9003",
2939
3324
  symbol: "KTRL",
2940
3325
  decimals: 10
2941
3326
  },
3327
+ {
3328
+ assetId: "22222033",
3329
+ symbol: "H@SH",
3330
+ decimals: 12
3331
+ },
2942
3332
  {
2943
3333
  assetId: "1313",
2944
3334
  symbol: "GGI",
@@ -2964,11 +3354,21 @@ var AssetHubPolkadot$3 = {
2964
3354
  symbol: "dot",
2965
3355
  decimals: 0
2966
3356
  },
3357
+ {
3358
+ assetId: "22222067",
3359
+ symbol: "ZALUPA",
3360
+ decimals: 12
3361
+ },
2967
3362
  {
2968
3363
  assetId: "90",
2969
3364
  symbol: "ATC",
2970
3365
  decimals: 6
2971
3366
  },
3367
+ {
3368
+ assetId: "22222017",
3369
+ symbol: "SANTA",
3370
+ decimals: 12
3371
+ },
2972
3372
  {
2973
3373
  assetId: "80",
2974
3374
  symbol: "GOVD",
@@ -2994,11 +3394,21 @@ var AssetHubPolkadot$3 = {
2994
3394
  symbol: "HYDRA",
2995
3395
  decimals: 10
2996
3396
  },
3397
+ {
3398
+ assetId: "22222057",
3399
+ symbol: "DIO",
3400
+ decimals: 12
3401
+ },
2997
3402
  {
2998
3403
  assetId: "10000",
2999
3404
  symbol: "DOGE",
3000
3405
  decimals: 6
3001
3406
  },
3407
+ {
3408
+ assetId: "59",
3409
+ symbol: "OK",
3410
+ decimals: 12
3411
+ },
3002
3412
  {
3003
3413
  assetId: "2820",
3004
3414
  symbol: "HOOT",
@@ -3009,6 +3419,21 @@ var AssetHubPolkadot$3 = {
3009
3419
  symbol: "PP",
3010
3420
  decimals: 10
3011
3421
  },
3422
+ {
3423
+ assetId: "22222069",
3424
+ symbol: "HELLO",
3425
+ decimals: 12
3426
+ },
3427
+ {
3428
+ assetId: "22222007",
3429
+ symbol: "NaCl",
3430
+ decimals: 12
3431
+ },
3432
+ {
3433
+ assetId: "2567",
3434
+ symbol: "TSTRM",
3435
+ decimals: 6
3436
+ },
3012
3437
  {
3013
3438
  assetId: "51",
3014
3439
  symbol: "JAMA",
@@ -3029,6 +3454,11 @@ var AssetHubPolkadot$3 = {
3029
3454
  symbol: "clay",
3030
3455
  decimals: 20
3031
3456
  },
3457
+ {
3458
+ assetId: "22222016",
3459
+ symbol: "MRSHE",
3460
+ decimals: 12
3461
+ },
3032
3462
  {
3033
3463
  assetId: "20090134",
3034
3464
  symbol: "DOTCOIN",
@@ -3039,11 +3469,31 @@ var AssetHubPolkadot$3 = {
3039
3469
  symbol: "BRZ",
3040
3470
  decimals: 6
3041
3471
  },
3472
+ {
3473
+ assetId: "22222049",
3474
+ symbol: "LUCKY",
3475
+ decimals: 12
3476
+ },
3042
3477
  {
3043
3478
  assetId: "8008",
3044
3479
  symbol: "HOBO",
3045
3480
  decimals: 2
3046
3481
  },
3482
+ {
3483
+ assetId: "20090146",
3484
+ symbol: "DOPE ",
3485
+ decimals: 10
3486
+ },
3487
+ {
3488
+ assetId: "22222047",
3489
+ symbol: "GWIF",
3490
+ decimals: 12
3491
+ },
3492
+ {
3493
+ assetId: "22222030",
3494
+ symbol: "PIGS",
3495
+ decimals: 12
3496
+ },
3047
3497
  {
3048
3498
  assetId: "60",
3049
3499
  symbol: "ANT",
@@ -3059,6 +3509,11 @@ var AssetHubPolkadot$3 = {
3059
3509
  symbol: "SITE",
3060
3510
  decimals: 10
3061
3511
  },
3512
+ {
3513
+ assetId: "20090145",
3514
+ symbol: "ROCK",
3515
+ decimals: 10
3516
+ },
3062
3517
  {
3063
3518
  assetId: "6666",
3064
3519
  symbol: "CHAOS",
@@ -3104,6 +3559,21 @@ var AssetHubPolkadot$3 = {
3104
3559
  symbol: "usdc",
3105
3560
  decimals: 10
3106
3561
  },
3562
+ {
3563
+ assetId: "22222000",
3564
+ symbol: "OMG",
3565
+ decimals: 12
3566
+ },
3567
+ {
3568
+ assetId: "20090149",
3569
+ symbol: "TOD",
3570
+ decimals: 10
3571
+ },
3572
+ {
3573
+ assetId: "22222045",
3574
+ symbol: "O",
3575
+ decimals: 12
3576
+ },
3107
3577
  {
3108
3578
  assetId: "2000",
3109
3579
  symbol: "DAO",
@@ -3114,6 +3584,11 @@ var AssetHubPolkadot$3 = {
3114
3584
  symbol: "DOT",
3115
3585
  decimals: 20
3116
3586
  },
3587
+ {
3588
+ assetId: "22222056",
3589
+ symbol: "KEK",
3590
+ decimals: 12
3591
+ },
3117
3592
  {
3118
3593
  assetId: "6969",
3119
3594
  symbol: "LEEMO",
@@ -3129,6 +3604,11 @@ var AssetHubPolkadot$3 = {
3129
3604
  symbol: "KAS",
3130
3605
  decimals: 12
3131
3606
  },
3607
+ {
3608
+ assetId: "22222054",
3609
+ symbol: "DON",
3610
+ decimals: 12
3611
+ },
3132
3612
  {
3133
3613
  assetId: "1337",
3134
3614
  symbol: "USDC",
@@ -3149,11 +3629,21 @@ var AssetHubPolkadot$3 = {
3149
3629
  symbol: "BOOTY",
3150
3630
  decimals: 10
3151
3631
  },
3632
+ {
3633
+ assetId: "112233",
3634
+ symbol: "MTA",
3635
+ decimals: 10
3636
+ },
3152
3637
  {
3153
3638
  assetId: "17",
3154
3639
  symbol: "WIFD",
3155
3640
  decimals: 10
3156
3641
  },
3642
+ {
3643
+ assetId: "63",
3644
+ symbol: "JBM",
3645
+ decimals: 12
3646
+ },
3157
3647
  {
3158
3648
  assetId: "1180",
3159
3649
  symbol: "KRAK",
@@ -3179,6 +3669,16 @@ var AssetHubPolkadot$3 = {
3179
3669
  symbol: "DAL",
3180
3670
  decimals: 18
3181
3671
  },
3672
+ {
3673
+ assetId: "22222032",
3674
+ symbol: "FKDC",
3675
+ decimals: 12
3676
+ },
3677
+ {
3678
+ assetId: "22222015",
3679
+ symbol: "B",
3680
+ decimals: 12
3681
+ },
3182
3682
  {
3183
3683
  assetId: "23",
3184
3684
  symbol: "PINK",
@@ -3204,6 +3704,11 @@ var AssetHubPolkadot$3 = {
3204
3704
  symbol: "HASH",
3205
3705
  decimals: 18
3206
3706
  },
3707
+ {
3708
+ assetId: "65",
3709
+ symbol: "TeMe11",
3710
+ decimals: 12
3711
+ },
3207
3712
  {
3208
3713
  assetId: "9001",
3209
3714
  symbol: "BOMB",
@@ -3244,11 +3749,41 @@ var AssetHubPolkadot$3 = {
3244
3749
  symbol: "ETH",
3245
3750
  decimals: 10
3246
3751
  },
3752
+ {
3753
+ assetId: "22222061",
3754
+ symbol: "MONAD",
3755
+ decimals: 12
3756
+ },
3757
+ {
3758
+ assetId: "22222006",
3759
+ symbol: "LFG",
3760
+ decimals: 12
3761
+ },
3762
+ {
3763
+ assetId: "64",
3764
+ symbol: "CPcoin",
3765
+ decimals: 12
3766
+ },
3247
3767
  {
3248
3768
  assetId: "4157",
3249
3769
  symbol: "PDOG",
3250
3770
  decimals: 10
3251
3771
  },
3772
+ {
3773
+ assetId: "20090148",
3774
+ symbol: "BOB",
3775
+ decimals: 10
3776
+ },
3777
+ {
3778
+ assetId: "22222040",
3779
+ symbol: "NOFUN",
3780
+ decimals: 12
3781
+ },
3782
+ {
3783
+ assetId: "22222026",
3784
+ symbol: "DDOT",
3785
+ decimals: 12
3786
+ },
3252
3787
  {
3253
3788
  assetId: "660301",
3254
3789
  symbol: "GRL",
@@ -3274,16 +3809,51 @@ var AssetHubPolkadot$3 = {
3274
3809
  symbol: "WOOD",
3275
3810
  decimals: 10
3276
3811
  },
3812
+ {
3813
+ assetId: "22222060",
3814
+ symbol: "TATE",
3815
+ decimals: 12
3816
+ },
3817
+ {
3818
+ assetId: "22222011",
3819
+ symbol: "PM",
3820
+ decimals: 12
3821
+ },
3277
3822
  {
3278
3823
  assetId: "20090127",
3279
3824
  symbol: "PAMPIT",
3280
3825
  decimals: 10
3281
3826
  },
3827
+ {
3828
+ assetId: "22222004",
3829
+ symbol: "TeMeL3",
3830
+ decimals: 12
3831
+ },
3832
+ {
3833
+ assetId: "62",
3834
+ symbol: "CPDOT",
3835
+ decimals: 12
3836
+ },
3837
+ {
3838
+ assetId: "22222012",
3839
+ symbol: "DAMN",
3840
+ decimals: 12
3841
+ },
3282
3842
  {
3283
3843
  assetId: "2230",
3284
3844
  symbol: "GBILL",
3285
3845
  decimals: 8
3286
3846
  },
3847
+ {
3848
+ assetId: "22222063",
3849
+ symbol: "MAXCAT",
3850
+ decimals: 12
3851
+ },
3852
+ {
3853
+ assetId: "22222052",
3854
+ symbol: "MODE",
3855
+ decimals: 12
3856
+ },
3287
3857
  {
3288
3858
  assetId: "92",
3289
3859
  symbol: "TeMe2",
@@ -3307,6 +3877,21 @@ var Altair$3 = {
3307
3877
  }
3308
3878
  ],
3309
3879
  otherAssets: [
3880
+ {
3881
+ assetId: "3",
3882
+ symbol: "KSM",
3883
+ decimals: 12
3884
+ },
3885
+ {
3886
+ assetId: "1",
3887
+ symbol: "USDT",
3888
+ decimals: 6
3889
+ },
3890
+ {
3891
+ assetId: "2",
3892
+ symbol: "aUSD",
3893
+ decimals: 12
3894
+ }
3310
3895
  ]
3311
3896
  };
3312
3897
  var Amplitude$3 = {
@@ -3320,6 +3905,21 @@ var Amplitude$3 = {
3320
3905
  }
3321
3906
  ],
3322
3907
  otherAssets: [
3908
+ {
3909
+ assetId: "2",
3910
+ symbol: "PICA",
3911
+ decimals: 12
3912
+ },
3913
+ {
3914
+ assetId: "1",
3915
+ symbol: "USDT",
3916
+ decimals: 6
3917
+ },
3918
+ {
3919
+ assetId: "0",
3920
+ symbol: "KSM",
3921
+ decimals: 12
3922
+ }
3323
3923
  ]
3324
3924
  };
3325
3925
  var Bajun$3 = {
@@ -3592,6 +4192,11 @@ var Crab$3 = {
3592
4192
  }
3593
4193
  ],
3594
4194
  otherAssets: [
4195
+ {
4196
+ assetId: "1026",
4197
+ symbol: "CKTON",
4198
+ decimals: 18
4199
+ }
3595
4200
  ]
3596
4201
  };
3597
4202
  var CrustShadow$3 = {
@@ -3726,6 +4331,16 @@ var Curio$3 = {
3726
4331
  assetId: "0",
3727
4332
  symbol: "BSX",
3728
4333
  decimals: 12
4334
+ },
4335
+ {
4336
+ assetId: "2",
4337
+ symbol: "VAL",
4338
+ decimals: 18
4339
+ },
4340
+ {
4341
+ assetId: "1",
4342
+ symbol: "XOR",
4343
+ decimals: 18
3729
4344
  }
3730
4345
  ]
3731
4346
  };
@@ -4058,7 +4673,7 @@ var Litmus$3 = {
4058
4673
  nativeAssets: [
4059
4674
  {
4060
4675
  symbol: "LIT",
4061
- decimals: 12
4676
+ decimals: 18
4062
4677
  }
4063
4678
  ],
4064
4679
  otherAssets: [
@@ -5481,11 +6096,6 @@ var AssetHubKusama$3 = {
5481
6096
  symbol: "XEN",
5482
6097
  decimals: 10
5483
6098
  },
5484
- {
5485
- assetId: "4294967291",
5486
- symbol: "PRIME",
5487
- decimals: 7
5488
- },
5489
6099
  {
5490
6100
  assetId: "777777",
5491
6101
  symbol: "DEFI",
@@ -6572,6 +7182,8 @@ var Peaq$3 = {
6572
7182
  ]
6573
7183
  };
6574
7184
  var assets = {
7185
+ Polkadot: Polkadot$1,
7186
+ Kusama: Kusama$1,
6575
7187
  Acala: Acala$3,
6576
7188
  BridgeHubPolkadot: BridgeHubPolkadot$3,
6577
7189
  BridgeHubKusama: BridgeHubKusama$3,
@@ -6667,6 +7279,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6667
7279
  Khala: Khala$3,
6668
7280
  KiltSpiritnet: KiltSpiritnet$3,
6669
7281
  Kintsugi: Kintsugi$3,
7282
+ Kusama: Kusama$1,
6670
7283
  Litentry: Litentry$3,
6671
7284
  Litmus: Litmus$3,
6672
7285
  Manta: Manta$3,
@@ -6683,6 +7296,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6683
7296
  Picasso: Picasso$3,
6684
7297
  Pioneer: Pioneer$3,
6685
7298
  Polkadex: Polkadex$3,
7299
+ Polkadot: Polkadot$1,
6686
7300
  Quartz: Quartz$3,
6687
7301
  Robonomics: Robonomics$3,
6688
7302
  Shiden: Shiden$3,
@@ -6693,30 +7307,316 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
6693
7307
  default: assets
6694
7308
  });
6695
7309
 
6696
- var assetsMap = assetsMapJson;
6697
- var getAssetsObject = function getAssetsObject(node) {
6698
- return assetsMap[node];
6699
- };
6700
- var getAssetId = function getAssetId(node, symbol) {
6701
- var info = getAssetsObject(node).otherAssets.find(function (o) {
6702
- return o.symbol === symbol;
6703
- });
6704
- return info != null ? info.assetId : null;
7310
+ // Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
7311
+ var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
7312
+ function InvalidCurrencyError(message) {
7313
+ var _this;
7314
+ _classCallCheck(this, InvalidCurrencyError);
7315
+ _this = _callSuper(this, InvalidCurrencyError, [message]);
7316
+ _this.name = 'InvalidCurrencyError';
7317
+ return _this;
7318
+ }
7319
+ _inherits(InvalidCurrencyError, _Error);
7320
+ return _createClass(InvalidCurrencyError);
7321
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
7322
+
7323
+ // Used to inform user, that Parachain they wish to use is not supported yet
7324
+ var NodeNotSupportedError = /*#__PURE__*/function (_Error) {
7325
+ function NodeNotSupportedError(message) {
7326
+ var _this;
7327
+ _classCallCheck(this, NodeNotSupportedError);
7328
+ _this = _callSuper(this, NodeNotSupportedError, [message !== null && message !== void 0 ? message : 'These nodes do not support XCM transfers from Relay / to Relay chain.']);
7329
+ _this.name = 'NodeNotSupported';
7330
+ return _this;
7331
+ }
7332
+ _inherits(NodeNotSupportedError, _Error);
7333
+ return _createClass(NodeNotSupportedError);
7334
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
7335
+
7336
+ // Used to inform user, that Parachain they wish to use does not support scenario they wish to use yet
7337
+ var ScenarioNotSupportedError = /*#__PURE__*/function (_Error) {
7338
+ function ScenarioNotSupportedError(node, scenario, message) {
7339
+ var _this;
7340
+ _classCallCheck(this, ScenarioNotSupportedError);
7341
+ _this = _callSuper(this, ScenarioNotSupportedError, [message !== null && message !== void 0 ? message : "Scenario ".concat(scenario, " not supported for node ").concat(node)]);
7342
+ _this.name = 'ScenarioNotSupported';
7343
+ return _this;
7344
+ }
7345
+ _inherits(ScenarioNotSupportedError, _Error);
7346
+ return _createClass(ScenarioNotSupportedError);
7347
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
7348
+
7349
+ var IncompatibleNodesError = /*#__PURE__*/function (_Error) {
7350
+ function IncompatibleNodesError(message) {
7351
+ var _this;
7352
+ _classCallCheck(this, IncompatibleNodesError);
7353
+ _this = _callSuper(this, IncompatibleNodesError, [message !== null && message !== void 0 ? message : 'Transactions between nodes on different relaychains are not yet possible.']);
7354
+ _this.name = 'IncompatibleNodes';
7355
+ return _this;
7356
+ }
7357
+ _inherits(IncompatibleNodesError, _Error);
7358
+ return _createClass(IncompatibleNodesError);
7359
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
7360
+
7361
+ var DuplicateAssetError = /*#__PURE__*/function (_Error) {
7362
+ function DuplicateAssetError(symbol) {
7363
+ var _this;
7364
+ _classCallCheck(this, DuplicateAssetError);
7365
+ _this = _callSuper(this, DuplicateAssetError, ["Multiple assets found with the same symbol: ".concat(symbol, ". Please specify asset ID directly by .currency({id: <ASSET_ID>})")]);
7366
+ _this.name = 'DuplicateAsset';
7367
+ return _this;
7368
+ }
7369
+ _inherits(DuplicateAssetError, _Error);
7370
+ return _createClass(DuplicateAssetError);
7371
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
7372
+
7373
+ var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
7374
+ var api = _ref.api,
7375
+ destination = _ref.destination,
7376
+ address = _ref.address,
7377
+ amount = _ref.amount,
7378
+ paraIdTo = _ref.paraIdTo;
7379
+ var includeFee = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7380
+ var paraId = destination !== undefined && _typeof(destination) !== 'object' ? paraIdTo !== null && paraIdTo !== void 0 ? paraIdTo : getParaId(destination) : undefined;
7381
+ var parameters = [createPolkadotXcmHeader('RelayToPara', version, destination, paraId), generateAddressPayload(api, 'RelayToPara', null, address, version, paraId), createCurrencySpec(amount, version, Parents.ZERO), 0];
7382
+ if (includeFee) {
7383
+ parameters.push('Unlimited');
7384
+ }
7385
+ return parameters;
6705
7386
  };
6706
- var getRelayChainSymbol = function getRelayChainSymbol(node) {
6707
- return getAssetsObject(node).relayChainAssetSymbol;
7387
+ var isTMulti = function isTMulti(value) {
7388
+ return value && _typeof(value) === 'object' || Array.isArray(value);
6708
7389
  };
6709
- var getNativeAssets = function getNativeAssets(node) {
6710
- return getAssetsObject(node).nativeAssets;
7390
+ var isTMultiLocation = function isTMultiLocation(value) {
7391
+ return value && typeof value.parents !== 'undefined' && typeof value.interior !== 'undefined';
7392
+ };
7393
+ var isTCurrencySpecifier = function isTCurrencySpecifier(value) {
7394
+ if (_typeof(value) !== 'object' || value === null) {
7395
+ return false;
7396
+ }
7397
+ return 'symbol' in value && typeof value.symbol === 'string' || 'id' in value && (typeof value.id === 'string' || typeof value.id === 'number' || typeof value.id === 'bigint');
7398
+ };
7399
+ var createBridgeCurrencySpec = function createBridgeCurrencySpec(amount, ecosystem) {
7400
+ return _defineProperty({}, Version.V4, [{
7401
+ id: {
7402
+ parents: Parents.TWO,
7403
+ interior: {
7404
+ X1: [{
7405
+ GlobalConsensus: ecosystem
7406
+ }]
7407
+ }
7408
+ },
7409
+ fun: {
7410
+ Fungible: amount
7411
+ }
7412
+ }]);
7413
+ };
7414
+ var createCurrencySpec = function createCurrencySpec(amount, version, parents, overriddenCurrency) {
7415
+ var interior = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'Here';
7416
+ if (!overriddenCurrency) {
7417
+ return _defineProperty({}, version, [{
7418
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7419
+ id: version === Version.V4 ? {
7420
+ parents: parents,
7421
+ interior: interior
7422
+ } : {
7423
+ Concrete: {
7424
+ parents: parents,
7425
+ interior: interior
7426
+ }
7427
+ },
7428
+ fun: {
7429
+ Fungible: amount
7430
+ }
7431
+ }]);
7432
+ }
7433
+ return isTMultiLocation(overriddenCurrency) ? _defineProperty({}, version, [{
7434
+ id: version === Version.V4 ? overriddenCurrency : {
7435
+ Concrete: overriddenCurrency
7436
+ },
7437
+ fun: {
7438
+ Fungible: amount
7439
+ }
7440
+ }]) : // It must be TMultiAsset if not TMultiLocation
7441
+ _defineProperty({}, version, overriddenCurrency);
7442
+ };
7443
+ var createPolkadotXcmHeader = function createPolkadotXcmHeader(scenario, version, destination, nodeId, junction, parents) {
7444
+ var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? Parents.ZERO : Parents.ONE;
7445
+ var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
7446
+ Parachain: nodeId
7447
+ });
7448
+ var isMultiLocationDestination = _typeof(destination) === 'object';
7449
+ return _defineProperty({}, version, isMultiLocationDestination ? destination : {
7450
+ parents: parentsResolved,
7451
+ interior: interior
7452
+ });
7453
+ };
7454
+ var createBridgePolkadotXcmDest = function createBridgePolkadotXcmDest(version, ecosystem, destination, nodeId) {
7455
+ var multiLocation = {
7456
+ parents: Parents.TWO,
7457
+ interior: {
7458
+ X2: [{
7459
+ GlobalConsensus: ecosystem
7460
+ }, {
7461
+ Parachain: nodeId
7462
+ }]
7463
+ }
7464
+ };
7465
+ var isMultiLocationDestination = _typeof(destination) === 'object';
7466
+ return _defineProperty({}, version, isMultiLocationDestination ? destination : multiLocation);
7467
+ };
7468
+ var calculateTransactionFee$1 = function calculateTransactionFee(tx, address) {
7469
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7470
+ var _yield$tx$paymentInfo, partialFee;
7471
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
7472
+ while (1) switch (_context.prev = _context.next) {
7473
+ case 0:
7474
+ _context.next = 2;
7475
+ return tx.paymentInfo(address);
7476
+ case 2:
7477
+ _yield$tx$paymentInfo = _context.sent;
7478
+ partialFee = _yield$tx$paymentInfo.partialFee;
7479
+ return _context.abrupt("return", partialFee.toBn());
7480
+ case 5:
7481
+ case "end":
7482
+ return _context.stop();
7483
+ }
7484
+ }, _callee);
7485
+ }));
7486
+ };
7487
+ // TODO: Refactor this function to eliminate the any type
7488
+ var findParachainJunction = function findParachainJunction(multilocation) {
7489
+ var interior = multilocation.interior;
7490
+ for (var key in interior) {
7491
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7492
+ var junctions = interior[key];
7493
+ if (Array.isArray(junctions)) {
7494
+ var _iterator = _createForOfIteratorHelper(junctions),
7495
+ _step;
7496
+ try {
7497
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
7498
+ var junction = _step.value;
7499
+ if ('Parachain' in junction) {
7500
+ return Number(junction.Parachain);
7501
+ }
7502
+ }
7503
+ } catch (err) {
7504
+ _iterator.e(err);
7505
+ } finally {
7506
+ _iterator.f();
7507
+ }
7508
+ } else if (junctions !== undefined && 'Parachain' in junctions) {
7509
+ return Number(junctions.Parachain);
7510
+ }
7511
+ }
7512
+ return null;
7513
+ };
7514
+ var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(multiLocation) {
7515
+ var parachainId = findParachainJunction(multiLocation);
7516
+ if (parachainId === null) {
7517
+ throw new Error('Parachain ID not found in destination multi location.');
7518
+ }
7519
+ var node = getTNode(parachainId);
7520
+ if (node === null) {
7521
+ throw new Error('Node with specified paraId not found in destination multi location.');
7522
+ }
7523
+ return node;
7524
+ };
7525
+
7526
+ var findAssetBySymbol = function findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, symbol, isRelayDestination, isSymbol) {
7527
+ if (destination === 'Ethereum') {
7528
+ return combinedAssets.find(function (_ref) {
7529
+ var assetSymbol = _ref.symbol;
7530
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7531
+ });
7532
+ }
7533
+ var otherAssetsMatches = otherAssets.filter(function (_ref2) {
7534
+ var assetSymbol = _ref2.symbol;
7535
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7536
+ });
7537
+ var nativeAssetsMatches = nativeAssets.filter(function (_ref3) {
7538
+ var assetSymbol = _ref3.symbol;
7539
+ return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7540
+ });
7541
+ if (node === 'Astar' || node === 'Shiden') {
7542
+ return nativeAssetsMatches[0] || otherAssetsMatches[0] || null;
7543
+ }
7544
+ if (otherAssetsMatches.length > 1 && !isRelayDestination && isSymbol === undefined) {
7545
+ throw new DuplicateAssetError(symbol);
7546
+ }
7547
+ return otherAssetsMatches[0] || nativeAssetsMatches[0] || null;
7548
+ };
7549
+ var findAssetById = function findAssetById(assets, assetId) {
7550
+ return assets.find(function (_ref4) {
7551
+ var currentAssetId = _ref4.assetId;
7552
+ return currentAssetId === assetId;
7553
+ });
7554
+ };
7555
+ var getAssetBySymbolOrId = function getAssetBySymbolOrId(node, currency) {
7556
+ var isRelayDestination = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7557
+ var isSymbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
7558
+ var destination = arguments.length > 4 ? arguments[4] : undefined;
7559
+ if (isTMulti(currency)) {
7560
+ return null;
7561
+ }
7562
+ var currencyString = currency.toString();
7563
+ var _getAssetsObject = getAssetsObject(node),
7564
+ otherAssets = _getAssetsObject.otherAssets,
7565
+ nativeAssets = _getAssetsObject.nativeAssets,
7566
+ relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol;
7567
+ var combinedAssets = destination === 'Ethereum' ? _toConsumableArray(getOtherAssets('Ethereum')) : [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets));
7568
+ var asset;
7569
+ if (isSymbol === true) {
7570
+ asset = findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, currencyString, isRelayDestination, isSymbol);
7571
+ } else if (isSymbol === false) {
7572
+ asset = findAssetById(combinedAssets, currencyString);
7573
+ } else {
7574
+ asset = findAssetBySymbol(node, destination, otherAssets, nativeAssets, combinedAssets, currencyString, isRelayDestination, isSymbol) || findAssetById(combinedAssets, currencyString);
7575
+ }
7576
+ if (asset) {
7577
+ return asset;
7578
+ }
7579
+ if (relayChainAssetSymbol.toLowerCase() === currencyString.toLowerCase() && isSymbol !== false) {
7580
+ var relayChainAsset = {
7581
+ symbol: relayChainAssetSymbol,
7582
+ decimals: getAssetDecimals(node, relayChainAssetSymbol)
7583
+ };
7584
+ return relayChainAsset;
7585
+ }
7586
+ return null;
7587
+ };
7588
+
7589
+ var assetsMap = assetsMapJson;
7590
+ var getAssetsObject = function getAssetsObject(node) {
7591
+ return assetsMap[node];
7592
+ };
7593
+ var getAssetId = function getAssetId(node, symbol) {
7594
+ var info = getAssetsObject(node).otherAssets.find(function (o) {
7595
+ return o.symbol === symbol;
7596
+ });
7597
+ return info != null ? info.assetId : null;
7598
+ };
7599
+ var getRelayChainSymbol = function getRelayChainSymbol(node) {
7600
+ return getAssetsObject(node).relayChainAssetSymbol;
7601
+ };
7602
+ var getNativeAssets = function getNativeAssets(node) {
7603
+ return getAssetsObject(node).nativeAssets;
6711
7604
  };
6712
7605
  var getOtherAssets = function getOtherAssets(node) {
6713
7606
  return getAssetsObject(node).otherAssets;
6714
7607
  };
6715
- var getAllAssetsSymbols = function getAllAssetsSymbols(node) {
7608
+ var getAssets = function getAssets(node) {
6716
7609
  var _getAssetsObject = getAssetsObject(node),
6717
- relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol,
6718
7610
  nativeAssets = _getAssetsObject.nativeAssets,
6719
7611
  otherAssets = _getAssetsObject.otherAssets;
7612
+ var relayChainAsset = getAssetBySymbolOrId(determineRelayChain(node), getRelayChainSymbol(node));
7613
+ return [].concat(_toConsumableArray(relayChainAsset ? [relayChainAsset] : []), _toConsumableArray(nativeAssets), _toConsumableArray(otherAssets));
7614
+ };
7615
+ var getAllAssetsSymbols = function getAllAssetsSymbols(node) {
7616
+ var _getAssetsObject2 = getAssetsObject(node),
7617
+ relayChainAssetSymbol = _getAssetsObject2.relayChainAssetSymbol,
7618
+ nativeAssets = _getAssetsObject2.nativeAssets,
7619
+ otherAssets = _getAssetsObject2.otherAssets;
6720
7620
  var nativeAssetsSymbols = nativeAssets.map(function (_ref) {
6721
7621
  var symbol = _ref.symbol;
6722
7622
  return symbol;
@@ -6742,10 +7642,27 @@ var hasSupportForAsset = function hasSupportForAsset(node, symbol) {
6742
7642
  return s.toLowerCase();
6743
7643
  }).includes(symbol.toLowerCase());
6744
7644
  };
7645
+ var getSupportedAssets = function getSupportedAssets(origin, destination) {
7646
+ var originAssets = getAssets(origin);
7647
+ var destinationAssets = getAssets(destination);
7648
+ if (destination === 'Ethereum' || origin === 'Ethereum') {
7649
+ return getOtherAssets('Ethereum');
7650
+ }
7651
+ if (origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot') {
7652
+ var polkadotAsset = getAssetBySymbolOrId('Polkadot', 'DOT');
7653
+ var kusamaAsset = getAssetBySymbolOrId('Kusama', 'KSM');
7654
+ return [].concat(_toConsumableArray(polkadotAsset ? [polkadotAsset] : []), _toConsumableArray(kusamaAsset ? [kusamaAsset] : []));
7655
+ }
7656
+ return _toConsumableArray(originAssets.filter(function (asset) {
7657
+ return destinationAssets.some(function (a) {
7658
+ return a.symbol === asset.symbol;
7659
+ });
7660
+ }));
7661
+ };
6745
7662
  var getAssetDecimals = function getAssetDecimals(node, symbol) {
6746
- var _getAssetsObject2 = getAssetsObject(node),
6747
- otherAssets = _getAssetsObject2.otherAssets,
6748
- nativeAssets = _getAssetsObject2.nativeAssets;
7663
+ var _getAssetsObject3 = getAssetsObject(node),
7664
+ otherAssets = _getAssetsObject3.otherAssets,
7665
+ nativeAssets = _getAssetsObject3.nativeAssets;
6749
7666
  var asset = [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets)).find(function (o) {
6750
7667
  return o.symbol === symbol;
6751
7668
  });
@@ -7305,276 +8222,6 @@ var getSupportedPallets = function getSupportedPallets(node) {
7305
8222
  return palletsMap$1[node].supportedPallets;
7306
8223
  };
7307
8224
 
7308
- // Used to inform user, that currency they wish to use is not registered on either origin or destination Parachain
7309
- var InvalidCurrencyError = /*#__PURE__*/function (_Error) {
7310
- function InvalidCurrencyError(message) {
7311
- var _this;
7312
- _classCallCheck(this, InvalidCurrencyError);
7313
- _this = _callSuper(this, InvalidCurrencyError, [message]);
7314
- _this.name = 'InvalidCurrencyError';
7315
- return _this;
7316
- }
7317
- _inherits(InvalidCurrencyError, _Error);
7318
- return _createClass(InvalidCurrencyError);
7319
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7320
-
7321
- // Used to inform user, that Parachain they wish to use is not supported yet
7322
- var NodeNotSupportedError = /*#__PURE__*/function (_Error) {
7323
- function NodeNotSupportedError(message) {
7324
- var _this;
7325
- _classCallCheck(this, NodeNotSupportedError);
7326
- _this = _callSuper(this, NodeNotSupportedError, [message !== null && message !== void 0 ? message : 'These nodes do not support XCM transfers from Relay / to Relay chain.']);
7327
- _this.name = 'NodeNotSupported';
7328
- return _this;
7329
- }
7330
- _inherits(NodeNotSupportedError, _Error);
7331
- return _createClass(NodeNotSupportedError);
7332
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7333
-
7334
- // Used to inform user, that Parachain they wish to use does not support scenario they wish to use yet
7335
- var ScenarioNotSupportedError = /*#__PURE__*/function (_Error) {
7336
- function ScenarioNotSupportedError(node, scenario, message) {
7337
- var _this;
7338
- _classCallCheck(this, ScenarioNotSupportedError);
7339
- _this = _callSuper(this, ScenarioNotSupportedError, [message !== null && message !== void 0 ? message : "Scenario ".concat(scenario, " not supported for node ").concat(node)]);
7340
- _this.name = 'ScenarioNotSupported';
7341
- return _this;
7342
- }
7343
- _inherits(ScenarioNotSupportedError, _Error);
7344
- return _createClass(ScenarioNotSupportedError);
7345
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7346
-
7347
- var IncompatibleNodesError = /*#__PURE__*/function (_Error) {
7348
- function IncompatibleNodesError() {
7349
- var _this;
7350
- _classCallCheck(this, IncompatibleNodesError);
7351
- _this = _callSuper(this, IncompatibleNodesError, ['Transactions between nodes on different relaychains are not yet possible.']);
7352
- _this.name = 'IncompatibleNodes';
7353
- return _this;
7354
- }
7355
- _inherits(IncompatibleNodesError, _Error);
7356
- return _createClass(IncompatibleNodesError);
7357
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7358
-
7359
- var DuplicateAssetError = /*#__PURE__*/function (_Error) {
7360
- function DuplicateAssetError(symbol) {
7361
- var _this;
7362
- _classCallCheck(this, DuplicateAssetError);
7363
- _this = _callSuper(this, DuplicateAssetError, ["Multiple assets found with the same symbol: ".concat(symbol, ". Please specify asset ID directly by .currency({id: <ASSET_ID>})")]);
7364
- _this.name = 'DuplicateAsset';
7365
- return _this;
7366
- }
7367
- _inherits(DuplicateAssetError, _Error);
7368
- return _createClass(DuplicateAssetError);
7369
- }( /*#__PURE__*/_wrapNativeSuper(Error));
7370
-
7371
- var constructRelayToParaParameters = function constructRelayToParaParameters(_ref, version) {
7372
- var api = _ref.api,
7373
- destination = _ref.destination,
7374
- address = _ref.address,
7375
- amount = _ref.amount,
7376
- paraIdTo = _ref.paraIdTo;
7377
- var includeFee = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7378
- var paraId = destination !== undefined && _typeof(destination) !== 'object' ? paraIdTo !== null && paraIdTo !== void 0 ? paraIdTo : getParaId(destination) : undefined;
7379
- var parameters = [createPolkadotXcmHeader('RelayToPara', version, destination, paraId), generateAddressPayload(api, 'RelayToPara', null, address, version, paraId), createCurrencySpec(amount, version, Parents.ZERO), 0];
7380
- if (includeFee) {
7381
- parameters.push('Unlimited');
7382
- }
7383
- return parameters;
7384
- };
7385
- var isTMulti = function isTMulti(value) {
7386
- return value && _typeof(value) === 'object' || Array.isArray(value);
7387
- };
7388
- var isTMultiLocation = function isTMultiLocation(value) {
7389
- return value && typeof value.parents !== 'undefined' && typeof value.interior !== 'undefined';
7390
- };
7391
- var isTCurrencySpecifier = function isTCurrencySpecifier(value) {
7392
- if (_typeof(value) !== 'object' || value === null) {
7393
- return false;
7394
- }
7395
- return 'symbol' in value && typeof value.symbol === 'string' || 'id' in value && (typeof value.id === 'string' || typeof value.id === 'number' || typeof value.id === 'bigint');
7396
- };
7397
- var createBridgeCurrencySpec = function createBridgeCurrencySpec(amount, ecosystem) {
7398
- return _defineProperty({}, Version.V4, [{
7399
- id: {
7400
- parents: Parents.TWO,
7401
- interior: {
7402
- X1: [{
7403
- GlobalConsensus: ecosystem
7404
- }]
7405
- }
7406
- },
7407
- fun: {
7408
- Fungible: amount
7409
- }
7410
- }]);
7411
- };
7412
- var createCurrencySpec = function createCurrencySpec(amount, version, parents, overriddenCurrency) {
7413
- var interior = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'Here';
7414
- if (!overriddenCurrency) {
7415
- return _defineProperty({}, version, [{
7416
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7417
- id: version === Version.V4 ? {
7418
- parents: parents,
7419
- interior: interior
7420
- } : {
7421
- Concrete: {
7422
- parents: parents,
7423
- interior: interior
7424
- }
7425
- },
7426
- fun: {
7427
- Fungible: amount
7428
- }
7429
- }]);
7430
- }
7431
- return isTMultiLocation(overriddenCurrency) ? _defineProperty({}, version, [{
7432
- id: version === Version.V4 ? overriddenCurrency : {
7433
- Concrete: overriddenCurrency
7434
- },
7435
- fun: {
7436
- Fungible: amount
7437
- }
7438
- }]) : // It must be TMultiAsset if not TMultiLocation
7439
- _defineProperty({}, version, overriddenCurrency);
7440
- };
7441
- var createPolkadotXcmHeader = function createPolkadotXcmHeader(scenario, version, destination, nodeId, junction, parents) {
7442
- var parentsResolved = parents !== null && parents !== void 0 ? parents : scenario === 'RelayToPara' ? Parents.ZERO : Parents.ONE;
7443
- var interior = scenario === 'ParaToRelay' ? 'Here' : createX1Payload(version, junction !== null && junction !== void 0 ? junction : {
7444
- Parachain: nodeId
7445
- });
7446
- var isMultiLocationDestination = _typeof(destination) === 'object';
7447
- return _defineProperty({}, version, isMultiLocationDestination ? destination : {
7448
- parents: parentsResolved,
7449
- interior: interior
7450
- });
7451
- };
7452
- var createBridgePolkadotXcmDest = function createBridgePolkadotXcmDest(version, ecosystem, destination, nodeId) {
7453
- var multiLocation = {
7454
- parents: Parents.TWO,
7455
- interior: {
7456
- X2: [{
7457
- GlobalConsensus: ecosystem
7458
- }, {
7459
- Parachain: nodeId
7460
- }]
7461
- }
7462
- };
7463
- var isMultiLocationDestination = _typeof(destination) === 'object';
7464
- return _defineProperty({}, version, isMultiLocationDestination ? destination : multiLocation);
7465
- };
7466
- var calculateTransactionFee$1 = function calculateTransactionFee(tx, address) {
7467
- return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7468
- var _yield$tx$paymentInfo, partialFee;
7469
- return _regeneratorRuntime().wrap(function _callee$(_context) {
7470
- while (1) switch (_context.prev = _context.next) {
7471
- case 0:
7472
- _context.next = 2;
7473
- return tx.paymentInfo(address);
7474
- case 2:
7475
- _yield$tx$paymentInfo = _context.sent;
7476
- partialFee = _yield$tx$paymentInfo.partialFee;
7477
- return _context.abrupt("return", partialFee.toBn());
7478
- case 5:
7479
- case "end":
7480
- return _context.stop();
7481
- }
7482
- }, _callee);
7483
- }));
7484
- };
7485
- // TODO: Refactor this function to eliminate the any type
7486
- var findParachainJunction = function findParachainJunction(multilocation) {
7487
- var interior = multilocation.interior;
7488
- for (var key in interior) {
7489
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7490
- var junctions = interior[key];
7491
- if (Array.isArray(junctions)) {
7492
- var _iterator = _createForOfIteratorHelper(junctions),
7493
- _step;
7494
- try {
7495
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
7496
- var junction = _step.value;
7497
- if ('Parachain' in junction) {
7498
- return Number(junction.Parachain);
7499
- }
7500
- }
7501
- } catch (err) {
7502
- _iterator.e(err);
7503
- } finally {
7504
- _iterator.f();
7505
- }
7506
- } else if (junctions !== undefined && 'Parachain' in junctions) {
7507
- return Number(junctions.Parachain);
7508
- }
7509
- }
7510
- return null;
7511
- };
7512
- var resolveTNodeFromMultiLocation = function resolveTNodeFromMultiLocation(multiLocation) {
7513
- var parachainId = findParachainJunction(multiLocation);
7514
- if (parachainId === null) {
7515
- throw new Error('Parachain ID not found in destination multi location.');
7516
- }
7517
- var node = getTNode(parachainId);
7518
- if (node === null) {
7519
- throw new Error('Node with specified paraId not found in destination multi location.');
7520
- }
7521
- return node;
7522
- };
7523
-
7524
- var findAssetBySymbol = function findAssetBySymbol(otherAssets, nativeAssets, symbol, isRelayDestination) {
7525
- var otherAssetsMatches = otherAssets.filter(function (_ref) {
7526
- var assetSymbol = _ref.symbol;
7527
- return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7528
- });
7529
- var nativeAssetsMatches = nativeAssets.filter(function (_ref2) {
7530
- var assetSymbol = _ref2.symbol;
7531
- return (assetSymbol === null || assetSymbol === void 0 ? void 0 : assetSymbol.toLowerCase()) === symbol.toLowerCase();
7532
- });
7533
- if (otherAssetsMatches.length > 1 && !isRelayDestination) {
7534
- throw new DuplicateAssetError(symbol);
7535
- }
7536
- return otherAssetsMatches[0] || nativeAssetsMatches[0] || null;
7537
- };
7538
- var findAssetById = function findAssetById(assets, assetId) {
7539
- return assets.find(function (_ref3) {
7540
- var currentAssetId = _ref3.assetId;
7541
- return currentAssetId === assetId;
7542
- });
7543
- };
7544
- var getAssetBySymbolOrId = function getAssetBySymbolOrId(node, currency) {
7545
- var isRelayDestination = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7546
- var isSymbol = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
7547
- if (isTMulti(currency)) {
7548
- return null;
7549
- }
7550
- var currencyString = currency.toString();
7551
- var _getAssetsObject = getAssetsObject(node),
7552
- otherAssets = _getAssetsObject.otherAssets,
7553
- nativeAssets = _getAssetsObject.nativeAssets,
7554
- relayChainAssetSymbol = _getAssetsObject.relayChainAssetSymbol;
7555
- var combinedAssets = [].concat(_toConsumableArray(otherAssets), _toConsumableArray(nativeAssets));
7556
- var asset;
7557
- if (isSymbol === true) {
7558
- asset = findAssetBySymbol(otherAssets, nativeAssets, currencyString, isRelayDestination);
7559
- } else if (isSymbol === false) {
7560
- asset = findAssetById(combinedAssets, currencyString);
7561
- } else {
7562
- asset = findAssetBySymbol(otherAssets, nativeAssets, currencyString, isRelayDestination) || findAssetById(combinedAssets, currencyString);
7563
- }
7564
- if (asset) {
7565
- return {
7566
- symbol: asset.symbol,
7567
- assetId: asset.assetId
7568
- };
7569
- }
7570
- if (relayChainAssetSymbol === currencyString && isSymbol !== false) {
7571
- return {
7572
- symbol: relayChainAssetSymbol
7573
- };
7574
- }
7575
- return null;
7576
- };
7577
-
7578
8225
  var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbolOrId, symbol, id, api) {
7579
8226
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7580
8227
  var response, entry;
@@ -7589,10 +8236,9 @@ var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbol
7589
8236
  var _ref2 = _slicedToArray(_ref, 2),
7590
8237
  _ref2$0$args = _slicedToArray(_ref2[0].args, 2);
7591
8238
  _ref2$0$args[0];
7592
- var asset = _ref2$0$args[1],
7593
- value1 = _ref2[1];
8239
+ var asset = _ref2$0$args[1];
8240
+ _ref2[1];
7594
8241
  var _a, _b, _c;
7595
- console.log(asset.toHuman(), value1.toHuman());
7596
8242
  return asset.toString() === symbolOrId || asset.toString() === id || asset.toString() === symbol || Object.values((_a = asset.toHuman()) !== null && _a !== void 0 ? _a : {}).toString() === symbolOrId || Object.values((_b = asset.toHuman()) !== null && _b !== void 0 ? _b : {}).toString() === id || Object.values((_c = asset.toHuman()) !== null && _c !== void 0 ? _c : {}).toString() === symbol;
7597
8243
  });
7598
8244
  return _context.abrupt("return", entry ? BigInt(entry[1].free.toString()) : null);
@@ -7600,33 +8246,105 @@ var getBalanceForeignXTokens = function getBalanceForeignXTokens(address, symbol
7600
8246
  case "end":
7601
8247
  return _context.stop();
7602
8248
  }
7603
- }, _callee);
7604
- }));
8249
+ }, _callee);
8250
+ }));
8251
+ };
8252
+ var getAssetHubMultiLocation = function getAssetHubMultiLocation(symbol) {
8253
+ if (symbol === 'MYTH') {
8254
+ return {
8255
+ parents: 1,
8256
+ interior: {
8257
+ X1: {
8258
+ Parachain: '3369'
8259
+ }
8260
+ }
8261
+ };
8262
+ } else if (symbol === 'KSM') {
8263
+ return {
8264
+ parents: 2,
8265
+ interior: {
8266
+ X1: {
8267
+ GlobalConsensus: 'Kusama'
8268
+ }
8269
+ }
8270
+ };
8271
+ }
8272
+ var ethAssets = getOtherAssets('Ethereum');
8273
+ var ethAsset = ethAssets.find(function (asset) {
8274
+ return asset.symbol === symbol;
8275
+ });
8276
+ if (ethAsset) {
8277
+ return {
8278
+ parents: 2,
8279
+ interior: {
8280
+ X2: [{
8281
+ GlobalConsensus: {
8282
+ Ethereum: {
8283
+ chainId: 1
8284
+ }
8285
+ }
8286
+ }, {
8287
+ AccountKey20: {
8288
+ network: null,
8289
+ key: ethAsset.assetId
8290
+ }
8291
+ }]
8292
+ }
8293
+ };
8294
+ }
8295
+ return null;
7605
8296
  };
7606
- var getBalanceForeignPolkadotXcm = function getBalanceForeignPolkadotXcm(address, id, api) {
8297
+ var getBalanceForeignPolkadotXcm = function getBalanceForeignPolkadotXcm(address, id, api, node, symbol) {
7607
8298
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
7608
- var parsedId, response, obj;
8299
+ var _response, _obj, multiLocation, _response2, _obj2, parsedId, response, obj;
7609
8300
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
7610
8301
  while (1) switch (_context2.prev = _context2.next) {
7611
8302
  case 0:
7612
8303
  _context2.prev = 0;
7613
- parsedId = new u32(api.registry, id);
8304
+ if (!(node === 'Mythos')) {
8305
+ _context2.next = 7;
8306
+ break;
8307
+ }
7614
8308
  _context2.next = 4;
7615
- return api.query.assets.account(parsedId, address);
8309
+ return api.query.balances.account(address);
7616
8310
  case 4:
8311
+ _response = _context2.sent;
8312
+ _obj = _response.toJSON();
8313
+ return _context2.abrupt("return", BigInt(_obj.free));
8314
+ case 7:
8315
+ if (!(node === 'AssetHubPolkadot')) {
8316
+ _context2.next = 15;
8317
+ break;
8318
+ }
8319
+ multiLocation = getAssetHubMultiLocation(symbol !== null && symbol !== void 0 ? symbol : id);
8320
+ if (!multiLocation) {
8321
+ _context2.next = 15;
8322
+ break;
8323
+ }
8324
+ _context2.next = 12;
8325
+ return api.query.foreignAssets.account(multiLocation, address);
8326
+ case 12:
8327
+ _response2 = _context2.sent;
8328
+ _obj2 = _response2.toJSON();
8329
+ return _context2.abrupt("return", BigInt(_obj2 === null ? 0 : _obj2.balance));
8330
+ case 15:
8331
+ parsedId = new u32(api.registry, id);
8332
+ _context2.next = 18;
8333
+ return api.query.assets.account(parsedId, address);
8334
+ case 18:
7617
8335
  response = _context2.sent;
7618
8336
  obj = response.toJSON();
7619
8337
  return _context2.abrupt("return", BigInt(obj.balance));
7620
- case 9:
7621
- _context2.prev = 9;
8338
+ case 23:
8339
+ _context2.prev = 23;
7622
8340
  _context2.t0 = _context2["catch"](0);
7623
8341
  console.log('Error while fetching balance', _context2.t0);
7624
8342
  return _context2.abrupt("return", null);
7625
- case 13:
8343
+ case 27:
7626
8344
  case "end":
7627
8345
  return _context2.stop();
7628
8346
  }
7629
- }, _callee2, null, [[0, 9]]);
8347
+ }, _callee2, null, [[0, 23]]);
7630
8348
  }));
7631
8349
  };
7632
8350
  var getBalanceForeign = function getBalanceForeign(address, node, symbolOrId, api) {
@@ -7664,7 +8382,7 @@ var getBalanceForeign = function getBalanceForeign(address, node, symbolOrId, ap
7664
8382
  break;
7665
8383
  }
7666
8384
  _context3.next = 18;
7667
- return getBalanceForeignPolkadotXcm(address, (_a = asset === null || asset === void 0 ? void 0 : asset.assetId) !== null && _a !== void 0 ? _a : symbolOrId, apiWithFallback);
8385
+ return getBalanceForeignPolkadotXcm(address, (_a = asset === null || asset === void 0 ? void 0 : asset.assetId) !== null && _a !== void 0 ? _a : symbolOrId, apiWithFallback, node, asset === null || asset === void 0 ? void 0 : asset.symbol);
7668
8386
  case 18:
7669
8387
  return _context3.abrupt("return", _context3.sent);
7670
8388
  case 19:
@@ -7686,7 +8404,7 @@ var Centrifuge$1 = "1000000000000";
7686
8404
  var ComposableFinance$1 = "100000000000";
7687
8405
  var Darwinia$1 = "0";
7688
8406
  var Hydration$1 = "1000000000000";
7689
- var Litentry$1 = "100000000000";
8407
+ var Litentry$1 = "100000000000000000";
7690
8408
  var Moonbeam$1 = "0";
7691
8409
  var Parallel$1 = "100000000000";
7692
8410
  var AssetHubKusama$1 = "3333333";
@@ -7705,7 +8423,7 @@ var Imbue$1 = "1000000";
7705
8423
  var Integritee$1 = "1000000000";
7706
8424
  var InvArchTinker$1 = "1000000000";
7707
8425
  var Karura$1 = "100000000000";
7708
- var Litmus$1 = "100000000000";
8426
+ var Litmus$1 = "100000000000000000";
7709
8427
  var Moonriver$1 = "0";
7710
8428
  var ParallelHeiko$1 = "10000000000";
7711
8429
  var Picasso$1 = "100000000000";
@@ -8064,8 +8782,9 @@ var OpenChannelBuilder = /*#__PURE__*/function () {
8064
8782
  }();
8065
8783
 
8066
8784
  var RelayToParaBuilder = /*#__PURE__*/function () {
8067
- function RelayToParaBuilder(api, to, paraIdTo) {
8785
+ function RelayToParaBuilder(api, to, batchManager, paraIdTo) {
8068
8786
  _classCallCheck(this, RelayToParaBuilder);
8787
+ this.batchManager = batchManager;
8069
8788
  this.api = api;
8070
8789
  this.to = to;
8071
8790
  this.paraIdTo = paraIdTo;
@@ -8107,6 +8826,15 @@ var RelayToParaBuilder = /*#__PURE__*/function () {
8107
8826
  version: this._version
8108
8827
  };
8109
8828
  }
8829
+ }, {
8830
+ key: "addToBatch",
8831
+ value: function addToBatch() {
8832
+ this.batchManager.addTransaction({
8833
+ func: transferRelayToPara,
8834
+ options: this.buildOptions()
8835
+ });
8836
+ return new GeneralBuilder(this.batchManager, this.api, undefined, this.to);
8837
+ }
8110
8838
  }, {
8111
8839
  key: "build",
8112
8840
  value: function build() {
@@ -8149,15 +8877,16 @@ var RelayToParaBuilder = /*#__PURE__*/function () {
8149
8877
  }
8150
8878
  }], [{
8151
8879
  key: "create",
8152
- value: function create(api, to, paraIdTo) {
8153
- return new RelayToParaBuilder(api, to, paraIdTo);
8880
+ value: function create(api, to, batchManager, paraIdTo) {
8881
+ return new RelayToParaBuilder(api, to, batchManager, paraIdTo);
8154
8882
  }
8155
8883
  }]);
8156
8884
  }();
8157
8885
 
8158
8886
  var ParaToParaBuilder = /*#__PURE__*/function () {
8159
- function ParaToParaBuilder(api, from, to, currency, paraIdTo) {
8887
+ function ParaToParaBuilder(api, from, to, currency, batchManager, paraIdTo) {
8160
8888
  _classCallCheck(this, ParaToParaBuilder);
8889
+ this.batchManager = batchManager;
8161
8890
  this.api = api;
8162
8891
  this.from = from;
8163
8892
  this.to = to;
@@ -8210,6 +8939,16 @@ var ParaToParaBuilder = /*#__PURE__*/function () {
8210
8939
  version: this._version
8211
8940
  };
8212
8941
  }
8942
+ }, {
8943
+ key: "addToBatch",
8944
+ value: function addToBatch() {
8945
+ var options = this.buildOptions();
8946
+ this.batchManager.addTransaction({
8947
+ func: send,
8948
+ options: options
8949
+ });
8950
+ return new GeneralBuilder(this.batchManager, this.api, this.from);
8951
+ }
8213
8952
  }, {
8214
8953
  key: "build",
8215
8954
  value: function build() {
@@ -8218,12 +8957,18 @@ var ParaToParaBuilder = /*#__PURE__*/function () {
8218
8957
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8219
8958
  while (1) switch (_context.prev = _context.next) {
8220
8959
  case 0:
8960
+ if (this.batchManager.isEmpty()) {
8961
+ _context.next = 2;
8962
+ break;
8963
+ }
8964
+ throw new Error('Transaction manager contains batched items. Use buildBatch() to process them.');
8965
+ case 2:
8221
8966
  options = this.buildOptions();
8222
- _context.next = 3;
8967
+ _context.next = 5;
8223
8968
  return send(options);
8224
- case 3:
8969
+ case 5:
8225
8970
  return _context.abrupt("return", _context.sent);
8226
- case 4:
8971
+ case 6:
8227
8972
  case "end":
8228
8973
  return _context.stop();
8229
8974
  }
@@ -8252,15 +8997,16 @@ var ParaToParaBuilder = /*#__PURE__*/function () {
8252
8997
  }
8253
8998
  }], [{
8254
8999
  key: "createParaToPara",
8255
- value: function createParaToPara(api, from, to, currency, paraIdTo) {
8256
- return new ParaToParaBuilder(api, from, to, currency, paraIdTo);
9000
+ value: function createParaToPara(api, from, to, currency, batchManager, paraIdTo) {
9001
+ return new ParaToParaBuilder(api, from, to, currency, batchManager, paraIdTo);
8257
9002
  }
8258
9003
  }]);
8259
9004
  }();
8260
9005
 
8261
9006
  var ParaToRelayBuilder = /*#__PURE__*/function () {
8262
- function ParaToRelayBuilder(api, from, amount, feeAsset) {
9007
+ function ParaToRelayBuilder(api, from, amount, batchManager, feeAsset) {
8263
9008
  _classCallCheck(this, ParaToRelayBuilder);
9009
+ this.batchManager = batchManager;
8264
9010
  this.api = api;
8265
9011
  this.from = from;
8266
9012
  this.amount = amount;
@@ -8302,6 +9048,16 @@ var ParaToRelayBuilder = /*#__PURE__*/function () {
8302
9048
  version: this._version
8303
9049
  };
8304
9050
  }
9051
+ }, {
9052
+ key: "addToBatch",
9053
+ value: function addToBatch() {
9054
+ var options = this.buildOptions();
9055
+ this.batchManager.addTransaction({
9056
+ func: send,
9057
+ options: options
9058
+ });
9059
+ return new GeneralBuilder(this.batchManager, this.api, this.from);
9060
+ }
8305
9061
  }, {
8306
9062
  key: "build",
8307
9063
  value: function build() {
@@ -8344,8 +9100,8 @@ var ParaToRelayBuilder = /*#__PURE__*/function () {
8344
9100
  }
8345
9101
  }], [{
8346
9102
  key: "create",
8347
- value: function create(api, from, amount, feeAsset) {
8348
- return new ParaToRelayBuilder(api, from, amount, feeAsset);
9103
+ value: function create(api, from, amount, batchManager, feeAsset) {
9104
+ return new ParaToRelayBuilder(api, from, amount, batchManager, feeAsset);
8349
9105
  }
8350
9106
  }]);
8351
9107
  }();
@@ -8360,7 +9116,7 @@ var MissingApiPromiseError = /*#__PURE__*/function (_Error) {
8360
9116
  }
8361
9117
  _inherits(MissingApiPromiseError, _Error);
8362
9118
  return _createClass(MissingApiPromiseError);
8363
- }( /*#__PURE__*/_wrapNativeSuper(Error));
9119
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
8364
9120
 
8365
9121
  var buildBeneficiaryInput = function buildBeneficiaryInput(api, address) {
8366
9122
  if (isTMultiLocation(address)) {
@@ -8523,9 +9279,104 @@ var AssetClaimBuilder = /*#__PURE__*/function () {
8523
9279
  }]);
8524
9280
  }();
8525
9281
 
9282
+ var BatchTransactionManager = /*#__PURE__*/function () {
9283
+ function BatchTransactionManager() {
9284
+ _classCallCheck(this, BatchTransactionManager);
9285
+ this.transactions = [];
9286
+ }
9287
+ return _createClass(BatchTransactionManager, [{
9288
+ key: "addTransaction",
9289
+ value: function addTransaction(transaction) {
9290
+ this.transactions.push(transaction);
9291
+ }
9292
+ }, {
9293
+ key: "isEmpty",
9294
+ value: function isEmpty() {
9295
+ return this.transactions.length === 0;
9296
+ }
9297
+ }, {
9298
+ key: "buildBatch",
9299
+ value: function buildBatch(api_1, from_1, to_1) {
9300
+ return __awaiter(this, arguments, void 0, function (api, from, to) {
9301
+ var _this = this;
9302
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
9303
+ mode: BatchMode.BATCH_ALL
9304
+ };
9305
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
9306
+ var apiWithFallback, mode, sameFrom, results, txs;
9307
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
9308
+ while (1) switch (_context.prev = _context.next) {
9309
+ case 0:
9310
+ if (!(!from && !to)) {
9311
+ _context.next = 2;
9312
+ break;
9313
+ }
9314
+ throw new Error('From or to node is required');
9315
+ case 2:
9316
+ if (!(to && _typeof(to) === 'object')) {
9317
+ _context.next = 4;
9318
+ break;
9319
+ }
9320
+ throw new Error('Please provide ApiPromise instance.');
9321
+ case 4:
9322
+ if (!(api !== null && api !== void 0)) {
9323
+ _context.next = 8;
9324
+ break;
9325
+ }
9326
+ _context.t0 = api;
9327
+ _context.next = 11;
9328
+ break;
9329
+ case 8:
9330
+ _context.next = 10;
9331
+ return createApiInstanceForNode(from !== null && from !== void 0 ? from : determineRelayChain(to));
9332
+ case 10:
9333
+ _context.t0 = _context.sent;
9334
+ case 11:
9335
+ apiWithFallback = _context.t0;
9336
+ mode = options.mode;
9337
+ if (!(_this.transactions.length === 0)) {
9338
+ _context.next = 15;
9339
+ break;
9340
+ }
9341
+ throw new Error('No transactions to batch.');
9342
+ case 15:
9343
+ sameFrom = _this.transactions.every(function (tx) {
9344
+ if ('origin' in tx.options) {
9345
+ return tx.options.origin === from;
9346
+ }
9347
+ return true;
9348
+ });
9349
+ if (sameFrom) {
9350
+ _context.next = 18;
9351
+ break;
9352
+ }
9353
+ throw new Error('All transactions must have the same origin.');
9354
+ case 18:
9355
+ results = _this.transactions.map(function (options) {
9356
+ var func = options.func,
9357
+ txOptions = options.options;
9358
+ return func(txOptions);
9359
+ });
9360
+ _context.next = 21;
9361
+ return Promise.all(results);
9362
+ case 21:
9363
+ txs = _context.sent;
9364
+ return _context.abrupt("return", mode === BatchMode.BATCH_ALL ? apiWithFallback.tx.utility.batchAll(txs) : apiWithFallback.tx.utility.batch(txs));
9365
+ case 23:
9366
+ case "end":
9367
+ return _context.stop();
9368
+ }
9369
+ }, _callee);
9370
+ })();
9371
+ });
9372
+ }
9373
+ }]);
9374
+ }();
9375
+
8526
9376
  var ToGeneralBuilder = /*#__PURE__*/function () {
8527
- function ToGeneralBuilder(api, from, to, paraIdTo) {
9377
+ function ToGeneralBuilder(api, from, to, batchManager, paraIdTo) {
8528
9378
  _classCallCheck(this, ToGeneralBuilder);
9379
+ this.batchManager = batchManager;
8529
9380
  this.api = api;
8530
9381
  this.from = from;
8531
9382
  this.to = to;
@@ -8534,7 +9385,7 @@ var ToGeneralBuilder = /*#__PURE__*/function () {
8534
9385
  return _createClass(ToGeneralBuilder, [{
8535
9386
  key: "currency",
8536
9387
  value: function currency(_currency) {
8537
- return ParaToParaBuilder.createParaToPara(this.api, this.from, this.to, _currency, this.paraIdTo);
9388
+ return ParaToParaBuilder.createParaToPara(this.api, this.from, this.to, _currency, this.batchManager, this.paraIdTo);
8538
9389
  }
8539
9390
  }, {
8540
9391
  key: "openChannel",
@@ -8547,15 +9398,16 @@ var ToGeneralBuilder = /*#__PURE__*/function () {
8547
9398
  }]);
8548
9399
  }();
8549
9400
  var FromGeneralBuilder = /*#__PURE__*/function () {
8550
- function FromGeneralBuilder(api, from) {
9401
+ function FromGeneralBuilder(api, from, batchManager) {
8551
9402
  _classCallCheck(this, FromGeneralBuilder);
9403
+ this.batchManager = batchManager;
8552
9404
  this.api = api;
8553
9405
  this.from = from;
8554
9406
  }
8555
9407
  return _createClass(FromGeneralBuilder, [{
8556
9408
  key: "to",
8557
9409
  value: function to(node, paraIdTo) {
8558
- return new ToGeneralBuilder(this.api, this.from, node, paraIdTo);
9410
+ return new ToGeneralBuilder(this.api, this.from, node, this.batchManager, paraIdTo);
8559
9411
  }
8560
9412
  }, {
8561
9413
  key: "feeAsset",
@@ -8566,7 +9418,7 @@ var FromGeneralBuilder = /*#__PURE__*/function () {
8566
9418
  }, {
8567
9419
  key: "amount",
8568
9420
  value: function amount(_amount) {
8569
- return ParaToRelayBuilder.create(this.api, this.from, _amount, this._feeAsset);
9421
+ return ParaToRelayBuilder.create(this.api, this.from, _amount, this.batchManager, this._feeAsset);
8570
9422
  }
8571
9423
  }, {
8572
9424
  key: "closeChannel",
@@ -8579,29 +9431,100 @@ var FromGeneralBuilder = /*#__PURE__*/function () {
8579
9431
  }]);
8580
9432
  }();
8581
9433
  var GeneralBuilder = /*#__PURE__*/function () {
8582
- function GeneralBuilder(api) {
9434
+ function GeneralBuilder(batchManager, api, _from, _to) {
8583
9435
  _classCallCheck(this, GeneralBuilder);
9436
+ this.batchManager = batchManager;
8584
9437
  this.api = api;
9438
+ this._from = _from;
9439
+ this._to = _to;
8585
9440
  }
8586
9441
  return _createClass(GeneralBuilder, [{
8587
9442
  key: "from",
8588
9443
  value: function from(node) {
8589
- return new FromGeneralBuilder(this.api, node);
9444
+ return new FromGeneralBuilder(this.api, node, this.batchManager);
8590
9445
  }
8591
9446
  }, {
8592
9447
  key: "to",
8593
9448
  value: function to(node, paraIdTo) {
8594
- return RelayToParaBuilder.create(this.api, node, paraIdTo);
9449
+ return RelayToParaBuilder.create(this.api, node, this.batchManager, paraIdTo);
8595
9450
  }
8596
9451
  }, {
8597
9452
  key: "claimFrom",
8598
9453
  value: function claimFrom(node) {
8599
9454
  return AssetClaimBuilder.create(this.api, node);
8600
9455
  }
9456
+ }, {
9457
+ key: "buildBatch",
9458
+ value: function buildBatch(options) {
9459
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
9460
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
9461
+ while (1) switch (_context.prev = _context.next) {
9462
+ case 0:
9463
+ return _context.abrupt("return", this.batchManager.buildBatch(this.api, this._from, this._to, options));
9464
+ case 1:
9465
+ case "end":
9466
+ return _context.stop();
9467
+ }
9468
+ }, _callee, this);
9469
+ }));
9470
+ }
8601
9471
  }]);
8602
9472
  }();
8603
9473
  var Builder = function Builder(api) {
8604
- return new GeneralBuilder(api);
9474
+ return new GeneralBuilder(new BatchTransactionManager(), api);
9475
+ };
9476
+
9477
+ var findEthAsset = function findEthAsset(currency) {
9478
+ var ethAssets = getOtherAssets('Ethereum');
9479
+ var ethAsset = ethAssets.find(function (asset) {
9480
+ return asset.symbol === currency;
9481
+ });
9482
+ if (!ethAsset) {
9483
+ throw new InvalidCurrencyError("Currency ".concat(currency, " is not supported for Ethereum transfers"));
9484
+ }
9485
+ return ethAsset;
9486
+ };
9487
+
9488
+ var createContext = function createContext(executionUrl, config) {
9489
+ return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
9490
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
9491
+ while (1) switch (_context.prev = _context.next) {
9492
+ case 0:
9493
+ _context.next = 2;
9494
+ return contextFactory({
9495
+ ethereum: {
9496
+ execution_url: executionUrl,
9497
+ beacon_url: config.BEACON_HTTP_API
9498
+ },
9499
+ polkadot: {
9500
+ url: {
9501
+ bridgeHub: config.BRIDGE_HUB_URL,
9502
+ assetHub: config.ASSET_HUB_URL,
9503
+ relaychain: config.RELAY_CHAIN_URL,
9504
+ parachains: config.PARACHAINS
9505
+ }
9506
+ },
9507
+ appContracts: {
9508
+ gateway: config.GATEWAY_CONTRACT,
9509
+ beefy: config.BEEFY_CONTRACT
9510
+ }
9511
+ });
9512
+ case 2:
9513
+ return _context.abrupt("return", _context.sent);
9514
+ case 3:
9515
+ case "end":
9516
+ return _context.stop();
9517
+ }
9518
+ }, _callee);
9519
+ }));
9520
+ };
9521
+
9522
+ var checkPlanFailure = function checkPlanFailure(plan) {
9523
+ if (plan.failure) {
9524
+ throw new Error("Failed to validate send: ".concat(plan.failure.errors.map(function (e) {
9525
+ return e.message;
9526
+ }).join('\n\n')));
9527
+ }
8605
9528
  };
8606
9529
 
8607
9530
  var transferEthToPolkadot = function transferEthToPolkadot(provider_1, _a) {
@@ -8612,65 +9535,31 @@ var transferEthToPolkadot = function transferEthToPolkadot(provider_1, _a) {
8612
9535
  amount = _ref.amount,
8613
9536
  currency = _ref.currency;
8614
9537
  return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
8615
- var ethAssets, ethAsset, env, config, context, destParaId, plan, result;
9538
+ var ethAsset, env, context, destParaId, plan, result;
8616
9539
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8617
9540
  while (1) switch (_context.prev = _context.next) {
8618
9541
  case 0:
8619
- ethAssets = getOtherAssets('Ethereum');
8620
- ethAsset = ethAssets.find(function (asset) {
8621
- return asset.symbol === currency;
8622
- });
8623
- if (ethAsset) {
8624
- _context.next = 4;
8625
- break;
8626
- }
8627
- throw new InvalidCurrencyError("Currency ".concat(currency, " is not supported for Ethereum transfers"));
8628
- case 4:
9542
+ ethAsset = findEthAsset(currency);
8629
9543
  env = environment.SNOWBRIDGE_ENV['polkadot_mainnet'];
8630
- config = env.config;
8631
- _context.next = 8;
8632
- return contextFactory({
8633
- ethereum: {
8634
- execution_url: provider,
8635
- beacon_url: config.BEACON_HTTP_API
8636
- },
8637
- polkadot: {
8638
- url: {
8639
- bridgeHub: config.BRIDGE_HUB_URL,
8640
- assetHub: config.ASSET_HUB_URL,
8641
- relaychain: config.RELAY_CHAIN_URL,
8642
- parachains: config.PARACHAINS
8643
- }
8644
- },
8645
- appContracts: {
8646
- gateway: config.GATEWAY_CONTRACT,
8647
- beefy: config.BEEFY_CONTRACT
8648
- }
8649
- });
8650
- case 8:
9544
+ _context.next = 4;
9545
+ return createContext(provider, env.config);
9546
+ case 4:
8651
9547
  context = _context.sent;
8652
9548
  destParaId = getParaId(to);
8653
- _context.next = 12;
9549
+ _context.next = 8;
8654
9550
  return toPolkadot.validateSend(context, signer, address, ethAsset.assetId, destParaId, BigInt(amount), BigInt(0));
8655
- case 12:
9551
+ case 8:
8656
9552
  plan = _context.sent;
8657
- if (!plan.failure) {
8658
- _context.next = 15;
8659
- break;
8660
- }
8661
- throw new Error("Failed to validate send: ".concat(plan.failure.errors.map(function (e) {
8662
- return e.message;
8663
- }).join('\n\n')));
8664
- case 15:
8665
- _context.next = 17;
9553
+ checkPlanFailure(plan);
9554
+ _context.next = 12;
8666
9555
  return toPolkadot.send(context, signer, plan);
8667
- case 17:
9556
+ case 12:
8668
9557
  result = _context.sent;
8669
9558
  return _context.abrupt("return", {
8670
9559
  result: result,
8671
9560
  plan: plan
8672
9561
  });
8673
- case 19:
9562
+ case 14:
8674
9563
  case "end":
8675
9564
  return _context.stop();
8676
9565
  }
@@ -8865,7 +9754,7 @@ var getAssetSymbol = function getAssetSymbol(node, assetId) {
8865
9754
  if (node === 'Polkadot' || node === 'Kusama') {
8866
9755
  return getNativeAssetSymbol(node);
8867
9756
  }
8868
- var asset = getAssetBySymbolOrId(node, assetId);
9757
+ var asset = getAssetBySymbolOrId(node, assetId, false, true);
8869
9758
  return asset === null || asset === void 0 ? void 0 : asset.symbol;
8870
9759
  };
8871
9760
  var getAssetBalance = function getAssetBalance(account, node, assetSymbolOrId) {
@@ -9011,6 +9900,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
9011
9900
  getAllAssetsSymbols: getAllAssetsSymbols,
9012
9901
  getAssetDecimals: getAssetDecimals,
9013
9902
  getAssetId: getAssetId,
9903
+ getAssets: getAssets,
9014
9904
  getAssetsObject: getAssetsObject,
9015
9905
  getBalanceForeign: getBalanceForeign,
9016
9906
  getBalanceNative: getBalanceNative,
@@ -9019,6 +9909,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
9019
9909
  getOtherAssets: getOtherAssets,
9020
9910
  getParaId: getParaId,
9021
9911
  getRelayChainSymbol: getRelayChainSymbol,
9912
+ getSupportedAssets: getSupportedAssets,
9022
9913
  getTNode: getTNode,
9023
9914
  getTransferInfo: getTransferInfo,
9024
9915
  hasSupportForAsset: hasSupportForAsset
@@ -9184,6 +10075,11 @@ var ParachainNode = /*#__PURE__*/function () {
9184
10075
  value: function createPolkadotXcmHeader$1(scenario, version, destination, paraId) {
9185
10076
  return createPolkadotXcmHeader(scenario, version, destination, paraId);
9186
10077
  }
10078
+ }, {
10079
+ key: "getNativeAssetSymbol",
10080
+ value: function getNativeAssetSymbol$1() {
10081
+ return getNativeAssetSymbol(this.node);
10082
+ }
9187
10083
  }]);
9188
10084
  }();
9189
10085
 
@@ -9222,7 +10118,9 @@ var getCurrencySelection = function getCurrencySelection(_ref2, isAssetHub, curr
9222
10118
  }
9223
10119
  return currencySelection;
9224
10120
  };
9225
- var getParameters = function getParameters(isAssetHub, currencySelection, addressSelection, amount, fees, feeAsset) {
10121
+ var getParameters = function getParameters(isAssetHub, currencySelection, addressSelection, amount, fees, feeAsset
10122
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10123
+ ) {
9226
10124
  if (isAssetHub) {
9227
10125
  return feeAsset !== undefined ? [currencySelection, feeAsset, addressSelection, fees] : [currencySelection, addressSelection, fees];
9228
10126
  }
@@ -9260,7 +10158,6 @@ var XTokensTransferImpl = /*#__PURE__*/function () {
9260
10158
  parameters: parameters
9261
10159
  };
9262
10160
  }
9263
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
9264
10161
  return (_api$tx$module = api.tx[module])[section].apply(_api$tx$module, _toConsumableArray(parameters));
9265
10162
  }
9266
10163
  }]);
@@ -9302,9 +10199,11 @@ var Unique = /*#__PURE__*/function (_ParachainNode) {
9302
10199
  return _createClass(Unique, [{
9303
10200
  key: "transferXTokens",
9304
10201
  value: function transferXTokens(input) {
9305
- return XTokensTransferImpl.transferXTokens(input, {
9306
- ForeignAssetId: input.currencyID
9307
- });
10202
+ var currencyID = input.currencyID;
10203
+ var currencySelection = {
10204
+ ForeignAssetId: currencyID
10205
+ };
10206
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9308
10207
  }
9309
10208
  }]);
9310
10209
  }(ParachainNode);
@@ -9320,7 +10219,7 @@ var Crust = /*#__PURE__*/function (_ParachainNode) {
9320
10219
  value: function getCurrencySelection(_ref) {
9321
10220
  var currency = _ref.currency,
9322
10221
  currencyID = _ref.currencyID;
9323
- if (currency === 'CRU') {
10222
+ if (currency === this.getNativeAssetSymbol()) {
9324
10223
  return 'SelfReserve';
9325
10224
  }
9326
10225
  if (currencyID === undefined) {
@@ -9347,7 +10246,7 @@ var BifrostPolkadot = /*#__PURE__*/function (_ParachainNode) {
9347
10246
  return _createClass(BifrostPolkadot, [{
9348
10247
  key: "transferXTokens",
9349
10248
  value: function transferXTokens(input) {
9350
- var currencySelection = _defineProperty({}, input.currency === 'BNC' ? 'Native' : 'Token', input.currency);
10249
+ var currencySelection = _defineProperty({}, input.currency === this.getNativeAssetSymbol() ? 'Native' : 'Token', input.currency);
9351
10250
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
9352
10251
  }
9353
10252
  }]);
@@ -9373,7 +10272,7 @@ var Centrifuge = /*#__PURE__*/function (_ParachainNode) {
9373
10272
  value: function transferXTokens(input) {
9374
10273
  var currency = input.currency,
9375
10274
  currencyID = input.currencyID;
9376
- var currencySelection = currency === 'CFG' ? 'Native' : {
10275
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'Native' : {
9377
10276
  ForeignAsset: currencyID
9378
10277
  };
9379
10278
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9441,7 +10340,8 @@ var Litentry = /*#__PURE__*/function (_ParachainNode) {
9441
10340
  return _createClass(Litentry, [{
9442
10341
  key: "transferXTokens",
9443
10342
  value: function transferXTokens(input) {
9444
- return XTokensTransferImpl.transferXTokens(input, 'SelfReserve');
10343
+ var currencySelection = 'SelfReserve';
10344
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9445
10345
  }
9446
10346
  }]);
9447
10347
  }(ParachainNode);
@@ -9457,7 +10357,7 @@ var Moonbeam = /*#__PURE__*/function (_ParachainNode) {
9457
10357
  value: function transferXTokens(input) {
9458
10358
  var currency = input.currency,
9459
10359
  currencyID = input.currencyID;
9460
- var currencySelection = currency === 'GLMR' ? 'SelfReserve' : {
10360
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
9461
10361
  ForeignAsset: currencyID
9462
10362
  };
9463
10363
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9490,7 +10390,8 @@ var Parallel = /*#__PURE__*/function (_ParachainNode) {
9490
10390
  return _createClass(Parallel, [{
9491
10391
  key: "transferXTokens",
9492
10392
  value: function transferXTokens(input) {
9493
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10393
+ var currencyID = input.currencyID;
10394
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
9494
10395
  }
9495
10396
  }]);
9496
10397
  }(ParachainNode);
@@ -9504,18 +10405,12 @@ var Altair = /*#__PURE__*/function (_ParachainNode) {
9504
10405
  return _createClass(Altair, [{
9505
10406
  key: "transferXTokens",
9506
10407
  value: function transferXTokens(input) {
9507
- var currencySelection = Altair.getCurrencySelection(input);
9508
- return XTokensTransferImpl.transferXTokens(input, currencySelection);
9509
- }
9510
- }], [{
9511
- key: "getCurrencySelection",
9512
- value: function getCurrencySelection(_ref) {
9513
- var currency = _ref.currency,
9514
- currencyID = _ref.currencyID;
9515
- if (currency === 'AIR') return 'Native';
9516
- return {
10408
+ var currency = input.currency,
10409
+ currencyID = input.currencyID;
10410
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'Native' : {
9517
10411
  ForeignAsset: currencyID
9518
10412
  };
10413
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9519
10414
  }
9520
10415
  }]);
9521
10416
  }(ParachainNode);
@@ -9529,9 +10424,11 @@ var Amplitude = /*#__PURE__*/function (_ParachainNode) {
9529
10424
  return _createClass(Amplitude, [{
9530
10425
  key: "transferXTokens",
9531
10426
  value: function transferXTokens(input) {
9532
- return XTokensTransferImpl.transferXTokens(input, {
9533
- XCM: input.currencyID
9534
- });
10427
+ var currencyID = input.currencyID;
10428
+ var currencySelection = {
10429
+ XCM: currencyID
10430
+ };
10431
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9535
10432
  }
9536
10433
  }]);
9537
10434
  }(ParachainNode);
@@ -9550,7 +10447,7 @@ var Bajun = /*#__PURE__*/function (_ParachainNode) {
9550
10447
  if (scenario !== 'ParaToPara') {
9551
10448
  throw new ScenarioNotSupportedError(this.node, scenario);
9552
10449
  }
9553
- var nativeSymbol = getNativeAssetSymbol(this.node);
10450
+ var nativeSymbol = this.getNativeAssetSymbol();
9554
10451
  if (currency !== nativeSymbol) {
9555
10452
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currency));
9556
10453
  }
@@ -9588,7 +10485,7 @@ var BifrostKusama = /*#__PURE__*/function (_ParachainNode) {
9588
10485
  return _createClass(BifrostKusama, [{
9589
10486
  key: "transferXTokens",
9590
10487
  value: function transferXTokens(input) {
9591
- var currencySelection = _defineProperty({}, input.currency === 'BNC' ? 'Native' : 'Token', input.currency);
10488
+ var currencySelection = _defineProperty({}, input.currency === this.getNativeAssetSymbol() ? 'Native' : 'Token', input.currency);
9592
10489
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
9593
10490
  }
9594
10491
  }]);
@@ -9604,7 +10501,9 @@ var Pioneer = /*#__PURE__*/function (_ParachainNode) {
9604
10501
  key: "transferXTokens",
9605
10502
  value: function transferXTokens(input) {
9606
10503
  // Multiple asset options needs addressing
9607
- return XTokensTransferImpl.transferXTokens(input, 'NativeToken', input.fees);
10504
+ var fees = input.fees;
10505
+ var currencySelection = 'NativeToken';
10506
+ return XTokensTransferImpl.transferXTokens(input, currencySelection, fees);
9608
10507
  }
9609
10508
  }]);
9610
10509
  }(ParachainNode);
@@ -9633,7 +10532,8 @@ var Picasso = /*#__PURE__*/function (_ParachainNode) {
9633
10532
  return _createClass(Picasso, [{
9634
10533
  key: "transferXTokens",
9635
10534
  value: function transferXTokens(input) {
9636
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10535
+ var currencyID = input.currencyID;
10536
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
9637
10537
  }
9638
10538
  }]);
9639
10539
  }(ParachainNode);
@@ -9647,7 +10547,7 @@ var ParallelHeiko = /*#__PURE__*/function (_ParachainNode) {
9647
10547
  return _createClass(ParallelHeiko, [{
9648
10548
  key: "transferXTokens",
9649
10549
  value: function transferXTokens(input) {
9650
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10550
+ return getNode('Parallel').transferXTokens(input);
9651
10551
  }
9652
10552
  }]);
9653
10553
  }(ParachainNode);
@@ -9663,7 +10563,7 @@ var Moonriver = /*#__PURE__*/function (_ParachainNode) {
9663
10563
  value: function transferXTokens(input) {
9664
10564
  var currency = input.currency,
9665
10565
  currencyID = input.currencyID;
9666
- var currencySelection = currency === 'MOVR' ? 'SelfReserve' : {
10566
+ var currencySelection = currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
9667
10567
  ForeignAsset: currencyID
9668
10568
  };
9669
10569
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -9692,7 +10592,7 @@ var Litmus = /*#__PURE__*/function (_ParachainNode) {
9692
10592
  key: "transferXTokens",
9693
10593
  value: function transferXTokens(input) {
9694
10594
  // Multiple asset options needs addressing
9695
- return XTokensTransferImpl.transferXTokens(input, 'SelfReserve');
10595
+ return getNode('Litentry').transferXTokens(input);
9696
10596
  }
9697
10597
  }]);
9698
10598
  }(ParachainNode);
@@ -9729,9 +10629,10 @@ var Calamari = /*#__PURE__*/function (_ParachainNode) {
9729
10629
  value: function transferXTokens(input) {
9730
10630
  // Currently only option for XCM transfer
9731
10631
  var currencyID = input.currencyID;
9732
- return XTokensTransferImpl.transferXTokens(input, {
10632
+ var currencySelection = {
9733
10633
  MantaCurrency: currencyID
9734
- });
10634
+ };
10635
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
9735
10636
  }
9736
10637
  }]);
9737
10638
  }(ParachainNode);
@@ -9747,7 +10648,7 @@ var CrustShadow = /*#__PURE__*/function (_ParachainNode) {
9747
10648
  value: function getCurrencySelection(_ref) {
9748
10649
  var currency = _ref.currency,
9749
10650
  currencyID = _ref.currencyID;
9750
- if (currency === 'CSM') {
10651
+ if (currency === this.getNativeAssetSymbol()) {
9751
10652
  return 'SelfReserve';
9752
10653
  }
9753
10654
  if (currencyID === undefined) {
@@ -9824,14 +10725,7 @@ var Karura = /*#__PURE__*/function (_ParachainNode) {
9824
10725
  return _createClass(Karura, [{
9825
10726
  key: "transferXTokens",
9826
10727
  value: function transferXTokens(input) {
9827
- var currency = input.currency,
9828
- currencyID = input.currencyID;
9829
- var currencySelection = currencyID !== undefined ? {
9830
- ForeignAsset: currencyID
9831
- } : {
9832
- Token: currency
9833
- };
9834
- return XTokensTransferImpl.transferXTokens(input, currencySelection);
10728
+ return getNode('Acala').transferXTokens(input);
9835
10729
  }
9836
10730
  }, {
9837
10731
  key: "getProvider",
@@ -10150,13 +11044,15 @@ var Astar = /*#__PURE__*/function (_ParachainNode) {
10150
11044
  }, {
10151
11045
  key: "transferXTokens",
10152
11046
  value: function transferXTokens(input) {
10153
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
11047
+ var currencyID = input.currencyID;
11048
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
10154
11049
  }
10155
11050
  }, {
10156
11051
  key: "canUseXTokens",
10157
11052
  value: function canUseXTokens(_ref) {
10158
- var currencySymbol = _ref.currencySymbol;
10159
- return currencySymbol !== 'ASTR';
11053
+ var currencySymbol = _ref.currencySymbol,
11054
+ currencyId = _ref.currencyId;
11055
+ return currencySymbol !== this.getNativeAssetSymbol() || !!currencyId;
10160
11056
  }
10161
11057
  }]);
10162
11058
  }(ParachainNode);
@@ -10170,9 +11066,11 @@ var Darwinia = /*#__PURE__*/function (_ParachainNode) {
10170
11066
  return _createClass(Darwinia, [{
10171
11067
  key: "transferXTokens",
10172
11068
  value: function transferXTokens(input) {
10173
- return XTokensTransferImpl.transferXTokens(input, input.currency === 'RING' ? 'SelfReserve' : {
10174
- ForeignAsset: input.currencyID
10175
- });
11069
+ var currencyID = input.currencyID;
11070
+ var currencySelection = input.currency === this.getNativeAssetSymbol() ? 'SelfReserve' : {
11071
+ ForeignAsset: currencyID
11072
+ };
11073
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10176
11074
  }
10177
11075
  }, {
10178
11076
  key: "transferRelayToPara",
@@ -10236,10 +11134,7 @@ var Quartz = /*#__PURE__*/function (_ParachainNode) {
10236
11134
  return _createClass(Quartz, [{
10237
11135
  key: "transferXTokens",
10238
11136
  value: function transferXTokens(input) {
10239
- var currencyID = input.currencyID;
10240
- return XTokensTransferImpl.transferXTokens(input, {
10241
- ForeignAssetId: currencyID
10242
- });
11137
+ return getNode('Unique').transferXTokens(input);
10243
11138
  }
10244
11139
  }]);
10245
11140
  }(ParachainNode);
@@ -10255,19 +11150,19 @@ var Shiden = /*#__PURE__*/function (_ParachainNode) {
10255
11150
  value: function transferPolkadotXCM(input) {
10256
11151
  // Same as Astar, works
10257
11152
  // https://shiden.subscan.io/xcm_message/kusama-97eb47c25c781affa557f36dbd117d49f7e1ab4e
10258
- var method = input.scenario === 'ParaToPara' ? 'reserveTransferAssets' : 'reserveWithdrawAssets';
10259
- return PolkadotXCMTransferImpl.transferPolkadotXCM(input, method);
11153
+ return getNode('Astar').transferPolkadotXCM(input);
10260
11154
  }
10261
11155
  }, {
10262
11156
  key: "transferXTokens",
10263
11157
  value: function transferXTokens(input) {
10264
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
11158
+ return getNode('Astar').transferXTokens(input);
10265
11159
  }
10266
11160
  }, {
10267
11161
  key: "canUseXTokens",
10268
11162
  value: function canUseXTokens(_ref) {
10269
- var currencySymbol = _ref.currencySymbol;
10270
- return currencySymbol !== 'SDN';
11163
+ var currencySymbol = _ref.currencySymbol,
11164
+ currencyId = _ref.currencyId;
11165
+ return currencySymbol !== this.getNativeAssetSymbol() || !!currencyId;
10271
11166
  }
10272
11167
  }]);
10273
11168
  }(ParachainNode);
@@ -10281,9 +11176,11 @@ var Manta = /*#__PURE__*/function (_ParachainNode) {
10281
11176
  return _createClass(Manta, [{
10282
11177
  key: "transferXTokens",
10283
11178
  value: function transferXTokens(input) {
10284
- return XTokensTransferImpl.transferXTokens(input, {
10285
- MantaCurrency: input.currencyID
10286
- });
11179
+ var currencyID = input.currencyID;
11180
+ var currencySelection = {
11181
+ MantaCurrency: currencyID
11182
+ };
11183
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10287
11184
  }
10288
11185
  }]);
10289
11186
  }(ParachainNode);
@@ -10300,10 +11197,11 @@ var Nodle = /*#__PURE__*/function (_ParachainNode) {
10300
11197
  if (input.scenario !== 'ParaToPara') {
10301
11198
  throw new ScenarioNotSupportedError(this.node, input.scenario);
10302
11199
  }
10303
- if (input.currency !== 'NODL') {
11200
+ if (input.currency !== this.getNativeAssetSymbol()) {
10304
11201
  throw new InvalidCurrencyError("Asset ".concat(input.currency, " is not supported by node ").concat(this.node, "."));
10305
11202
  }
10306
- return XTokensTransferImpl.transferXTokens(input, 'NodleNative');
11203
+ var currencySelection = 'NodleNative';
11204
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10307
11205
  }
10308
11206
  }, {
10309
11207
  key: "transferRelayToPara",
@@ -10339,12 +11237,13 @@ var Pendulum = /*#__PURE__*/function (_ParachainNode) {
10339
11237
  if (input.scenario !== 'ParaToPara') {
10340
11238
  throw new ScenarioNotSupportedError(this.node, input.scenario);
10341
11239
  }
10342
- if (input.currency !== 'PEN') {
11240
+ if (input.currency !== this.getNativeAssetSymbol()) {
10343
11241
  throw new InvalidCurrencyError("Asset ".concat(input.currency, " is not supported by node ").concat(this.node, "."));
10344
11242
  }
10345
- return XTokensTransferImpl.transferXTokens(input, {
11243
+ var currencySelection = {
10346
11244
  XCM: input.currencyID
10347
- });
11245
+ };
11246
+ return XTokensTransferImpl.transferXTokens(input, currencySelection);
10348
11247
  }
10349
11248
  }, {
10350
11249
  key: "transferRelayToPara",
@@ -10363,12 +11262,8 @@ var Polkadex = /*#__PURE__*/function (_ParachainNode) {
10363
11262
  return _createClass(Polkadex, [{
10364
11263
  key: "transferXTokens",
10365
11264
  value: function transferXTokens(input) {
10366
- return XTokensTransferImpl.transferXTokens(input, input.currencyID);
10367
- }
10368
- }, {
10369
- key: "getProvider",
10370
- value: function getProvider() {
10371
- return getAllNodeProviders(this.node)[1];
11265
+ var currencyID = input.currencyID;
11266
+ return XTokensTransferImpl.transferXTokens(input, currencyID);
10372
11267
  }
10373
11268
  }]);
10374
11269
  }(ParachainNode);
@@ -10382,7 +11277,7 @@ var Zeitgeist = /*#__PURE__*/function (_ParachainNode) {
10382
11277
  return _createClass(Zeitgeist, [{
10383
11278
  key: "transferXTokens",
10384
11279
  value: function transferXTokens(input) {
10385
- var currencySelection = input.currency === 'ZTG' ? 'Ztg' : {
11280
+ var currencySelection = input.currency === this.getNativeAssetSymbol() ? 'Ztg' : {
10386
11281
  ForeignAsset: input.currencyID
10387
11282
  };
10388
11283
  return XTokensTransferImpl.transferXTokens(input, currencySelection);
@@ -10529,7 +11424,7 @@ var Phala = /*#__PURE__*/function (_ParachainNode) {
10529
11424
  key: "transferXTransfer",
10530
11425
  value: function transferXTransfer(input) {
10531
11426
  var currency = input.currency;
10532
- if (currency !== 'PHA') {
11427
+ if (currency !== this.getNativeAssetSymbol()) {
10533
11428
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currency));
10534
11429
  }
10535
11430
  return XTransferTransferImpl.transferXTransfer(input);
@@ -10682,15 +11577,16 @@ var Mythos = /*#__PURE__*/function (_ParachainNode) {
10682
11577
  key: "transferPolkadotXCM",
10683
11578
  value: function transferPolkadotXCM(input) {
10684
11579
  var scenario = input.scenario,
10685
- currencySymbol = input.currencySymbol;
11580
+ currencySymbol = input.currencySymbol,
11581
+ destination = input.destination;
10686
11582
  if (scenario !== 'ParaToPara') {
10687
11583
  throw new ScenarioNotSupportedError(this.node, scenario);
10688
11584
  }
10689
- var nativeSymbol = getNativeAssetSymbol(this.node);
11585
+ var nativeSymbol = this.getNativeAssetSymbol();
10690
11586
  if (currencySymbol !== nativeSymbol) {
10691
11587
  throw new InvalidCurrencyError("Node ".concat(this.node, " does not support currency ").concat(currencySymbol));
10692
11588
  }
10693
- return PolkadotXCMTransferImpl.transferPolkadotXCM(input, 'limitedReserveTransferAssets', 'Unlimited');
11589
+ return PolkadotXCMTransferImpl.transferPolkadotXCM(input, destination === 'AssetHubPolkadot' ? 'limitedTeleportAssets' : 'limitedReserveTransferAssets', 'Unlimited');
10694
11590
  }
10695
11591
  }, {
10696
11592
  key: "transferRelayToPara",
@@ -10938,6 +11834,11 @@ var getAllNodeProviders = function getAllNodeProviders(node) {
10938
11834
  return Object.values(providers !== null && providers !== void 0 ? providers : []);
10939
11835
  };
10940
11836
  var getNodeProvider = function getNodeProvider(node) {
11837
+ if (node === 'Polkadot') {
11838
+ return prodRelayPolkadot.providers[0];
11839
+ } else if (node === 'Kusama') {
11840
+ return prodRelayKusama.providers[0];
11841
+ }
10941
11842
  return getNode(node).getProvider();
10942
11843
  };
10943
11844
  var createApiInstance = function createApiInstance(wsUrl) {
@@ -11025,7 +11926,7 @@ var KeepAliveError = /*#__PURE__*/function (_Error) {
11025
11926
  }
11026
11927
  _inherits(KeepAliveError, _Error);
11027
11928
  return _createClass(KeepAliveError);
11028
- }( /*#__PURE__*/_wrapNativeSuper(Error));
11929
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
11029
11930
 
11030
11931
  var edMap = edMapJson;
11031
11932
  var getExistentialDeposit = function getExistentialDeposit(node) {
@@ -11175,7 +12076,7 @@ var checkKeepAlive = function checkKeepAlive(_a) {
11175
12076
  });
11176
12077
  };
11177
12078
 
11178
- var transformOptions = function transformOptions(options) {
12079
+ var transformSendOptions = function transformSendOptions(options) {
11179
12080
  var currency = options.currency;
11180
12081
  if (isTCurrencySpecifier(currency)) {
11181
12082
  if ('symbol' in currency) {
@@ -11195,13 +12096,14 @@ var transformOptions = function transformOptions(options) {
11195
12096
  isSymbol: undefined
11196
12097
  });
11197
12098
  };
12099
+
11198
12100
  var sendCommon = function sendCommon(options) {
11199
12101
  return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
11200
- var _a, _b, _transformOptions, api, origin, currency, amount, address, destination, paraIdTo, destApiForKeepAlive, feeAsset, version, isSymbol, _transformOptions$ser, serializedApiCallEnabled, isMultiLocationDestination, isMultiLocationCurrency, isBridge, isRelayDestination, originRelayChainSymbol, destinationRelayChainSymbol, originNode, assetCheckEnabled, asset, apiWithFallback, amountStr, currencyStr;
12102
+ var _a, _b, _transformSendOptions, api, origin, currency, amount, address, destination, paraIdTo, destApiForKeepAlive, feeAsset, version, isSymbol, _transformSendOptions2, serializedApiCallEnabled, isMultiLocationDestination, isMultiLocationCurrency, isBridge, isRelayDestination, originRelayChainSymbol, destinationRelayChainSymbol, originNode, assetCheckEnabled, asset, apiWithFallback, amountStr, currencyStr;
11201
12103
  return _regeneratorRuntime().wrap(function _callee$(_context) {
11202
12104
  while (1) switch (_context.prev = _context.next) {
11203
12105
  case 0:
11204
- _transformOptions = transformOptions(options), api = _transformOptions.api, origin = _transformOptions.origin, currency = _transformOptions.currency, amount = _transformOptions.amount, address = _transformOptions.address, destination = _transformOptions.destination, paraIdTo = _transformOptions.paraIdTo, destApiForKeepAlive = _transformOptions.destApiForKeepAlive, feeAsset = _transformOptions.feeAsset, version = _transformOptions.version, isSymbol = _transformOptions.isSymbol, _transformOptions$ser = _transformOptions.serializedApiCallEnabled, serializedApiCallEnabled = _transformOptions$ser === void 0 ? false : _transformOptions$ser;
12106
+ _transformSendOptions = transformSendOptions(options), api = _transformSendOptions.api, origin = _transformSendOptions.origin, currency = _transformSendOptions.currency, amount = _transformSendOptions.amount, address = _transformSendOptions.address, destination = _transformSendOptions.destination, paraIdTo = _transformSendOptions.paraIdTo, destApiForKeepAlive = _transformSendOptions.destApiForKeepAlive, feeAsset = _transformSendOptions.feeAsset, version = _transformSendOptions.version, isSymbol = _transformSendOptions.isSymbol, _transformSendOptions2 = _transformSendOptions.serializedApiCallEnabled, serializedApiCallEnabled = _transformSendOptions2 === void 0 ? false : _transformSendOptions2;
11205
12107
  if (!((!isTMulti(currency) || isTMultiLocation(currency)) && amount === null)) {
11206
12108
  _context.next = 3;
11207
12109
  break;
@@ -11251,85 +12153,91 @@ var sendCommon = function sendCommon(options) {
11251
12153
  }
11252
12154
  throw new InvalidCurrencyError('Fee asset index is out of bounds. Please provide a valid index.');
11253
12155
  case 17:
12156
+ if (!(destination === 'Ethereum' && origin !== 'AssetHubPolkadot')) {
12157
+ _context.next = 19;
12158
+ break;
12159
+ }
12160
+ throw new IncompatibleNodesError('Transfers to Ethereum are only supported from AssetHubPolkadot.');
12161
+ case 19:
11254
12162
  isMultiLocationDestination = _typeof(destination) === 'object';
11255
12163
  isMultiLocationCurrency = _typeof(currency) === 'object';
11256
- isBridge = origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot' || destination === 'Ethereum';
12164
+ isBridge = origin === 'AssetHubPolkadot' && destination === 'AssetHubKusama' || origin === 'AssetHubKusama' && destination === 'AssetHubPolkadot';
11257
12165
  isRelayDestination = destination === undefined;
11258
12166
  if (!(!isRelayDestination && !isMultiLocationDestination)) {
11259
- _context.next = 26;
12167
+ _context.next = 28;
11260
12168
  break;
11261
12169
  }
11262
12170
  originRelayChainSymbol = getRelayChainSymbol(origin);
11263
12171
  destinationRelayChainSymbol = getRelayChainSymbol(destination);
11264
12172
  if (!(!isBridge && originRelayChainSymbol !== destinationRelayChainSymbol)) {
11265
- _context.next = 26;
12173
+ _context.next = 28;
11266
12174
  break;
11267
12175
  }
11268
12176
  throw new IncompatibleNodesError();
11269
- case 26:
12177
+ case 28:
11270
12178
  originNode = getNode(origin);
11271
12179
  assetCheckEnabled = isMultiLocationCurrency || isBridge ? false : originNode.assetCheckEnabled;
11272
- asset = assetCheckEnabled ? getAssetBySymbolOrId(origin, currency, isRelayDestination, isSymbol) : null;
12180
+ asset = assetCheckEnabled ? getAssetBySymbolOrId(origin, currency, isRelayDestination, isSymbol, isTMultiLocation(destination) ? undefined : destination) : null;
11273
12181
  if (!(!isBridge && asset === null && assetCheckEnabled)) {
11274
- _context.next = 31;
12182
+ _context.next = 33;
11275
12183
  break;
11276
12184
  }
11277
12185
  throw new InvalidCurrencyError("Origin node ".concat(origin, " does not support currency or currencyId ").concat(JSON.stringify(currency), "."));
11278
- case 31:
12186
+ case 33:
11279
12187
  if (!(!isBridge && !isRelayDestination && !isMultiLocationDestination && (asset === null || asset === void 0 ? void 0 : asset.symbol) !== undefined && assetCheckEnabled && isSymbol !== false && asset.assetId !== currency && !hasSupportForAsset(destination, asset.symbol))) {
11280
- _context.next = 33;
12188
+ _context.next = 35;
11281
12189
  break;
11282
12190
  }
11283
12191
  throw new InvalidCurrencyError("Destination node ".concat(destination, " does not support currency or currencyId ").concat(JSON.stringify(currency), "."));
11284
- case 33:
12192
+ case 35:
11285
12193
  if (!(api !== null && api !== void 0)) {
11286
- _context.next = 37;
12194
+ _context.next = 39;
11287
12195
  break;
11288
12196
  }
11289
12197
  _context.t0 = api;
11290
- _context.next = 40;
12198
+ _context.next = 42;
11291
12199
  break;
11292
- case 37:
11293
- _context.next = 39;
11294
- return createApiInstanceForNode(origin);
11295
12200
  case 39:
12201
+ _context.next = 41;
12202
+ return createApiInstanceForNode(origin);
12203
+ case 41:
11296
12204
  _context.t0 = _context.sent;
11297
- case 40:
12205
+ case 42:
11298
12206
  apiWithFallback = _context.t0;
11299
12207
  amountStr = amount === null || amount === void 0 ? void 0 : amount.toString();
11300
12208
  if (!isTMulti(currency)) {
11301
- _context.next = 46;
12209
+ _context.next = 48;
11302
12210
  break;
11303
12211
  }
11304
12212
  console.warn('Keep alive check is not supported when using MultiLocation as currency.');
11305
- _context.next = 60;
12213
+ _context.next = 62;
11306
12214
  break;
11307
- case 46:
12215
+ case 48:
11308
12216
  if (!(_typeof(address) === 'object')) {
11309
- _context.next = 50;
12217
+ _context.next = 52;
11310
12218
  break;
11311
12219
  }
11312
12220
  console.warn('Keep alive check is not supported when using MultiLocation as address.');
11313
- _context.next = 60;
12221
+ _context.next = 62;
11314
12222
  break;
11315
- case 50:
12223
+ case 52:
11316
12224
  if (!(_typeof(destination) === 'object')) {
11317
- _context.next = 54;
12225
+ _context.next = 56;
11318
12226
  break;
11319
12227
  }
11320
12228
  console.warn('Keep alive check is not supported when using MultiLocation as destination.');
11321
- _context.next = 60;
12229
+ _context.next = 62;
11322
12230
  break;
11323
- case 54:
12231
+ case 56:
11324
12232
  if (!(origin === 'Ethereum' || destination === 'Ethereum')) {
11325
- _context.next = 58;
12233
+ _context.next = 60;
11326
12234
  break;
11327
12235
  }
11328
12236
  console.warn('Keep alive check is not supported when using Ethereum as origin or destination.');
11329
- _context.next = 60;
12237
+ _context.next = 62;
11330
12238
  break;
11331
- case 58:
11332
- _context.next = 60;
12239
+ case 60:
12240
+ _context.next = 62;
11333
12241
  return checkKeepAlive({
11334
12242
  originApi: apiWithFallback,
11335
12243
  address: address,
@@ -11339,7 +12247,7 @@ var sendCommon = function sendCommon(options) {
11339
12247
  currencySymbol: (_a = asset === null || asset === void 0 ? void 0 : asset.symbol) !== null && _a !== void 0 ? _a : currency.toString(),
11340
12248
  destNode: destination
11341
12249
  });
11342
- case 60:
12250
+ case 62:
11343
12251
  currencyStr = isTMulti(currency) ? undefined : currency.toString();
11344
12252
  return _context.abrupt("return", originNode.transfer({
11345
12253
  api: apiWithFallback,
@@ -11354,7 +12262,7 @@ var sendCommon = function sendCommon(options) {
11354
12262
  version: version,
11355
12263
  serializedApiCallEnabled: serializedApiCallEnabled
11356
12264
  }));
11357
- case 62:
12265
+ case 64:
11358
12266
  case "end":
11359
12267
  return _context.stop();
11360
12268
  }
@@ -11366,13 +12274,10 @@ var sendSerializedApiCall = function sendSerializedApiCall(options) {
11366
12274
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
11367
12275
  while (1) switch (_context2.prev = _context2.next) {
11368
12276
  case 0:
11369
- _context2.next = 2;
11370
- return sendCommon(Object.assign(Object.assign({}, options), {
12277
+ return _context2.abrupt("return", sendCommon(Object.assign(Object.assign({}, options), {
11371
12278
  serializedApiCallEnabled: true
11372
- }));
11373
- case 2:
11374
- return _context2.abrupt("return", _context2.sent);
11375
- case 3:
12279
+ })));
12280
+ case 1:
11376
12281
  case "end":
11377
12282
  return _context2.stop();
11378
12283
  }
@@ -11384,11 +12289,8 @@ var send = function send(options) {
11384
12289
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
11385
12290
  while (1) switch (_context3.prev = _context3.next) {
11386
12291
  case 0:
11387
- _context3.next = 2;
11388
- return sendCommon(options);
11389
- case 2:
11390
- return _context3.abrupt("return", _context3.sent);
11391
- case 3:
12292
+ return _context3.abrupt("return", sendCommon(options));
12293
+ case 1:
11392
12294
  case "end":
11393
12295
  return _context3.stop();
11394
12296
  }
@@ -11487,11 +12389,8 @@ var transferRelayToPara = function transferRelayToPara(options) {
11487
12389
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
11488
12390
  while (1) switch (_context5.prev = _context5.next) {
11489
12391
  case 0:
11490
- _context5.next = 2;
11491
- return transferRelayToParaCommon(options);
11492
- case 2:
11493
- return _context5.abrupt("return", _context5.sent);
11494
- case 3:
12392
+ return _context5.abrupt("return", transferRelayToParaCommon(options));
12393
+ case 1:
11495
12394
  case "end":
11496
12395
  return _context5.stop();
11497
12396
  }
@@ -11503,13 +12402,10 @@ var transferRelayToParaSerializedApiCall = function transferRelayToParaSerialize
11503
12402
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
11504
12403
  while (1) switch (_context6.prev = _context6.next) {
11505
12404
  case 0:
11506
- _context6.next = 2;
11507
- return transferRelayToParaCommon(Object.assign(Object.assign({}, options), {
12405
+ return _context6.abrupt("return", transferRelayToParaCommon(Object.assign(Object.assign({}, options), {
11508
12406
  serializedApiCallEnabled: true
11509
- }));
11510
- case 2:
11511
- return _context6.abrupt("return", _context6.sent);
11512
- case 3:
12407
+ })));
12408
+ case 1:
11513
12409
  case "end":
11514
12410
  return _context6.stop();
11515
12411
  }
@@ -11517,8 +12413,60 @@ var transferRelayToParaSerializedApiCall = function transferRelayToParaSerialize
11517
12413
  }));
11518
12414
  };
11519
12415
 
12416
+ var buildEthTransferOptions = function buildEthTransferOptions(_a) {
12417
+ return __awaiter(void 0, [_a], void 0, function (_ref) {
12418
+ var currency = _ref.currency,
12419
+ to = _ref.to,
12420
+ address = _ref.address,
12421
+ destAddress = _ref.destAddress,
12422
+ amount = _ref.amount;
12423
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
12424
+ var ethAsset, env, EXECUTION_URL, context, destParaId, signer, plan;
12425
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
12426
+ while (1) switch (_context.prev = _context.next) {
12427
+ case 0:
12428
+ ethAsset = findEthAsset(currency);
12429
+ env = environment.SNOWBRIDGE_ENV['polkadot_mainnet'];
12430
+ EXECUTION_URL = 'https://eth.llamarpc.com';
12431
+ _context.next = 5;
12432
+ return createContext(EXECUTION_URL, env.config);
12433
+ case 5:
12434
+ context = _context.sent;
12435
+ destParaId = getParaId(to);
12436
+ signer = {
12437
+ getAddress: function getAddress() {
12438
+ return Promise.resolve(address);
12439
+ }
12440
+ };
12441
+ _context.next = 10;
12442
+ return toPolkadot.validateSend(context, signer, destAddress, ethAsset.assetId, destParaId, BigInt(amount), BigInt(0));
12443
+ case 10:
12444
+ plan = _context.sent;
12445
+ checkPlanFailure(plan);
12446
+ if (plan.success) {
12447
+ _context.next = 14;
12448
+ break;
12449
+ }
12450
+ throw new Error('Failed to validate send');
12451
+ case 14:
12452
+ return _context.abrupt("return", {
12453
+ token: plan.success.token,
12454
+ destinationParaId: plan.success.destinationParaId,
12455
+ destinationFee: plan.success.destinationFee,
12456
+ amount: plan.success.amount
12457
+ });
12458
+ case 15:
12459
+ case "end":
12460
+ return _context.stop();
12461
+ }
12462
+ }, _callee);
12463
+ })();
12464
+ });
12465
+ };
12466
+
11520
12467
  var index = /*#__PURE__*/Object.freeze({
11521
12468
  __proto__: null,
12469
+ buildEthTransferOptions: buildEthTransferOptions,
11522
12470
  send: send,
11523
12471
  sendSerializedApiCall: sendSerializedApiCall,
11524
12472
  transferRelayToPara: transferRelayToPara,
@@ -11526,4 +12474,4 @@ var index = /*#__PURE__*/Object.freeze({
11526
12474
  transferRelayToParaSerializedApiCall: transferRelayToParaSerializedApiCall
11527
12475
  });
11528
12476
 
11529
- export { Builder, CloseChannelBuilder, DuplicateAssetError, EvmBuilder, IncompatibleNodesError, InvalidCurrencyError, NODES_WITH_RELAY_CHAINS, NODES_WITH_RELAY_CHAINS_DOT_KSM, NODE_NAMES, NODE_NAMES_DOT_KSM, NoXCMSupportImplementedError, NodeNotSupportedError, OpenChannelBuilder, Parents, SUPPORTED_PALLETS, ScenarioNotSupportedError, Version, index$1 as assets, index$3 as closeChannels, createApiInstanceForNode, getAllAssetsSymbols, getAllNodeProviders, getAssetDecimals, getAssetId, getAssetsObject, getBalanceForeign, getBalanceNative, getDefaultPallet, getExistentialDeposit, getNativeAssetSymbol, getNativeAssets, getNode, getNodeEndpointOption, getNodeProvider, getOtherAssets, getParaId, getRelayChainSymbol, getSupportedPallets, getTNode, getTransferInfo, hasSupportForAsset, index$2 as openChannels, index as xcmPallet };
12477
+ export { BatchMode, Builder, CloseChannelBuilder, DuplicateAssetError, EvmBuilder, IncompatibleNodesError, InvalidCurrencyError, NODES_WITH_RELAY_CHAINS, NODES_WITH_RELAY_CHAINS_DOT_KSM, NODE_NAMES, NODE_NAMES_DOT_KSM, NoXCMSupportImplementedError, NodeNotSupportedError, OpenChannelBuilder, Parents, SUPPORTED_PALLETS, ScenarioNotSupportedError, Version, index$1 as assets, buildEthTransferOptions, index$3 as closeChannels, createApiInstanceForNode, getAllAssetsSymbols, getAllNodeProviders, getAssetDecimals, getAssetId, getAssets, getAssetsObject, getBalanceForeign, getBalanceNative, getDefaultPallet, getExistentialDeposit, getNativeAssetSymbol, getNativeAssets, getNode, getNodeEndpointOption, getNodeProvider, getOtherAssets, getParaId, getRelayChainSymbol, getSupportedAssets, getSupportedPallets, getTNode, getTransferInfo, hasSupportForAsset, index$2 as openChannels, send, sendSerializedApiCall, transferRelayToPara, transferRelayToParaCommon, transferRelayToParaSerializedApiCall, index as xcmPallet };