@galacticcouncil/xc-cfg 1.0.0 → 1.1.0-pr316-e7a3e35

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.
@@ -0,0 +1,33 @@
1
+ import type { TypedApi } from 'polkadot-api';
2
+ import { hydration } from '@galacticcouncil/descriptors';
3
+ export declare const ASSET_LOCKDOWN_PERIOD_BLOCKS = 14400;
4
+ export type AssetCategory = 'External' | 'Local';
5
+ export interface AssetDepositLimit {
6
+ assetId: number;
7
+ symbol: string;
8
+ decimals: number;
9
+ limit: bigint | null;
10
+ locked: boolean;
11
+ lockedUntilBlock?: number;
12
+ lastResetBlock?: number;
13
+ baselineIssuance?: bigint;
14
+ currentIssuance: bigint;
15
+ headroom: bigint | null;
16
+ category: AssetCategory;
17
+ periodExpired: boolean;
18
+ }
19
+ export interface GlobalWithdrawLimit {
20
+ configured: boolean;
21
+ limit: bigint;
22
+ windowMs: bigint;
23
+ used: bigint;
24
+ lastUpdateMs: bigint;
25
+ headroom: bigint;
26
+ lockdown: boolean;
27
+ lockdownUntilMs?: bigint;
28
+ }
29
+ type Api = TypedApi<typeof hydration>;
30
+ export declare function getAssetDepositLimit(api: Api, assetId: number): Promise<AssetDepositLimit>;
31
+ export declare function getAllAssetDepositLimits(api: Api): Promise<Map<string, AssetDepositLimit>>;
32
+ export declare function getGlobalWithdrawLimit(api: Api): Promise<GlobalWithdrawLimit>;
33
+ export {};
@@ -1,6 +1,8 @@
1
1
  import { Asset, Parachain } from '@galacticcouncil/xc-core';
2
2
  import { hydration } from '@galacticcouncil/descriptors';
3
- import { BaseClient } from '../base';
3
+ import { BaseClient } from '../../base';
4
+ import { AssetDepositLimit, GlobalWithdrawLimit } from './circuit-breaker';
5
+ export * from './circuit-breaker';
4
6
  export declare class HydrationClient extends BaseClient<typeof hydration> {
5
7
  constructor(chain: Parachain);
6
8
  checkIfSufficient(asset: Asset): Promise<boolean>;
@@ -8,4 +10,7 @@ export declare class HydrationClient extends BaseClient<typeof hydration> {
8
10
  getAssetBalance(address: string, asset: string): Promise<bigint>;
9
11
  getSystemAccountBalance(address: string): Promise<bigint>;
10
12
  getTokensAccountsBalance(address: string, asset: string): Promise<bigint>;
13
+ getAssetDepositLimit(assetOrId: Asset | number): Promise<AssetDepositLimit>;
14
+ getAllAssetDepositLimits(): Promise<Map<string, AssetDepositLimit>>;
15
+ getGlobalWithdrawLimit(): Promise<GlobalWithdrawLimit>;
11
16
  }
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Rn=Object.defineProperty;var Ir=Object.getOwnPropertyDescriptor;var Xr=Object.getOwnPropertyNames;var Rr=Object.prototype.hasOwnProperty;var Nt=(t,e)=>{for(var s in e)Rn(t,s,{get:e[s],enumerable:!0})},_r=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Xr(e))!Rr.call(t,a)&&a!==s&&Rn(t,a,{get:()=>e[a],enumerable:!(n=Ir(e,a))||n.enumerable});return t};var Sr=t=>_r(Rn({},"__esModule",{value:!0}),t);var fm={};Nt(fm,{HydrationConfigService:()=>In,assetsMap:()=>la,builders:()=>Yn,chainsMap:()=>Ta,clients:()=>$n,dex:()=>ua,routesMap:()=>Ar,tags:()=>Zn,validations:()=>wr});module.exports=Sr(fm);var y=require("@galacticcouncil/xc-core"),Xe=new y.Asset({key:"aave",originSymbol:"AAVE"}),Re=new y.Asset({key:"ajun",originSymbol:"AJUN"}),H=new y.Asset({key:"astr",originSymbol:"ASTR"}),R=new y.Asset({key:"bnc",originSymbol:"BNC"}),_n=new y.Asset({key:"bsx",originSymbol:"BSX"}),_e=new y.Asset({key:"cfg_new",originSymbol:"CFG"}),ye=new y.Asset({key:"cru",originSymbol:"CRU"}),xe=new y.Asset({key:"dai",originSymbol:"DAI"}),ne=new y.Asset({...xe,key:"dai_mwh"}),g=new y.Asset({key:"dot",originSymbol:"DOT"}),X=new y.Asset({key:"eth",originSymbol:"ETH"}),Se=new y.Asset({key:"ena",originSymbol:"ENA"}),it=new y.Asset({key:"eurc",originSymbol:"EURC"}),Ze=new y.Asset({...it,key:"eurc_mwh"}),v=new y.Asset({key:"glmr",originSymbol:"GLMR"}),J=new y.Asset({key:"hdx",originSymbol:"HDX"}),_=new y.Asset({key:"ibtc",originSymbol:"IBTC"}),M=new y.Asset({key:"intr",originSymbol:"INTR"}),oe=new y.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),I=new y.Asset({key:"ksm",originSymbol:"KSM"}),De=new y.Asset({key:"ldo",originSymbol:"LDO"}),Le=new y.Asset({key:"laos",originSymbol:"LAOS"}),He=new y.Asset({key:"lbtc",originSymbol:"LBTC"}),ue=new y.Asset({key:"ewt",originSymbol:"EWT"}),We=new y.Asset({key:"link",originSymbol:"LINK"}),O=new y.Asset({key:"myth",originSymbol:"MYTH"}),Me=new y.Asset({key:"neuro",originSymbol:"NEURO"}),ge=new y.Asset({key:"pen",originSymbol:"PEN"}),Ve=new y.Asset({key:"paxg",originSymbol:"PAXG"}),re=new y.Asset({key:"prime",originSymbol:"PRIME"}),Ue=new y.Asset({key:"sky",originSymbol:"SKY"}),j=new y.Asset({key:"sol",originSymbol:"SOL"}),ie=new y.Asset({key:"sui",originSymbol:"SUI"}),Ke=new y.Asset({key:"susde",originSymbol:"sUSDe"}),et=new y.Asset({key:"susds",originSymbol:"sUSDS"}),we=new y.Asset({...et,key:"susds_mwh"}),Ne=new y.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new y.Asset({key:"trac",originSymbol:"TRAC"}),Ge=new y.Asset({key:"unq",originSymbol:"UNQ"}),p=new y.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new y.Asset({...p,key:"usdt_mwh"}),Xt=new y.Asset({...p,key:"usdt_eth"}),x=new y.Asset({key:"usdc",originSymbol:"USDC"}),ke=new y.Asset({...x,key:"usdc_mwh"}),Rt=new y.Asset({...x,key:"usdc_eth"}),Q=new y.Asset({key:"vastr",originSymbol:"vASTR"}),U=new y.Asset({key:"vdot",originSymbol:"vDOT"}),Ot=new y.Asset({key:"weth",originSymbol:"WETH"}),te=new y.Asset({...Ot,key:"weth_mwh"}),tt=new y.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new y.Asset({...tt,key:"wbtc_mwh"}),je=new y.Asset({key:"wsteth",originSymbol:"wstETH"}),ct=new y.Asset({key:"wud",originSymbol:"WUD"}),Dr=[Xe,Re,H,_n,_e,ye,R,xe,ne,g,Se,it,Ze,X,v,J,_,M,I,De,Le,He,ue,oe,We,O,Me,Ve,ge,re,Ue,j,ie,Ke,et,we,Oe,Ne,Ge,x,ke,Rt,p,Ce,Xt,Q,U,tt,Te,Ot,te,je,ct],la=new Map(Dr.map(t=>[t.key,t]));var Rs=require("@galacticcouncil/xc-core");var da=require("viem/chains"),Gt=new Rs.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:X,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:it,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Rs.ChainEcosystem.Ethereum,evmChain:da.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});var _s=require("@galacticcouncil/xc-core");var fa=require("viem/chains"),S=new _s.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:X,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Xe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:_e,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Ot,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Se,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ke,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:et,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ne,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:tt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:He,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:De,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:We,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ve,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ue,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:je,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:_s.ChainEcosystem.Ethereum,evmChain:fa.mainnet,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585"}});var pa=[Gt,S];var Ss=require("@galacticcouncil/xc-core");var jt=new Ss.Parachain({assetsData:[{asset:Re,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ss.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Cs=require("@galacticcouncil/xc-core");var ha={assetsData:[{asset:g,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ct,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:I,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Cs.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},k=new Cs.Parachain({...ha,key:"assethub",name:"AssetHub Polkadot"}),bt=new Cs.Parachain({...ha,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Ds=require("@galacticcouncil/xc-core");var se=new Ds.Parachain({assetsData:[{asset:H,xcmLocation:{parents:0,interior:"Here"}},{asset:g,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:p,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ds.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Ls=require("@galacticcouncil/xc-core");var Lr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],W=new Ls.Parachain({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:g,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:p,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:H,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ls.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Lr});var qt=require("@galacticcouncil/xc-core");var zt=new qt.Parachain({assetsData:[{asset:ye,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:qt.XcmVersion.v3});var Ws=require("@galacticcouncil/xc-core"),ya=require("viem");var ba=require("@polkadot-api/substrate-bindings"),Hr="ETH\0",Hs=class{async toH160(e){let s=(0,ba.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Hr),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Wr=new Hs,Sn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.ibp.network","https://rpc.lait.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Dn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],Mr=(0,ya.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Sn,webSocket:Dn},default:{http:Sn,webSocket:Dn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Ws.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:Xe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Re,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:R,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:ye,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:g,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ne,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:X,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Se,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:oe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:re,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:ue,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:De,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:I,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Le,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:He,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:We,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ve,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:O,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Me,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:ge,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ue,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:j,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ie,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ke,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:et,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:we,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ne,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Oe,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ge,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:x,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ke,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ze,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:Rt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:p,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Ce,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Xt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:tt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Te,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Ot,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:te,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:je,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ct,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Ws.ChainEcosystem.Polkadot,evmChain:Mr,evmResolver:Wr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Dn,rpcs:Sn});var $t=require("@galacticcouncil/xc-core");var ve=new $t.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:g,decimals:10,id:{Token:g.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:U,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:$t.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:$t.XcmVersion.v3});var Ms=require("@galacticcouncil/xc-core");var Jt=new Ms.Parachain({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ms.ChainEcosystem.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});var Vs=require("@galacticcouncil/xc-core"),xa=require("viem");var Vr=(0,xa.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),E=new Vs.EvmParachain({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ne,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ze,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:j,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:oe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:re,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:we,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ie,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ke,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Ce,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Te,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:te,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:g,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Vs.ChainEcosystem.Polkadot,evmChain:Vr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92"},ws:"wss://wss.api.moonbeam.network"});var Us=require("@galacticcouncil/xc-core");var yt=new Us.Parachain({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Us.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});var Ks=require("@galacticcouncil/xc-core");var Qt=new Ks.Parachain({assetsData:[{asset:Me,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Ks.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var Yt=require("@galacticcouncil/xc-core");var Zt=new Yt.Parachain({assetsData:[{asset:ge,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Yt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Yt.XcmVersion.v3});var Ns=require("@galacticcouncil/xc-core");var Ur={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ns.ChainEcosystem.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},ga=new Ns.Parachain({...Ur,key:"polkadot"});var Os=require("@galacticcouncil/xc-core");var es=new Os.Parachain({assetsData:[{asset:Ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Os.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var ts=require("@galacticcouncil/xc-core");var ss=new ts.Parachain({assetsData:[{asset:ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ts.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:ts.XcmVersion.v3});var Aa=[jt,k,bt,se,W,zt,d,Jt,Qt,ve,E,yt,Zt,ga,es,ss];var Gs=require("@galacticcouncil/xc-core");var xt=new Gs.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:j,decimals:9},{asset:oe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:re,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Gs.ChainEcosystem.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var wa=[xt];var js=require("@galacticcouncil/xc-core");var ns=new js.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:js.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Ca=[ns];var qs=require("@galacticcouncil/xc-core");var mt=new qs.Parachain({assetsData:[{asset:I,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:qs.ChainEcosystem.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});var zs=require("@galacticcouncil/xc-core");var as=new zs.Parachain({assetsData:[{asset:_n,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:I,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:zs.ChainEcosystem.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var ka=[mt,as];var Kr=[...pa,...Aa,...wa,...Ca,...ka],Ta=new Map(Kr.map(t=>[t.key,t]));var jo=require("@galacticcouncil/xc-core");var ea=require("@galacticcouncil/xc-core");var Yn={};Nt(Yn,{AssetMinBuilder:()=>gt,BalanceBuilder:()=>r,ContractBuilder:()=>D,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>lt,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>vs,MoveBuilder:()=>Qn,ProgramBuilder:()=>Bs,XcmTransferType:()=>le,XcmVersion:()=>ut});var $s=require("@galacticcouncil/xc-core");function gt(){return{assetRegistry:Nr,assets:Or}}function Nr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new $s.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new $s.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Or(){return{asset:()=>({build:({asset:t})=>new $s.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var ks=require("@galacticcouncil/xc-core");function va(){return{erc20:jr,native:Gr}}function Gr(){return{build:({address:t})=>new ks.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function jr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new ks.ContractConfig({abi:ks.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var os=require("@galacticcouncil/xc-core"),rs=require("@galacticcouncil/common");function Ba(){return{assets:qr,system:$r,tokens:Jr,ormlTokens:Qr,foreignAssets:zr}}function qr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,rs.encodeAssetId)(n);return new os.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function zr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let o=(0,rs.encodeLocation)(a);return new os.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function $r(){return{account:()=>({build:({address:t})=>new os.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),a=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=a?n-a:0n}})})}}function Jr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,rs.encodeAssetId)(n);return new os.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,rs.encodeAssetId)(n);return new os.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var Ln=require("@galacticcouncil/xc-core");function Pa(){return{native:Yr,token:Zr}}function Yr(){return{build:({address:t})=>new Ln.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Zr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Ln.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var Ea=require("@galacticcouncil/xc-core");function Fa(){return{native:ei}}function ei(){return{build:({address:t})=>new Ea.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:va,substrate:Ba,solana:Pa,sui:Fa}}var _t=require("@galacticcouncil/xc-core"),Ia=require("viem"),ti=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],o=s.map(i=>(0,Ia.encodeFunctionData)({abi:_t.Abi[i.module],functionName:i.func,args:i.args}));return new _t.ContractConfig({abi:_t.Abi.Batch,address:_t.Precompile.Batch,args:[n,a,o,[]],func:"batchAll",module:"Batch"})}}),Xa=()=>({batchAll:ti});var cs=require("@galacticcouncil/xc-core");function is(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function qe(t){return typeof t=="object"?Object.values(t)[0]:t}function Ra(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=cs.Wormhole.fromChain(i),c=i.getAssetId(n);return new cs.ContractConfig({abi:cs.Abi.Erc20,address:qe(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var ms=require("@galacticcouncil/xc-core");var _a=require("@galacticcouncil/common"),Sa=require("polkadot-api"),Da=require("@polkadot-api/utils"),{H160:si,isEvmAddress:ni}=_a.h160;function ai(t){let e=ni(t)?si.toAccount(t):t;return(0,Da.toHex)((0,Sa.AccountId)().enc(e))}var oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a}=t,o=a.chain,i=ms.Basejump.fromChain(o),m=o.getAssetId(n);return new ms.ContractConfig({abi:ms.Abi.Basejump,address:i.getAddress(),args:[qe(m),s,ai(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),La=()=>({bridgeViaWormhole:oi});var ze=require("@galacticcouncil/xc-core"),Wa=require("@galacticcouncil/common"),{Ss58Addr:Ha}=ze.addr;function ri(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Hn(t,e){let s=t.getAssetId(e);return typeof s=="string"?ri(s):s}function Ma(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Hn(a.chain,s);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ha.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Hn(a.chain,s),i=Hn(a.chain,a.destinationFeeBalance),m=Wa.big.toBigInt(n.fee.amount,n.fee.decimals);return new ze.ContractConfig({abi:ze.Abi.PolkadotXcm,address:ze.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ha.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var At=require("@galacticcouncil/xc-core");var{Ss58Addr:ii}=At.addr,ci=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=At.Snowbridge.fromChain(i),l=i.getAssetId(n),h=qe(l),b=n.originSymbol==="ETH",A=o.feeBreakdown.bridgeFeeInDot,T=o.fee.amount;return new At.ContractConfig({abi:At.Abi.Snowbridge,address:c.getGateway(),args:[h,m.parachainId,[1,ii.getPubKey(e)],A,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),Va=()=>({sendToken:ci});var V=require("@galacticcouncil/xc-core"),Wn=require("@solana/web3.js"),Js=require("@solana/spl-token");var mi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=V.Wormhole.fromChain(o.chain),c=V.Wormhole.fromChain(t.moonchain),l=V.Precompile.Bridge,h=o.chain.getAssetId(a),b=0,A=await V.mrl.createPayload(i.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:m.getTokenBridge(),args:[qe(h),n,c.getWormholeId(),c.normalizeAddress(l),b,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),ui=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:o}=e,i=V.Wormhole.fromChain(a.chain),m=V.Wormhole.fromChain(t.moonchain),c=V.Precompile.Bridge,l=0,h=await V.mrl.createPayload(o.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,h.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),li=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=V.Wormhole.fromChain(m),h=V.Wormhole.fromChain(c),b=c.getAssetId(n),A=e;if(c.isSolana()){let L=b==="SOL"?Js.NATIVE_MINT:new Wn.PublicKey(b);A=(await(0,Js.getAssociatedTokenAddress)(L,new Wn.PublicKey(e))).toBase58()}let T=m.getAssetId(n),F=0,K=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:l.getTokenBridge(),args:[qe(T),s,h.getWormholeId(),h.normalizeAddress(A),F,K],func:"transferTokens",module:"TokenBridge"})}}),di=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,o=V.Wormhole.fromChain(n.chain),i=V.Wormhole.fromChain(a.chain),m=0,c=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Ua=()=>({transferTokens:li,transferTokensWithPayload:mi,wrapAndTransferETH:di,wrapAndTransferETHWithPayload:ui});var St=require("@galacticcouncil/xc-core");var fi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=St.Wormhole.fromChain(m),h=St.Wormhole.fromChain(c),b=0,A=0,T=m.getAssetId(n);return new St.ContractConfig({abi:St.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[qe(T),s,b,h.getWormholeId(),h.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ka=()=>({transferTokensWithRelay:fi});function Na(){return{TokenBridge:Ua,TokenRelayer:Ka}}function D(){return{Batch:Xa,Erc20:Ra,Basejump:La,PolkadotXcm:Ma,Snowbridge:Va,Wormhole:Na}}var Ga=require("@galacticcouncil/xc-core"),Oa="AssetConversion",pi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,o=n.destinationFeeSwap||n.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(m),b=i.amount+i.amount*BigInt(t.slippage)/100n,A=m.amount;return new Ga.ExtrinsicConfig({module:Oa,func:e,getTx:T=>T.getUnsafeApi().tx[Oa][e]({path:[l,h],amount_out:A,amount_in_max:b,send_to:s,keep_alive:!0})})}}},ja=()=>({swapTokensForExactTokens:pi});var Qs=require("@galacticcouncil/descriptors"),qa=require("@galacticcouncil/xc-core"),hi="Assets",bi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let o=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new qa.ExtrinsicConfig({module:hi,func:t,getTx:l=>l.getTypedApi(Qs.hub).tx.Assets.transfer({id:Number(c),target:Qs.MultiAddress.Id(n),amount:m})})}}},za=()=>({transfer:bi});var Ja=require("@galacticcouncil/xc-core"),$a="Balances",yi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Ja.ExtrinsicConfig({module:$a,func:e,getTx:n=>n.getUnsafeApi().tx[$a][e]({dest:s,keep_alive:t})})}},Qa=()=>({transferAll:yi});var Ya=require("@galacticcouncil/descriptors"),Za=require("@galacticcouncil/xc-core"),xi="Router",gi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(o),h=c.getMetadataAssetId(i),b=i.amount,A=o.amount+o.amount*BigInt(t.slippage)/100n;return new Za.ExtrinsicConfig({module:xi,func:"buy",getTx:T=>T.getTypedApi(Ya.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:b,max_amount_in:A,route:m})})}}),eo=()=>({buy:gi});var so=require("@galacticcouncil/xc-core"),to="Utility",Ai=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new so.ExtrinsicConfig({module:to,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[to][e]({calls:o})}})}}},no=()=>({batchAll:Ai});var Ys=require("@galacticcouncil/xc-core"),oo=require("polkadot-api"),ro=require("viem");var ut=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(ut||{}),le=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(le||{});var ao="EthereumXcm",wi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=(0,ro.encodeFunctionData)({abi:Ys.Abi[n.module],functionName:n.func,args:n.args});return new Ys.ExtrinsicConfig({module:ao,func:e,getTx:i=>i.getUnsafeApi().tx[ao][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:oo.Binary.fromHex(o),access_list:void 0}}})})}}},Mn=()=>({transact:wi});var Ct=require("@galacticcouncil/xc-core"),tn=require("@galacticcouncil/common");var ds=require("@galacticcouncil/xc-core"),f=require("@galacticcouncil/descriptors");var io=require("@galacticcouncil/descriptors"),de=340282366920938463463374607431768211455n,Dt="0x0000000000000000000000000000000000000000000000000000000000000000",us={parents:1,interior:io.XcmV3Junctions.Here()},co=0,mo=1e3,uo=1002,lo=1,Lt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var fo="0x0000000000000000000000000000000000000000";var ee=require("@galacticcouncil/descriptors");var po=require("@galacticcouncil/common"),Vn=require("@galacticcouncil/descriptors"),ho=require("@polkadot-api/substrate-bindings"),bo=require("@polkadot-api/utils");function q(t){if(t.length===42&&t.startsWith("0x"))return Vn.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,ho.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Vn.XcmV3Junction.AccountId32({id:(0,bo.toHex)(s.publicKey),network:void 0})}function ls(t,e,s){return po.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Un=require("@galacticcouncil/xc-core");function yo(t,e){let s=Un.multiloc.findNestedKey(t,"GeneralIndex"),n=Un.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,o=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function Y(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Zs={};Nt(Zs,{ETHER_TOKEN_ADDRESS:()=>Kn,erc20Location:()=>ki,erc20LocationReanchored:()=>Ti,ethereumLocation:()=>go,parachainLocation:()=>Ci});var Be=require("@galacticcouncil/descriptors"),Kn="0x0000000000000000000000000000000000000000",xo=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function go(t){return{parents:2,interior:Be.XcmV3Junctions.X1(xo(t))}}function Ci(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function ki(t,e){return e===Kn?go(t):{parents:2,interior:Be.XcmV3Junctions.X2([xo(t),Be.XcmV3Junction.AccountKey20({key:e})])}}function Ti(t){return t===Kn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:t}))}}var Nn=require("@galacticcouncil/common"),Ao=require("@galacticcouncil/xc-core");function Z(t,e){return vi(e)>=4?(0,Nn.encodeLocation)(t):Bi(t)}function vi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Bi(t){return{type:"Concrete",value:(0,Nn.encodeLocation)(t)}}var Pi=1e3;function Ei(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(a=>a&&typeof a=="object"&&"GlobalConsensus"in a):!1}function Fi(t){if(t)return Ei(t)?Pi:Ao.multiloc.findParachain(t)}function wo(t,e,s,n){let a=e.getAssetXcmLocation(t),o=Fi(a),i=n?.parachainId??s.parachainId;if(o&&i!==o)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${n.name} (${n.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function On(t,e){let s="V4",n=Z(Y(e,t),s),a=Dt;return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:us,fun:ee.XcmV3MultiassetFungibility.Fungible(de)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(de)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:us,fun:ee.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(q(Lt))}}),ee.XcmV4Instruction.SetTopic(a)]}var st=require("@galacticcouncil/descriptors");function Co(t,e){let s="V4",n=Z(Y(e,t),s),a=en("V4",q(fo),q(Lt),n,Dt);return[st.XcmV4Instruction.WithdrawAsset([{id:us,fun:st.XcmV3MultiassetFungibility.Fungible(de)},{id:n,fun:st.XcmV3MultiassetFungibility.Fungible(de)}]),st.XcmV4Instruction.ClearOrigin(),st.XcmV4Instruction.BuyExecution({fees:{id:us,fun:st.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:st.XcmV3WeightLimit.Unlimited()}),...a.value]}var P=require("@galacticcouncil/descriptors");function ko(t,e){let s="V4",n=Z(Y(e,t),s),a=Dt;return[P.XcmV4Instruction.WithdrawAsset([{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(de)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(q(Lt))}}),P.XcmV4Instruction.SetTopic(a)]}function Gn(t,e){let s="V4",n=Z(Y(e,t),s);return[P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(q(Lt))}})]}function To(t,e,s){let n="V4",a=Z(Y(e,t),n),o=Dt,i=Gn(t,s);return[P.XcmV4Instruction.WithdrawAsset([{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(de)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositReserveAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:P.XcmV3Junctions.X1(P.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),P.XcmV4Instruction.SetTopic(o)]}var vo=[ds.ChainEcosystem.Polkadot,ds.ChainEcosystem.Kusama],Ii={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},Xi=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ri=(t,e)=>!t.ecosystem||!e.ecosystem?!1:vo.includes(t.ecosystem)&&vo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Bo=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},nt=(t,e,s)=>{if(Ri(e,s)){let a=s.ecosystem===ds.ChainEcosystem.Polkadot?f.XcmV3JunctionNetworkId.Polkadot():f.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:f.XcmV3Junctions.X2([f.XcmV3Junction.GlobalConsensus(a),f.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===co)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?mo:s.parachainId;return{type:t,value:{parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(n))}}},Ht=(t,e)=>({type:t,value:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),jn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Xi(s)?Ii:s}}:{type:e},wt=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),Po=(t,e,s)=>({type:t,value:[f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var en=(t,e,s,n,a)=>{let o=a;return{type:t,value:[f.XcmV4Instruction.SetAppendix([f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(s)}})]),f.XcmV4Instruction.InitiateReserveWithdraw({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllOf({id:n,fun:f.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Zs.ethereumLocation(lo),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:_i(n),fun:f.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),f.XcmV4Instruction.SetTopic(o)]}),f.XcmV4Instruction.SetTopic(o)]}},_i=t=>{let e=ds.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},Eo=(t,e,s,n,a,o)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.Transact({origin_kind:f.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:a}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]}),Fo=(t,e,s,n,a,o)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(o)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var fe="PolkadotXcm",Si=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=q(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=Z(Y(i,n.fee),c),b=wt(l,e),A=wt(h,n.fee.amount),T="limited_reserve_transfer_assets";return new Ct.ExtrinsicConfig({module:fe,func:T,getTx:F=>{let K=F.getUnsafeApi().tx[fe][T];return s.key===n.fee.key?K({dest:nt(c,i,m),beneficiary:Ht(c,o),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):yo(l,h)?K({dest:nt(c,i,m),beneficiary:Ht(c,o),assets:{type:c,value:[A,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):K({dest:nt(c,i,m),beneficiary:Ht(c,o),assets:{type:c,value:[b,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Di=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=q(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=wt(l,e),b=nt(c,i,m),A=Ht(c,o),T={type:c,value:[h]},F="limited_teleport_assets";return new Ct.ExtrinsicConfig({module:fe,func:F,getTx:K=>K.getUnsafeApi().tx[fe][F]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Li=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=q(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=Z(Y(i,s),c),h=wt(l,e),b=nt(c,i,m),A=Ht(c,o),T={type:c,value:[h]},F="reserve_transfer_assets";return new Ct.ExtrinsicConfig({module:fe,func:F,getTx:K=>K.getUnsafeApi().tx[fe][F]({dest:b,beneficiary:A,assets:T,fee_asset_item:0})})}}),Hi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=q(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=wt(l,e),b=nt(c,i,m),A=Ht(c,o),T={type:c,value:[h]},F="transfer_assets";return new Ct.ExtrinsicConfig({module:fe,func:F,getTx:K=>K.getUnsafeApi().tx[fe][F]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Wi=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let l="V4",h=m.chain,b=a.chain,A=a.fee.amount,T=a.fee;c&&(b=c.chain,A=tn.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let F=q(i),K=c||b.usesCexForwarding?ls(h,i,b):e,L=q(K),{transferType:$}=t,G=Z(Y(h,s),l),C=Z(Y(h,T),l),Ye=wt(G,n),It=wt(C,A),ot=s.isEqual(T),pt=nt(l,h,b),rt={type:l,value:ot?[Ye]:[It,Ye]},ht=jn(l,$,G),ws={type:l,value:ot?G:C},Xn=jn(l,$,C),Kt;Bo(G)&&a.chain.isEvmChain()?Kt=en(l,L,F,G,o):Kt=Po(l,L,rt.value.length);let Xs="transfer_assets_using_type_and_then";return new Ct.ExtrinsicConfig({module:fe,func:Xs,getTx:Fr=>Fr.getUnsafeApi().tx[fe][Xs]({dest:pt,assets:rt,assets_transfer_type:ht,remote_fees_id:ws,fees_transfer_type:Xn,custom_xcm_on_dest:Kt,weight_limit:{type:"Unlimited"}})})}}),Mi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,l=ls(m,n,c),h=q(l),{fee:b}=o,A=Z(Y(c,b),i),T=tn.big.toBigInt(e.fee,b.decimals);return new Ct.ExtrinsicConfig({module:fe,func:t,getTx:F=>F.getUnsafeApi().tx[fe][t]({dest:nt(i,m,c),message:Eo(i,h,A,T,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:o,sender:i,source:m,destination:c}=s,l="V4",h=m.chain,b=c.chain,A=ls(h,i,b),T=q(A),F=q(a),K=Z(Y(b,o),l),{fee:L}=c,$=tn.big.toBigInt(e.fee,L.decimals),G=n>L.amount?n-(L.amount+$):n;return new Ct.ExtrinsicConfig({module:fe,func:t,getTx:C=>C.getUnsafeApi().tx[fe][t]({dest:nt(l,h,b),message:Fo(l,T,K,G,$,F)})})}})}},qn=()=>({limitedReserveTransferAssets:Si,limitedTeleportAssets:Di,reserveTransferAssets:Li,transferAssets:Hi,transferAssetsUsingTypeAndThen:Wi,send:Mi});var Ro=require("@galacticcouncil/xc-core"),_o=require("@galacticcouncil/common");var Ts=require("@galacticcouncil/descriptors"),Io=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X2([Ts.XcmV3Junction.Parachain(e.parachainId),s])}};var Xo="XTokens",Vi=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:o})=>{let i=o.chain,m=n.chain,c="V3",l=m.usesCexForwarding?ls(i,a,m):t,h=q(l),b=i.getAssetId(s),A=(0,_o.encodeAssetId)(b),T="transfer";return new Ro.ExtrinsicConfig({module:Xo,func:T,getTx:F=>F.getUnsafeApi().tx[Xo][T]({currency_id:A,amount:e,dest:Io(c,m,h),dest_weight_limit:{type:"Unlimited"}})})}}),zn=()=>({transfer:Vi});function u(){return{assetConversion:ja,assets:za,balances:Qa,ethereumXcm:Mn,polkadotXcm:qn,router:eo,utility:no,xTokens:zn}}function lt(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}var Je=require("@galacticcouncil/xc-core");var $n={};Nt($n,{AssethubClient:()=>pe,BaseClient:()=>Pe,HydrationClient:()=>$e});var So=require("@galacticcouncil/common"),sn=require("@galacticcouncil/descriptors"),Pe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??sn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:o}=n;return BigInt(a)-BigInt(o)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(s);if(!a)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let o=(0,So.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,sn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var at=require("@galacticcouncil/descriptors"),Do=require("@galacticcouncil/common"),nn=require("@polkadot-api/substrate-bindings"),Lo=require("@polkadot-api/utils");var pe=class extends Pe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=(0,Do.encodeLocation)(n);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(n),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,Lo.toHex)((0,nn.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=nn.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=at.XcmVersionedLocation.V5({parents:1,interior:at.XcmV5Junctions.X1(at.XcmV5Junction.Parachain(s))}),a=at.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,at.XcmVersionedXcm.V4(e),a);if(!o.success)throw Error("Can't query XCM delivery fee.");let i=o.value.value.find(c=>{let l=c.id;return l&&l.parents&&l.parents===1&&l.interior.type==="Here"});if(!i)throw Error("Can't find XCM delivery fee in DOT.");let m=i.fun.value;if(typeof m=="bigint")return m;throw Error("Can't parse delivery fee.")}};var Ho=require("@galacticcouncil/descriptors");var $e=class extends Pe{constructor(e){super(e,Ho.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),a=await this.api().query.AssetRegistry.Assets.getValue(n);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:o}=n;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}};function Ui(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=Je.Wormhole.fromChain(n),i=Je.Wormhole.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Je.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Ki(){return{TokenRelayer:Ui}}function Ni(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=Je.Snowbridge.fromChain(a),m=new Pe(o),c=new pe(t.hub),l=On(e,o),[h,b]=await Promise.all([m.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,o.parachainId)]),A=b+is(h,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:Je.Abi.Snowbridge,address:i.getGateway(),args:[T,o.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new pe(t.hub),i=Co(e,a),m=On(e,a),[c,l,h,b,A]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,uo),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+is(h,25n)+b+is(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:A}}}})}}function Oi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(wo(e,a,o,i),i){let A=new Pe(o),T=new Pe(i),F=Gn(e,o),K=To(e,i,o),[L,$]=await Promise.all([A.calculateDestinationFee(F,e),T.calculateDestinationFee(K,e)]),G=$+L,C=is(G,20n),Ye=C-G;return{amount:C,breakdown:{reserveFee:$,destinationFee:L,margin:Ye}}}let m=new Pe(o),c=ko(e,o),l=await m.calculateDestinationFee(c,e),h=is(l,20n),b=h-l;return{amount:h,breakdown:{totalFee:l,margin:b}}}})}}function Gi(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=Je.Basejump.fromChain(s),a=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Je.Abi.Basejump,address:n.getAddress(),args:[a],functionName:"quoteFee"})}}})}}function w(){return{Basejump:Gi,XcmPaymentApi:Oi,Snowbridge:Ni,Wormhole:Ki}}var ji="0";function qi(){return{build:async({address:t,chain:e})=>{let n=await new $e(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():ji,o=e.findAssetById(a);return o?o.asset:J}}}var zi=()=>({accountCurrencyMap:qi});function vs(){return{multiTransactionPayment:zi}}var he=require("@galacticcouncil/xc-core"),ce=require("@solana/spl-token"),Qe=require("@solana/web3.js"),Jn=require("@wormhole-foundation/sdk-connect"),kt=require("@wormhole-foundation/sdk-solana-tokenbridge"),$i=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=he.Wormhole.fromChain(m),h=he.Wormhole.fromChain(t.moonchain),b=he.Precompile.Bridge,A=await he.mrl.createPayload(i.chain,s),T=new Qe.PublicKey(o),F=new Jn.UniversalAddress(b),K=h.getWormholeId(),L=T,$=0,G=Qe.Keypair.generate(),C=Qe.Keypair.generate(),Ye=await(0,ce.getMinimumBalanceForRentExemptAccount)(c.connection),It=Qe.SystemProgram.createAccount({fromPubkey:L,newAccountPubkey:C.publicKey,lamports:Ye,space:ce.ACCOUNT_SIZE,programId:ce.TOKEN_PROGRAM_ID}),ot=Qe.SystemProgram.transfer({fromPubkey:L,lamports:n,toPubkey:C.publicKey}),pt=(0,ce.createInitializeAccountInstruction)(C.publicKey,ce.NATIVE_MINT,L),rt=(0,kt.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),C.publicKey,L,n),ht=(0,kt.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,G.publicKey,C.publicKey,ce.NATIVE_MINT,$,n,F.toUint8Array(),K,A.toU8a()),ws=(0,ce.createCloseAccountInstruction)(C.publicKey,L,L);return new he.ProgramConfig({instructions:[It,ot,pt,rt,ht,ws],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ye)})}})}),Ji=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,l=c,h=he.Wormhole.fromChain(c),b=he.Wormhole.fromChain(t.moonchain),A=he.Precompile.Bridge,T=await he.mrl.createPayload(m.chain,s),F=new Qe.PublicKey(i),K=o.chain.getAssetId(a),L=new Qe.PublicKey(K),$=await(0,ce.getAssociatedTokenAddress)(L,F),G=new Jn.UniversalAddress(A),C=b.getWormholeId();if(await(0,kt.getWrappedMeta)(l.connection,h.getTokenBridge(),L).catch(ht=>null).then(ht=>ht!=null))throw new Error("Wrapped assets not supported yet");let It=0,ot=Qe.Keypair.generate(),pt=(0,kt.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),$,F,n),rt=(0,kt.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,ot.publicKey,$,L,It,n,G.toUint8Array(),C,T.toU8a());return new he.ProgramConfig({instructions:[pt,rt],signers:[ot],func:"TransferWithPayload",module:"TokenBridge"})}})}),Wo=()=>({transferNativeWithPayload:$i,transferTokenWithPayload:Ji});function Mo(){return{TokenBridge:Wo}}function Bs(){return{Wormhole:Mo}}var dt=require("@galacticcouncil/xc-core"),Vo=require("@mysten/sui/transactions"),an=require("@mysten/sui/utils"),Uo=require("@wormhole-foundation/sdk-connect"),Ps=require("@wormhole-foundation/sdk-sui"),Qi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=dt.Wormhole.fromChain(m),h=dt.Wormhole.fromChain(t.moonchain),b=0,A=dt.Precompile.Bridge,T=await dt.mrl.createPayload(i.chain,s),F=new Uo.UniversalAddress(A),K=h.getWormholeId(),L=an.SUI_TYPE_ARG,[$,G]=await Promise.all([(0,Ps.getPackageId)(c.client,l.coreBridge),(0,Ps.getPackageId)(c.client,l.tokenBridge)]),C=new Vo.Transaction,[Ye]=C.splitCoins(C.gas,[C.pure.u64(n)]),[It]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[ot]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[L]}),pt=!1,rt=await(async()=>{let Kt=await(0,Ps.getOldestEmitterCapObjectId)(c.client,$,o);if(Kt!==null)return C.object(Kt);{let[Xs]=C.moveCall({target:`${$}::emitter::new`,arguments:[C.object(l.coreBridge)]});return pt=!0,Xs}})(),[ht,ws]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[rt,ot,Ye,C.pure.u16(K),C.pure.vector("u8",F.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[L]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[ws],typeArguments:[L]});let[Xn]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),ht],typeArguments:[L]});return C.moveCall({target:`${$}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),It,Xn,C.object(an.SUI_CLOCK_OBJECT_ID)]}),pt&&C.transferObjects([rt],C.pure.address(o)),new dt.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ko=()=>({transferNativeWithPayload:Qi});function No(){return{TokenBridge:Ko}}function Qn(){return{Wormhole:No}}var Zn={};Nt(Zn,{Tag:()=>ft});var ft=(o=>(o.Basejump="Basejump",o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(ft||{});function Oo(t,e){return new ea.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:X,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:D().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}function Go(t,e){return new ea.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:X,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:w().Basejump().quoteFee(),asset:t}},contract:D().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Yi=[Oo(it,Ze)],Zi=[Go(it,Ze)],qo=new jo.ChainRoutes({chain:Gt,routes:[...Yi,...Zi]});var Wt=require("@galacticcouncil/xc-core");var ta=require("@galacticcouncil/xc-core");function fs(t,e){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:X,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:D().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}function me(t,e){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:X,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:X}},contract:D().Snowbridge().sendToken(),tags:["Snowbridge"]})}var ec=[new Wt.AssetRoute({source:{asset:X,balance:r().evm().native(),destinationFee:{asset:X,balance:r().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:D().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),fs(xe,ne),fs(tt,Te),fs(x,ke),fs(p,Ce),fs(et,we)],tc=[new Wt.AssetRoute({source:{asset:X,balance:r().evm().native(),fee:{asset:X,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:X,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:X}},contract:D().Snowbridge().sendToken(),tags:["Snowbridge"]}),me(Xe,Xe),me(_e,_e),me(Se,Se),me(Ve,Ve),me(Ke,Ke),me(Ne,Ne),me(He,He),me(De,De),me(We,We),me(Ue,Ue),me(Oe,Oe),me(je,je),me(x,Rt),me(p,Xt)],Qf=[new Wt.AssetRoute({source:{asset:X,balance:r().evm().native(),destinationFee:{asset:X,balance:r().evm().erc20()}},destination:{chain:E,asset:te,fee:{amount:0,asset:te}},contract:D().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Wt.AssetRoute({source:{asset:xe,balance:r().evm().erc20(),fee:{asset:X,balance:r().evm().native()},destinationFee:{asset:xe,balance:r().evm().erc20()}},destination:{chain:E,asset:ne,fee:{amount:0,asset:ne}},contract:D().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],zo=new Wt.ChainRoutes({chain:S,routes:[...ec,...tc]});var $o=[qo,zo];var Tt=require("@galacticcouncil/xc-core");var on=require("@galacticcouncil/xc-core");var Mt=0,sc=t=>{let{source:e}=t;return!!e.feeSwap},nc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Jo=u().assetConversion().swapTokensForExactTokens({slippage:30});function ac(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().assets().account()},min:gt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:lt(nc,Jo).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function rn(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:gt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:lt(sc,Jo).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Vt(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().assets().account()},min:gt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function cn(t){return ac(t,d,.02)}var oc=[new Tt.AssetRoute({source:{asset:g,balance:r().substrate().system().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().system().account()},min:gt().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Tt.AssetRoute({source:{asset:I,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:I,fee:{amount:1e-4,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Vt(p,d,.02),Vt(x,d,.02),cn(ct)],rc=[new Tt.AssetRoute({source:{asset:I,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:mt,asset:I,fee:{amount:.001,asset:I}},extrinsic:u().polkadotXcm().transferAssets()})],ic=[Vt(p,E,.25),Vt(x,E,.25)],cc=[Vt(p,W,.03),Vt(x,W,.03)],mc=[new Tt.AssetRoute({source:{asset:O,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Mt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:yt,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Qo=new Tt.ChainRoutes({chain:bt,routes:[rn(p,d,.02),rn(x,d,.02),rn(g,d,.001)]}),Yo=new Tt.ChainRoutes({chain:k,routes:[...oc,...rc,...ic,...cc,...mc]});var Ee=require("@galacticcouncil/xc-core");var uc=[new Ee.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:H,fee:{amount:.044306118,asset:H}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ee.AssetRoute({source:{asset:R,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:v,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:_,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:U,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:Q,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:p,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Zo=new Ee.ChainRoutes({chain:se,routes:[...uc]});var be=require("@galacticcouncil/xc-core");var lc=[new be.AssetRoute({source:{asset:R,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:U,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:Q,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new be.AssetRoute({source:{asset:H,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:se}),asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:v,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],dc=[new be.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],er=new be.ChainRoutes({chain:W,routes:[...lc,...dc]});var Ae=require("@galacticcouncil/xc-core");var fc="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===fc?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),z=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:B()});var vt=require("@galacticcouncil/xc-core");var pc=.9,hc=1,bc=1,mn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},un=u().router().buy({slippage:30});function N(t,e,s){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function ps(t,e,s){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Bt(t,e){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function ln(t){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:lt(mn,un).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function yc(t,e,s="LocalReserve"){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:bc,asset:v}},extrinsic:lt(mn,un).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Pt(t){return yc(t,E,"DestinationReserve")}function xc(t,e,s,n,a,o){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:lt(mn,un).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:pc})]),transact:{chain:E,fee:{amount:hc,asset:v,balance:B()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function Fe(t,e,s){return xc(t,e,s,0,D().Batch().batchAll([D().Erc20().approve(n=>n.getTokenBridge()),D().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function ae(t,e,s){return new vt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:s,asset:e,fee:{amount:w().Snowbridge().calculateOutboundFee({hub:k}),asset:g}},extrinsic:lt(mn,un).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var gc=[Bt(g,k),Bt(I,k),Bt(p,k),Bt(x,k),ln(ct)],Ac=[N(H,se),N(R,se,W),N(v,se,E),new Ae.AssetRoute({source:{asset:_,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:M,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),N(U,se,W),N(Q,se,W),N(p,se,k),N(x,se,k)],wc=[N(R,W),N(U,W),N(Q,W),N(H,W,se),N(v,W,E),new Ae.AssetRoute({source:{asset:_,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),N(p,W,k),N(x,W,k),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Cc=[ps(_,ve,62e-8),ps(M,ve,.0019213457),ps(J,ve,.5),ps(p,ve,.3),ps(x,ve,.3),new Ae.AssetRoute({source:{asset:U,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:U,fee:{amount:.01,asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:g,fee:{amount:.05,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],kc=[N(J,E),N(v,E),N(p,E,k),N(x,E,k),Pt(ne),Pt(we),Pt(ke),Pt(Ce),Pt(Te),Pt(te),Pt(j)],Tc=[new Ae.AssetRoute({source:{asset:O,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:yt,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],vc=[N(Ge,es)],Bc=[new Ae.AssetRoute({source:{asset:ye,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:zt,asset:ye,fee:{amount:.04,asset:ye}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Pc=[N(Le,Jt)],Ec=[new Ae.AssetRoute({source:{asset:ue,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ss,asset:ue,fee:{amount:.02,asset:ue}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Fc=[new Ae.AssetRoute({source:{asset:ge,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Zt,asset:ge,fee:{amount:1.1,asset:ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ic=[N(Me,Qt)],Xc=[N(Re,jt)],Rc=[Fe(Ze,it,Gt)],_c=[Fe(ne,xe,S),Fe(te,X,S),Fe(Te,tt,S),Fe(Ce,p,S),Fe(ke,x,S),Fe(we,et,S)],Sc=[ae(X,X,S),ae(Xe,Xe,S),ae(_e,_e,S),ae(Se,Se,S),ae(Ve,Ve,S),ae(Ke,Ke,S),ae(Ne,Ne,S),ae(Oe,Oe,S),ae(He,He,S),ae(De,De,S),ae(We,We,S),ae(Ue,Ue,S),ae(je,je,S),ae(Rt,x,S),ae(Xt,p,S)],Dc=[Fe(j,j,xt),Fe(oe,oe,xt),Fe(re,re,xt)],Lc=[Fe(ie,ie,ns)],Hc=[Bt(g,bt),Bt(p,bt),Bt(x,bt)],tr=new Ae.ChainRoutes({chain:d,routes:[...Xc,...gc,...Ac,...Rc,...wc,...Hc,...Bc,...Sc,..._c,...Cc,...Pc,...Ec,...kc,...Tc,...Ic,...Fc,...Dc,...Lc,...vc]});var Ut=require("@galacticcouncil/xc-core");var sa=()=>r().substrate().tokens().accounts();function dn(t,e){return new Ut.AssetRoute({source:{asset:t,balance:sa(),fee:{asset:M,balance:sa()},destinationFee:{balance:sa()}},destination:{chain:d,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var Wc=[new Ut.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Ut.AssetRoute({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Ut.AssetRoute({source:{asset:J,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:.5,asset:J}},extrinsic:u().xTokens().transfer()}),dn(U,W),dn(p,k),dn(x,k),dn(g,k)],sr=new Ut.ChainRoutes({chain:ve,routes:[...Wc]});var Ft=require("@galacticcouncil/xc-core");var na=require("@galacticcouncil/xc-core");function Mc(t,e,s){return new na.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:D().PolkadotXcm().transferAssetsToPara32()})}function Vc(t,e,s){return new na.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:D().PolkadotXcm().transferAssetsToPara32()})}function Et(t,e){return Mc(t,d,e)}function fn(t,e){return Vc(t,d,e)}var Uc=[new Ft.AssetRoute({source:{asset:v,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:D().PolkadotXcm().transferAssetsToPara32()}),fn(J,.6),fn(p,.3),fn(x,.3),Et(ne,.004),Et(we,.004),Et(ke,.004),Et(Ce,.004),Et(Te,1e-7),Et(te,2e-6),Et(j,2e-5)],Kc=[new Ft.AssetRoute({source:{asset:p,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:p,fee:{amount:.18,asset:p}},contract:D().PolkadotXcm().transferAssetsToPara32()}),new Ft.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:x,fee:{amount:.18,asset:x}},contract:D().PolkadotXcm().transferAssetsToPara32()})],oh=[new Ft.AssetRoute({source:{asset:te,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:te,balance:r().evm().erc20()}},destination:{chain:S,asset:X,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:X}},contract:D().Batch().batchAll([D().Erc20().approve(t=>t.getTokenRelayer()),D().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Ft.AssetRoute({source:{asset:ne,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:ne,balance:r().evm().erc20()}},destination:{chain:S,asset:xe,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:xe}},contract:D().Batch().batchAll([D().Erc20().approve(t=>t.getTokenRelayer()),D().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],nr=new Ft.ChainRoutes({chain:E,routes:[...Uc,...Kc]});var Es=require("@galacticcouncil/xc-core");var Nc=[new Es.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:O,fee:{amount:.01,asset:O}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Oc=[new Es.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:O,fee:{amount:.1,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],ar=new Es.ChainRoutes({chain:yt,routes:[...Nc,...Oc]});var pn=require("@galacticcouncil/xc-core");var Gc=[new pn.AssetRoute({source:{asset:Ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ge,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],or=new pn.ChainRoutes({chain:es,routes:[...Gc]});var hn=require("@galacticcouncil/xc-core");var jc=[new hn.AssetRoute({source:{asset:ye,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ye,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:ye}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],rr=new hn.ChainRoutes({chain:zt,routes:[...jc]});var bn=require("@galacticcouncil/xc-core");var qc=[new bn.AssetRoute({source:{asset:ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.2,asset:ge}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ir=new bn.ChainRoutes({chain:Zt,routes:[...qc]});var yn=require("@galacticcouncil/xc-core");var zc=[new yn.AssetRoute({source:{asset:Re,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Re,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Re}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],cr=new yn.ChainRoutes({chain:jt,routes:[...zc]});var xn=require("@galacticcouncil/xc-core");var $c=[new xn.AssetRoute({source:{asset:Le,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Le,fee:{amount:2,asset:Le}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],mr=new xn.ChainRoutes({chain:Jt,routes:[...$c]});var gn=require("@galacticcouncil/xc-core");var Jc=[new gn.AssetRoute({source:{asset:ue,balance:r().substrate().system().account(),fee:{asset:ue,balance:r().substrate().system().account(),extra:.030555},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ue,fee:{amount:.03,asset:ue}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ur=new gn.ChainRoutes({chain:ss,routes:[...Jc]});var An=require("@galacticcouncil/xc-core");var Qc=[new An.AssetRoute({source:{asset:Me,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Me,fee:{amount:.205,asset:Me}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],lr=new An.ChainRoutes({chain:Qt,routes:[...Qc]});var dr=[cr,Yo,Qo,Zo,er,tr,sr,nr,ar,lr,or,rr,ir,mr,ur];var hs=require("@galacticcouncil/xc-core");var Yc=[new hs.AssetRoute({source:{asset:j,balance:r().solana().native(),destinationFee:{asset:j,balance:r().solana().native()}},destination:{chain:d,asset:j,fee:{amount:0,asset:j}},program:Bs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new hs.AssetRoute({source:{asset:oe,balance:r().solana().token(),fee:{asset:j,balance:r().solana().native()},destinationFee:{asset:oe,balance:r().solana().token()}},destination:{chain:d,asset:oe,fee:{amount:0,asset:oe}},program:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new hs.AssetRoute({source:{asset:re,balance:r().solana().token(),fee:{asset:j,balance:r().solana().native()},destinationFee:{asset:re,balance:r().solana().token()}},destination:{chain:d,asset:re,fee:{amount:0,asset:re}},program:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],fr=new hs.ChainRoutes({chain:xt,routes:[...Yc]});var pr=[fr];var wn=require("@galacticcouncil/xc-core");var Zc=[new wn.AssetRoute({source:{asset:ie,balance:r().sui().native(),destinationFee:{asset:ie,balance:r().sui().native()}},destination:{chain:d,asset:ie,fee:{amount:0,asset:ie}},move:Qn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],hr=new wn.ChainRoutes({chain:ns,routes:[...Zc]});var br=[hr];var Fs=require("@galacticcouncil/xc-core");var em=require("@galacticcouncil/xc-core");var aa=.0015;var tm=new Fs.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),fee:{asset:I,balance:r().substrate().system().account(),extra:aa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:I,fee:{amount:.002,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),sm=new Fs.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),fee:{asset:I,balance:r().substrate().system().account(),extra:aa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:as,asset:I,fee:{amount:.0012,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),yr=new Fs.ChainRoutes({chain:mt,routes:[sm,tm]});var Is=require("@galacticcouncil/xc-core");var nm="0",bs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===nm?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),oa=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:bs()});var am=[new Is.AssetRoute({source:{asset:p,balance:bs(),fee:oa(),destinationFee:{balance:bs()}},destination:{chain:mt,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],om=[new Is.AssetRoute({source:{asset:I,balance:bs(),fee:oa(),destinationFee:{balance:bs()}},destination:{chain:mt,asset:I,fee:{amount:.0012,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],xr=new Is.ChainRoutes({chain:as,routes:[...am,...om]});var gr=[yr,xr];var rm=[...$o,...dr,...pr,...br,...gr],Ar=new Map(rm.map(t=>[t.chain.key,t]));var ra=require("@galacticcouncil/xc-core");var ys=require("@galacticcouncil/xc-core");var Cn=class extends ys.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new ys.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},kn=class extends ys.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:a}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:a,destinationFee:o,destinationFeeBalance:i}=n,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});if(i.amount<c.amount)throw new ys.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:a.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new pe(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};var xs=require("@galacticcouncil/xc-core");var Tn=class extends xs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new pe(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain;if(await new pe(o).getSystemAccountBalance(n)===0n)throw new xs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},vn=class extends xs.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,o=a.chain;if(await new pe(o).checkIfFrozen(n,s))throw new xs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var gs=require("@galacticcouncil/xc-core");var im=12,cm=1,mm=18,Bn=class extends gs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new $e(n),o=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain,i=new $e(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||cm,h=c.decimals||im,b=l*Math.pow(10,h),A=await i.getAssetBalance(n,m);if(BigInt(b*1.1)>A)throw new gs.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Pn=class extends gs.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:a}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:a}=e,o=a.chain,i=new $e(o),m=o.getBalanceAssetId(v),c=o.getAssetDecimals(v)||mm,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new gs.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ie={isAny:()=>!0,isHydration:t=>t instanceof ra.Parachain&&t.parachainId===2034,isHub:t=>t instanceof ra.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},wr=[new Cn(Ie.isAny,Ie.isAny),new kn(Ie.isAny,Ie.isAny),new Tn(Ie.isAny,Ie.isHub),new vn(Ie.isHub,Ie.isAny),new Bn(Ie.isAny,Ie.isHydration),new Pn(Ie.isHydration,Ie.isAny)];var ua={};Nt(ua,{AssethubDex:()=>ma,HydrationDex:()=>ia});var As=require("@galacticcouncil/sdk-next"),kr=require("@galacticcouncil/common"),Tr=require("polkadot-api");var Cr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:En}=As.pool,{TradeRouteBuilder:um,TradeRouter:lm}=As.sor,{TxBuilderFactory:dm}=As.tx,ia=class{chain;client;poolCtx;txBuilder;getCtx=Cr(async e=>{console.log("init swap router",e,"\u2705");let s=new lm(this.poolCtx);return s.withFilter({useOnly:[En.Aave,En.Omni,En.Stable,En.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new $e(this.chain),this.txBuilder=new dm(s.client,s.evm)}async getCalldata(e,s,n,a,o=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),h=await l.getMostLiquidRoute(i,m),b=await l.getBuy(i,m,c,h),F=await(await this.txBuilder.trade(b).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData();return Tr.Binary.toHex(F)}async getQuote(e,s,n,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(o,i),h=await c.getBuy(o,i,m,l);return{amount:h.amountIn,route:um.build(h.swaps)}}catch(l){if(a)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!a)throw new Error(`No price found for asset ${e}`);let o=a*s,i=Math.pow(10,kr.RUNTIME_DECIMALS);return o/BigInt(i)}};var ca=require("@galacticcouncil/common"),ma=class{chain;client;constructor(e){this.chain=e,this.client=new pe(this.chain)}async getCalldata(e,s,n,a){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let a=this.chain.getAssetXcmLocation(e),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,ca.encodeLocation)(a),(0,ca.encodeLocation)(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var Er=require("@galacticcouncil/xc-core");var vr=require("@galacticcouncil/xc-core");function Fn(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new vr.Asset({key:[a,s,e].join("_"),originSymbol:n})}function Br(t){let{decimals:e,id:s}=t;return{asset:Fn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Pr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:Fn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:a},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var In=class extends Er.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=Fn(o),m=Br(o),c=Pr(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,cn(i)),this.updateChainRoute(s,ln(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
1
+ "use strict";var Sn=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Mr=Object.prototype.hasOwnProperty;var Kt=(t,e)=>{for(var s in e)Sn(t,s,{get:e[s],enumerable:!0})},Vr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Wr(e))!Mr.call(t,o)&&o!==s&&Sn(t,o,{get:()=>e[o],enumerable:!(n=Hr(e,o))||n.enumerable});return t};var Ur=t=>Vr(Sn({},"__esModule",{value:!0}),t);var Am={};Kt(Am,{HydrationConfigService:()=>Rn,assetsMap:()=>ba,builders:()=>na,chainsMap:()=>Fa,clients:()=>ea,dex:()=>ha,routesMap:()=>Pr,tags:()=>aa,validations:()=>Er});module.exports=Ur(Am);var g=require("@galacticcouncil/xc-core"),Re=new g.Asset({key:"aave",originSymbol:"AAVE"}),_e=new g.Asset({key:"ajun",originSymbol:"AJUN"}),W=new g.Asset({key:"astr",originSymbol:"ASTR"}),S=new g.Asset({key:"bnc",originSymbol:"BNC"}),Ln=new g.Asset({key:"bsx",originSymbol:"BSX"}),Se=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),ge=new g.Asset({key:"cru",originSymbol:"CRU"}),xe=new g.Asset({key:"dai",originSymbol:"DAI"}),ne=new g.Asset({...xe,key:"dai_mwh"}),w=new g.Asset({key:"dot",originSymbol:"DOT"}),R=new g.Asset({key:"eth",originSymbol:"ETH"}),Le=new g.Asset({key:"ena",originSymbol:"ENA"}),ct=new g.Asset({key:"eurc",originSymbol:"EURC"}),et=new g.Asset({...ct,key:"eurc_mwh"}),B=new g.Asset({key:"glmr",originSymbol:"GLMR"}),J=new g.Asset({key:"hdx",originSymbol:"HDX"}),L=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),V=new g.Asset({key:"intr",originSymbol:"INTR"}),re=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),X=new g.Asset({key:"ksm",originSymbol:"KSM"}),De=new g.Asset({key:"ldo",originSymbol:"LDO"}),He=new g.Asset({key:"laos",originSymbol:"LAOS"}),We=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),le=new g.Asset({key:"ewt",originSymbol:"EWT"}),Me=new g.Asset({key:"link",originSymbol:"LINK"}),K=new g.Asset({key:"myth",originSymbol:"MYTH"}),Ve=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Ae=new g.Asset({key:"pen",originSymbol:"PEN"}),Ue=new g.Asset({key:"paxg",originSymbol:"PAXG"}),ie=new g.Asset({key:"prime",originSymbol:"PRIME"}),Oe=new g.Asset({key:"sky",originSymbol:"SKY"}),j=new g.Asset({key:"sol",originSymbol:"SOL"}),ce=new g.Asset({key:"sui",originSymbol:"SUI"}),Ne=new g.Asset({key:"susde",originSymbol:"sUSDe"}),tt=new g.Asset({key:"susds",originSymbol:"sUSDS"}),ke=new g.Asset({...tt,key:"susds_mwh"}),Ke=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),Ge=new g.Asset({key:"trac",originSymbol:"TRAC"}),qe=new g.Asset({key:"unq",originSymbol:"UNQ"}),b=new g.Asset({key:"usdt",originSymbol:"USDT"}),Te=new g.Asset({...b,key:"usdt_mwh"}),Rt=new g.Asset({...b,key:"usdt_eth"}),x=new g.Asset({key:"usdc",originSymbol:"USDC"}),ve=new g.Asset({...x,key:"usdc_mwh"}),_t=new g.Asset({...x,key:"usdc_eth"}),Q=new g.Asset({key:"vastr",originSymbol:"vASTR"}),O=new g.Asset({key:"vdot",originSymbol:"vDOT"}),Gt=new g.Asset({key:"weth",originSymbol:"WETH"}),te=new g.Asset({...Gt,key:"weth_mwh"}),st=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),Be=new g.Asset({...st,key:"wbtc_mwh"}),je=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),mt=new g.Asset({key:"wud",originSymbol:"WUD"}),Or=[Re,_e,W,Ln,Se,ge,S,xe,ne,w,Le,ct,et,R,B,J,L,V,X,De,He,We,le,re,Me,K,Ve,Ue,Ae,ie,Oe,j,ce,Ne,tt,ke,Ge,Ke,qe,x,ve,_t,b,Te,Rt,Q,O,st,Be,Gt,te,je,mt],ba=new Map(Or.map(t=>[t.key,t]));var Rs=require("@galacticcouncil/xc-core");var ya=require("viem/chains"),qt=new Rs.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:R,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:ct,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Rs.ChainEcosystem.Ethereum,evmChain:ya.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});var _s=require("@galacticcouncil/xc-core");var ga=require("viem/chains"),D=new _s.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:R,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Re,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Se,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Gt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Le,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ne,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:tt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ke,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:st,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:We,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:b,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:De,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Me,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ue,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Oe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ge,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:je,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:_s.ChainEcosystem.Ethereum,evmChain:ga.mainnet,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585"}});var xa=[qt,D];var Ss=require("@galacticcouncil/xc-core");var jt=new Ss.Parachain({assetsData:[{asset:_e,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ss.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Cs=require("@galacticcouncil/xc-core");var Aa={assetsData:[{asset:w,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:mt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:K,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:X,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Cs.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},T=new Cs.Parachain({...Aa,key:"assethub",name:"AssetHub Polkadot"}),yt=new Cs.Parachain({...Aa,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Ls=require("@galacticcouncil/xc-core");var se=new Ls.Parachain({assetsData:[{asset:W,xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:S,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:B,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ls.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Ds=require("@galacticcouncil/xc-core");var Nr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new Ds.Parachain({assetsData:[{asset:S,id:{Native:S.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:w,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:W,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:B,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ds.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Nr});var zt=require("@galacticcouncil/xc-core");var $t=new zt.Parachain({assetsData:[{asset:ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:zt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:zt.XcmVersion.v3});var Ws=require("@galacticcouncil/xc-core"),Ca=require("viem");var wa=require("@polkadot-api/substrate-bindings"),Kr="ETH\0",Hs=class{async toH160(e){let s=(0,wa.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(Kr),a=n.slice(o.length,-8);return"0x"+Buffer.from(a).toString("hex")}};var Gr=new Hs,Dn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.ibp.network","https://rpc.lait.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Hn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],qr=(0,Ca.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Dn,webSocket:Hn},default:{http:Dn,webSocket:Hn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new Ws.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:Re,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:_e,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:S,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Se,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:ge,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:w,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ne,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:R,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Le,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:B,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ie,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:le,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:De,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:X,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:He,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:We,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Me,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ue,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:K,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ve,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Ae,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Oe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:j,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ce,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ne,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:tt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ke,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ke,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ge,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:qe,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:x,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ve,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:et,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:_t,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:b,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Te,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Rt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:st,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Be,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Gt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:te,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:je,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:mt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Ws.ChainEcosystem.Polkadot,evmChain:qr,evmResolver:Gr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Hn,rpcs:Dn});var Jt=require("@galacticcouncil/xc-core");var Pe=new Jt.Parachain({assetsData:[{asset:V,decimals:10,id:{Token:V.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:L,decimals:8,id:{Token:L.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:w,decimals:10,id:{Token:w.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:O,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Jt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Jt.XcmVersion.v3});var Ms=require("@galacticcouncil/xc-core");var Qt=new Ms.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ms.ChainEcosystem.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});var Vs=require("@galacticcouncil/xc-core"),ka=require("viem");var jr=(0,ka.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),F=new Vs.EvmParachain({assetsData:[{asset:B,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ne,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:et,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:j,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:re,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ie,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:ke,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ce,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ve,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Te,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Be,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:te,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:w,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:b,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Vs.ChainEcosystem.Polkadot,evmChain:jr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92"},ws:"wss://wss.api.moonbeam.network"});var Us=require("@galacticcouncil/xc-core");var gt=new Us.Parachain({assetsData:[{asset:K,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Us.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});var Os=require("@galacticcouncil/xc-core");var Yt=new Os.Parachain({assetsData:[{asset:Ve,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Os.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var Zt=require("@galacticcouncil/xc-core");var es=new Zt.Parachain({assetsData:[{asset:Ae,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Zt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Zt.XcmVersion.v3});var Ns=require("@galacticcouncil/xc-core");var zr={assetsData:[{asset:w,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ns.ChainEcosystem.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},Ta=new Ns.Parachain({...zr,key:"polkadot"});var Ks=require("@galacticcouncil/xc-core");var ts=new Ks.Parachain({assetsData:[{asset:qe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ks.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var ss=require("@galacticcouncil/xc-core");var ns=new ss.Parachain({assetsData:[{asset:le,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ss.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:ss.XcmVersion.v3});var va=[jt,T,yt,se,M,$t,f,Qt,Yt,Pe,F,gt,es,Ta,ts,ns];var Gs=require("@galacticcouncil/xc-core");var xt=new Gs.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:j,decimals:9},{asset:re,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ie,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Gs.ChainEcosystem.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var Ba=[xt];var qs=require("@galacticcouncil/xc-core");var as=new qs.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ce,decimals:9}],ecosystem:qs.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Pa=[as];var js=require("@galacticcouncil/xc-core");var ut=new js.Parachain({assetsData:[{asset:X,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:js.ChainEcosystem.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});var zs=require("@galacticcouncil/xc-core");var os=new zs.Parachain({assetsData:[{asset:Ln,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:X,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:zs.ChainEcosystem.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Ea=[ut,os];var $r=[...xa,...va,...Ba,...Pa,...Ea],Fa=new Map($r.map(t=>[t.key,t]));var Zo=require("@galacticcouncil/xc-core");var oa=require("@galacticcouncil/xc-core");var na={};Kt(na,{AssetMinBuilder:()=>At,BalanceBuilder:()=>r,ContractBuilder:()=>H,ExtrinsicBuilder:()=>l,ExtrinsicDecorator:()=>dt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>vs,MoveBuilder:()=>sa,ProgramBuilder:()=>Bs,XcmTransferType:()=>de,XcmVersion:()=>lt});var $s=require("@galacticcouncil/xc-core");function At(){return{assetRegistry:Jr,assets:Qr}}function Jr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new $s.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new $s.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Qr(){return{asset:()=>({build:({asset:t})=>new $s.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var ks=require("@galacticcouncil/xc-core");function Ia(){return{erc20:Zr,native:Yr}}function Yr(){return{build:({address:t})=>new ks.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Zr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new ks.ContractConfig({abi:ks.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var rs=require("@galacticcouncil/xc-core"),is=require("@galacticcouncil/common");function Xa(){return{assets:ei,system:si,tokens:ni,ormlTokens:ai,foreignAssets:ti}}function ei(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,is.encodeAssetId)(n);return new rs.SubstrateQueryConfig({module:"Assets",func:"Account",args:[o,t],transform:async a=>BigInt(a?.balance?.toString()??"0")})}})}}function ti(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let a=(0,is.encodeLocation)(o);return new rs.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[a,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function si(){return{account:()=>({build:({address:t})=>new rs.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function ni(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,is.encodeAssetId)(n);return new rs.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,o],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function ai(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,is.encodeAssetId)(n);return new rs.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var Wn=require("@galacticcouncil/xc-core");function Ra(){return{native:oi,token:ri}}function oi(){return{build:({address:t})=>new Wn.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function ri(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Wn.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var _a=require("@galacticcouncil/xc-core");function Sa(){return{native:ii}}function ii(){return{build:({address:t})=>new _a.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Ia,substrate:Xa,solana:Ra,sui:Sa}}var St=require("@galacticcouncil/xc-core"),La=require("viem"),ci=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],a=s.map(i=>(0,La.encodeFunctionData)({abi:St.Abi[i.module],functionName:i.func,args:i.args}));return new St.ContractConfig({abi:St.Abi.Batch,address:St.Precompile.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Da=()=>({batchAll:ci});var ms=require("@galacticcouncil/xc-core");function cs(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function ze(t){return typeof t=="object"?Object.values(t)[0]:t}function Ha(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,i=a?a.chain:o.chain,m=ms.Wormhole.fromChain(i),c=i.getAssetId(n);return new ms.ContractConfig({abi:ms.Abi.Erc20,address:ze(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var us=require("@galacticcouncil/xc-core");var Wa=require("@galacticcouncil/common"),Ma=require("polkadot-api"),Va=require("@polkadot-api/utils"),{H160:mi,isEvmAddress:ui}=Wa.h160;function li(t){let e=ui(t)?mi.toAccount(t):t;return(0,Va.toHex)((0,Ma.AccountId)().enc(e))}var di=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,i=us.Basejump.fromChain(a),m=a.getAssetId(n);return new us.ContractConfig({abi:us.Abi.Basejump,address:i.getAddress(),args:[ze(m),s,li(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Ua=()=>({bridgeViaWormhole:di});var $e=require("@galacticcouncil/xc-core"),Na=require("@galacticcouncil/common"),{Ss58Addr:Oa}=$e.addr;function fi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Mn(t,e){let s=t.getAssetId(e);return typeof s=="string"?fi(s):s}function Ka(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Mn(o.chain,s);return new $e.ContractConfig({abi:$e.Abi.PolkadotXcm,address:$e.Precompile.PolkadotXcm,args:[n.chain.parachainId,Oa.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Mn(o.chain,s),i=Mn(o.chain,o.destinationFeeBalance),m=Na.big.toBigInt(n.fee.amount,n.fee.decimals);return new $e.ContractConfig({abi:$e.Abi.PolkadotXcm,address:$e.Precompile.PolkadotXcm,args:[n.chain.parachainId,Oa.getPubKey(t),[{asset:a,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var wt=require("@galacticcouncil/xc-core");var{Ss58Addr:pi}=wt.addr,hi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,i=o.chain,m=a.chain,c=wt.Snowbridge.fromChain(i),u=i.getAssetId(n),p=ze(u),d=n.originSymbol==="ETH",y=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new wt.ContractConfig({abi:wt.Abi.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,pi.getPubKey(e)],y,s],value:d?A+s:A,func:"sendToken",module:"Snowbridge"})}}),Ga=()=>({sendToken:hi});var U=require("@galacticcouncil/xc-core"),Vn=require("@solana/web3.js"),Js=require("@solana/spl-token");var bi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:a,destination:i}=e,m=U.Wormhole.fromChain(a.chain),c=U.Wormhole.fromChain(t.moonchain),u=U.Precompile.Bridge,p=a.chain.getAssetId(o),d=0,y=await U.mrl.createPayload(i.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:m.getTokenBridge(),args:[ze(p),n,c.getWormholeId(),c.normalizeAddress(u),d,y.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),yi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:a}=e,i=U.Wormhole.fromChain(o.chain),m=U.Wormhole.fromChain(t.moonchain),c=U.Precompile.Bridge,u=0,p=await U.mrl.createPayload(a.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),u,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),gi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a,transact:i}=t,m=i?i.chain:o.chain,c=a.chain,u=U.Wormhole.fromChain(m),p=U.Wormhole.fromChain(c),d=c.getAssetId(n),y=e;if(c.isSolana()){let _=d==="SOL"?Js.NATIVE_MINT:new Vn.PublicKey(d);y=(await(0,Js.getAssociatedTokenAddress)(_,new Vn.PublicKey(e))).toBase58()}let A=m.getAssetId(n),v=0,I=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:u.getTokenBridge(),args:[ze(A),s,p.getWormholeId(),p.normalizeAddress(y),v,I],func:"transferTokens",module:"TokenBridge"})}}),xi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,a=U.Wormhole.fromChain(n.chain),i=U.Wormhole.fromChain(o.chain),m=0,c=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:a.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),qa=()=>({transferTokens:gi,transferTokensWithPayload:bi,wrapAndTransferETH:xi,wrapAndTransferETHWithPayload:yi});var Lt=require("@galacticcouncil/xc-core");var Ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a,transact:i}=t,m=i?i.chain:o.chain,c=a.chain,u=Lt.Wormhole.fromChain(m),p=Lt.Wormhole.fromChain(c),d=0,y=0,A=m.getAssetId(n);return new Lt.ContractConfig({abi:Lt.Abi.TokenRelayer,address:u.getTokenRelayer(),args:[ze(A),s,d,p.getWormholeId(),p.normalizeAddress(e),y],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),ja=()=>({transferTokensWithRelay:Ai});function za(){return{TokenBridge:qa,TokenRelayer:ja}}function H(){return{Batch:Da,Erc20:Ha,Basejump:Ua,PolkadotXcm:Ka,Snowbridge:Ga,Wormhole:za}}var Ja=require("@galacticcouncil/xc-core"),$a="AssetConversion",wi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=a,c=o,u=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),d=i.amount+i.amount*BigInt(t.slippage)/100n,y=m.amount;return new Ja.ExtrinsicConfig({module:$a,func:e,getTx:A=>A.getUnsafeApi().tx[$a][e]({path:[u,p],amount_out:y,amount_in_max:d,send_to:s,keep_alive:!0})})}}},Qa=()=>({swapTokensForExactTokens:wi});var Qs=require("@galacticcouncil/descriptors"),Ya=require("@galacticcouncil/xc-core"),Ci="Assets",ki=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:i}=o,m=s>i.amount?s-i.amount:s,c=a.getMetadataAssetId(e);return new Ya.ExtrinsicConfig({module:Ci,func:t,getTx:u=>u.getTypedApi(Qs.hub).tx.Assets.transfer({id:Number(c),target:Qs.MultiAddress.Id(n),amount:m})})}}},Za=()=>({transfer:ki});var to=require("@galacticcouncil/xc-core"),eo="Balances",Ti=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new to.ExtrinsicConfig({module:eo,func:e,getTx:n=>n.getUnsafeApi().tx[eo][e]({dest:s,keep_alive:t})})}},so=()=>({transferAll:Ti});var no=require("@galacticcouncil/descriptors"),ao=require("@galacticcouncil/xc-core"),vi="Router",Bi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:i,route:m}=o,c=n,u=c.getMetadataAssetId(a),p=c.getMetadataAssetId(i),d=i.amount,y=a.amount+a.amount*BigInt(t.slippage)/100n;return new ao.ExtrinsicConfig({module:vi,func:"buy",getTx:A=>A.getTypedApi(no.hydration).tx.Router.buy({asset_in:Number(u),asset_out:Number(p),amount_out:d,max_amount_in:y,route:m})})}}),oo=()=>({buy:Bi});var io=require("@galacticcouncil/xc-core"),ro="Utility",Pi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new io.ExtrinsicConfig({module:ro,func:e,getTx:o=>{let a=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[ro][e]({calls:a})}})}}},co=()=>({batchAll:Pi});var Ys=require("@galacticcouncil/xc-core"),uo=require("polkadot-api"),lo=require("viem");var lt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(lt||{}),de=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(de||{});var mo="EthereumXcm",Ei=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,lo.encodeFunctionData)({abi:Ys.Abi[n.module],functionName:n.func,args:n.args});return new Ys.ExtrinsicConfig({module:mo,func:e,getTx:i=>i.getUnsafeApi().tx[mo][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:uo.Binary.fromHex(a),access_list:void 0}}})})}}},Un=()=>({transact:Ei});var kt=require("@galacticcouncil/xc-core"),tn=require("@galacticcouncil/common");var fs=require("@galacticcouncil/xc-core"),h=require("@galacticcouncil/descriptors");var fo=require("@galacticcouncil/descriptors"),fe=340282366920938463463374607431768211455n,Dt="0x0000000000000000000000000000000000000000000000000000000000000000",ls={parents:1,interior:fo.XcmV3Junctions.Here()},po=0,ho=1e3,bo=1002,yo=1,Ht="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var go="0x0000000000000000000000000000000000000000";var ee=require("@galacticcouncil/descriptors");var xo=require("@galacticcouncil/common"),On=require("@galacticcouncil/descriptors"),Ao=require("@polkadot-api/substrate-bindings"),wo=require("@polkadot-api/utils");function z(t){if(t.length===42&&t.startsWith("0x"))return On.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,Ao.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return On.XcmV3Junction.AccountId32({id:(0,wo.toHex)(s.publicKey),network:void 0})}function ds(t,e,s){return xo.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Nn=require("@galacticcouncil/xc-core");function Co(t,e){let s=Nn.multiloc.findNestedKey(t,"GeneralIndex"),n=Nn.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function Y(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Zs={};Kt(Zs,{ETHER_TOKEN_ADDRESS:()=>Kn,erc20Location:()=>Ii,erc20LocationReanchored:()=>Xi,ethereumLocation:()=>To,parachainLocation:()=>Fi});var Ee=require("@galacticcouncil/descriptors"),Kn="0x0000000000000000000000000000000000000000",ko=t=>Ee.XcmV3Junction.GlobalConsensus(Ee.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function To(t){return{parents:2,interior:Ee.XcmV3Junctions.X1(ko(t))}}function Fi(t){return{parents:1,interior:Ee.XcmV3Junctions.X1(Ee.XcmV3Junction.Parachain(t))}}function Ii(t,e){return e===Kn?To(t):{parents:2,interior:Ee.XcmV3Junctions.X2([ko(t),Ee.XcmV3Junction.AccountKey20({key:e})])}}function Xi(t){return t===Kn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ee.XcmV3Junctions.X1(Ee.XcmV3Junction.AccountKey20({key:t}))}}var Gn=require("@galacticcouncil/common"),vo=require("@galacticcouncil/xc-core");function Z(t,e){return Ri(e)>=4?(0,Gn.encodeLocation)(t):_i(t)}function Ri(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function _i(t){return{type:"Concrete",value:(0,Gn.encodeLocation)(t)}}var Si=1e3;function Li(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function Di(t){if(t)return Li(t)?Si:vo.multiloc.findParachain(t)}function Bo(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Di(o),i=n?.parachainId??s.parachainId;if(a&&i!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function qn(t,e){let s="V4",n=Z(Y(e,t),s),o=Dt;return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:ls,fun:ee.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(fe)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:ls,fun:ee.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(z(Ht))}}),ee.XcmV4Instruction.SetTopic(o)]}var nt=require("@galacticcouncil/descriptors");function Po(t,e){let s="V4",n=Z(Y(e,t),s),o=en("V4",z(go),z(Ht),n,Dt);return[nt.XcmV4Instruction.WithdrawAsset([{id:ls,fun:nt.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:nt.XcmV3MultiassetFungibility.Fungible(fe)}]),nt.XcmV4Instruction.ClearOrigin(),nt.XcmV4Instruction.BuyExecution({fees:{id:ls,fun:nt.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:nt.XcmV3WeightLimit.Unlimited()}),...o.value]}var E=require("@galacticcouncil/descriptors");function Eo(t,e){let s="V4",n=Z(Y(e,t),s),o=Dt;return[E.XcmV4Instruction.WithdrawAsset([{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(fe)}]),E.XcmV4Instruction.ClearOrigin(),E.XcmV4Instruction.BuyExecution({fees:{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:E.XcmV3Junctions.X1(z(Ht))}}),E.XcmV4Instruction.SetTopic(o)]}function jn(t,e){let s="V4",n=Z(Y(e,t),s);return[E.XcmV4Instruction.BuyExecution({fees:{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:E.XcmV3Junctions.X1(z(Ht))}})]}function Fo(t,e,s){let n="V4",o=Z(Y(e,t),n),a=Dt,i=jn(t,s);return[E.XcmV4Instruction.WithdrawAsset([{id:o,fun:E.XcmV3MultiassetFungibility.Fungible(fe)}]),E.XcmV4Instruction.ClearOrigin(),E.XcmV4Instruction.BuyExecution({fees:{id:o,fun:E.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositReserveAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:E.XcmV3Junctions.X1(E.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),E.XcmV4Instruction.SetTopic(a)]}var Io=[fs.ChainEcosystem.Polkadot,fs.ChainEcosystem.Kusama],Hi={parents:1,interior:h.XcmV3Junctions.X1(h.XcmV3Junction.Parachain(1e3))},Wi=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Mi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Io.includes(t.ecosystem)&&Io.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Xo=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},at=(t,e,s)=>{if(Mi(e,s)){let o=s.ecosystem===fs.ChainEcosystem.Polkadot?h.XcmV3JunctionNetworkId.Polkadot():h.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:h.XcmV3Junctions.X2([h.XcmV3Junction.GlobalConsensus(o),h.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===po)return{type:t,value:{parents:1,interior:h.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?ho:s.parachainId;return{type:t,value:{parents:1,interior:h.XcmV3Junctions.X1(h.XcmV3Junction.Parachain(n))}}},Wt=(t,e)=>({type:t,value:{parents:0,interior:h.XcmV3Junctions.X1(e)}}),zn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Wi(s)?Hi:s}}:{type:e},Ct=(t,e)=>({id:t,fun:h.XcmV3MultiassetFungibility.Fungible(e)}),Ro=(t,e,s)=>({type:t,value:[h.XcmV4Instruction.DepositAsset({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(e)}})]});var en=(t,e,s,n,o)=>{let a=o;return{type:t,value:[h.XcmV4Instruction.SetAppendix([h.XcmV4Instruction.DepositAsset({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(s)}})]),h.XcmV4Instruction.InitiateReserveWithdraw({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.AllOf({id:n,fun:h.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Zs.ethereumLocation(yo),xcm:[h.XcmV4Instruction.BuyExecution({fees:{id:Vi(n),fun:h.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:h.XcmV3WeightLimit.Unlimited()}),h.XcmV4Instruction.DepositAsset({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(e)}}),h.XcmV4Instruction.SetTopic(a)]}),h.XcmV4Instruction.SetTopic(a)]}},Vi=t=>{let e=fs.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:h.XcmV3Junctions.X1(h.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:h.XcmV3Junctions.Here()}},_o=(t,e,s,n,o,a)=>({type:t,value:[h.XcmV4Instruction.WithdrawAsset([{id:s,fun:h.XcmV3MultiassetFungibility.Fungible(n)}]),h.XcmV4Instruction.BuyExecution({fees:{id:s,fun:h.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:h.XcmV3WeightLimit.Unlimited()}),h.XcmV4Instruction.Transact({origin_kind:h.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),h.XcmV4Instruction.RefundSurplus(),h.XcmV4Instruction.DepositAsset({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(e)}})]}),So=(t,e,s,n,o,a)=>({type:t,value:[h.XcmV4Instruction.WithdrawAsset([{id:s,fun:h.XcmV3MultiassetFungibility.Fungible(o)}]),h.XcmV4Instruction.BuyExecution({fees:{id:s,fun:h.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:h.XcmV3WeightLimit.Unlimited()}),h.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:h.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(a)}}),h.XcmV4Instruction.RefundSurplus(),h.XcmV4Instruction.DepositAsset({assets:h.XcmV4AssetAssetFilter.Wild(h.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:h.XcmV3Junctions.X1(e)}})]});var pe="PolkadotXcm",Ui=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=z(t),i=o.chain,m=n.chain,c="V4",u=Z(Y(i,s),c),p=Z(Y(i,n.fee),c),d=Ct(u,e),y=Ct(p,n.fee.amount),A="limited_reserve_transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:A,getTx:v=>{let I=v.getUnsafeApi().tx[pe][A];return s.key===n.fee.key?I({dest:at(c,i,m),beneficiary:Wt(c,a),assets:{type:c,value:[d]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Co(u,p)?I({dest:at(c,i,m),beneficiary:Wt(c,a),assets:{type:c,value:[y,d]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):I({dest:at(c,i,m),beneficiary:Wt(c,a),assets:{type:c,value:[d,y]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Oi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=z(t),i=o.chain,m=n.chain,c="V4",u=Z(Y(i,s),c),p=Ct(u,e),d=at(c,i,m),y=Wt(c,a),A={type:c,value:[p]},v="limited_teleport_assets";return new kt.ExtrinsicConfig({module:pe,func:v,getTx:I=>I.getUnsafeApi().tx[pe][v]({dest:d,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ni=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=z(t),i=o.chain,m=n.chain,c=i.xcmVersion??"V4",u=Z(Y(i,s),c),p=Ct(u,e),d=at(c,i,m),y=Wt(c,a),A={type:c,value:[p]},v="reserve_transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:v,getTx:I=>I.getUnsafeApi().tx[pe][v]({dest:d,beneficiary:y,assets:A,fee_asset_item:0})})}}),Ki=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=z(t),i=o.chain,m=n.chain,c="V4",u=Z(Y(i,s),c),p=Ct(u,e),d=at(c,i,m),y=Wt(c,a),A={type:c,value:[p]},v="transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:v,getTx:I=>I.getUnsafeApi().tx[pe][v]({dest:d,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Gi=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:i,source:m,transact:c})=>{let u="V4",p=m.chain,d=o.chain,y=o.fee.amount,A=o.fee;c&&(d=c.chain,y=tn.big.toBigInt(c.fee.amount,c.fee.decimals),A=c.fee);let v=z(i),I=c||d.usesCexForwarding?ds(p,i,d):e,_=z(I),{transferType:G}=t,q=Z(Y(p,s),u),k=Z(Y(p,A),u),Ze=Ct(q,n),Xt=Ct(k,y),rt=s.isEqual(A),ht=at(u,p,d),it={type:u,value:rt?[Ze]:[Xt,Ze]},bt=zn(u,G,q),ws={type:u,value:rt?q:k},_n=zn(u,G,k),Nt;Xo(q)&&o.chain.isEvmChain()?Nt=en(u,_,v,q,a):Nt=Ro(u,_,it.value.length);let Xs="transfer_assets_using_type_and_then";return new kt.ExtrinsicConfig({module:pe,func:Xs,getTx:Dr=>Dr.getUnsafeApi().tx[pe][Xs]({dest:ht,assets:it,assets_transfer_type:bt,remote_fees_id:ws,fees_transfer_type:_n,custom_xcm_on_dest:Nt,weight_limit:{type:"Unlimited"}})})}}),qi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,i="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let m=o.chain,c=a.chain,u=ds(m,n,c),p=z(u),{fee:d}=a,y=Z(Y(c,d),i),A=tn.big.toBigInt(e.fee,d.decimals);return new kt.ExtrinsicConfig({module:pe,func:t,getTx:v=>v.getUnsafeApi().tx[pe][t]({dest:at(i,m,c),message:_o(i,p,y,A,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:i,source:m,destination:c}=s,u="V4",p=m.chain,d=c.chain,y=ds(p,i,d),A=z(y),v=z(o),I=Z(Y(d,a),u),{fee:_}=c,G=tn.big.toBigInt(e.fee,_.decimals),q=n>_.amount?n-(_.amount+G):n;return new kt.ExtrinsicConfig({module:pe,func:t,getTx:k=>k.getUnsafeApi().tx[pe][t]({dest:at(u,p,d),message:So(u,A,I,q,G,v)})})}})}},$n=()=>({limitedReserveTransferAssets:Ui,limitedTeleportAssets:Oi,reserveTransferAssets:Ni,transferAssets:Ki,transferAssetsUsingTypeAndThen:Gi,send:qi});var Ho=require("@galacticcouncil/xc-core"),Wo=require("@galacticcouncil/common");var Ts=require("@galacticcouncil/descriptors"),Lo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X2([Ts.XcmV3Junction.Parachain(e.parachainId),s])}};var Do="XTokens",ji=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let i=a.chain,m=n.chain,c="V3",u=m.usesCexForwarding?ds(i,o,m):t,p=z(u),d=i.getAssetId(s),y=(0,Wo.encodeAssetId)(d),A="transfer";return new Ho.ExtrinsicConfig({module:Do,func:A,getTx:v=>v.getUnsafeApi().tx[Do][A]({currency_id:y,amount:e,dest:Lo(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),Jn=()=>({transfer:ji});function l(){return{assetConversion:Qa,assets:Za,balances:so,ethereumXcm:Un,polkadotXcm:$n,router:oo,utility:co,xTokens:Jn}}function dt(t,e){return{prior:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,...s]).build(n):l().utility().batchAll([...s]).build(n)}}}}var Je=require("@galacticcouncil/xc-core");var ea={};Kt(ea,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Oo,AssethubClient:()=>he,BaseClient:()=>Fe,HydrationClient:()=>we,getAllAssetDepositLimits:()=>Yn,getAssetDepositLimit:()=>Qn,getGlobalWithdrawLimit:()=>Zn});var Mo=require("@galacticcouncil/common"),sn=require("@galacticcouncil/descriptors"),Fe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??sn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=(0,Mo.encodeLocation)(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,sn.XcmVersionedAssetId.V4(a));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var ot=require("@galacticcouncil/descriptors"),Vo=require("@galacticcouncil/common"),nn=require("@polkadot-api/substrate-bindings"),Uo=require("@polkadot-api/utils");var he=class extends Fe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,Vo.encodeLocation)(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,Uo.toHex)((0,nn.Twox128)(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let a=nn.u128.dec(o);return a===0n?e.defaultFee:a}async calculateDeliveryFee(e,s){let n=ot.XcmVersionedLocation.V5({parents:1,interior:ot.XcmV5Junctions.X1(ot.XcmV5Junction.Parachain(s))}),o=ot.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,ot.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let i=a.value.value.find(c=>{let u=c.id;return u&&u.parents&&u.parents===1&&u.interior.type==="Here"});if(!i)throw Error("Can't find XCM delivery fee in DOT.");let m=i.fun.value;if(typeof m=="bigint")return m;throw Error("Can't parse delivery fee.")}};var Ko=require("@galacticcouncil/descriptors");var Oo=14400;function No(t,e,s,n,o,a){let i=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,m=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,c=e?.decimals??12,u=!1,p,d,y;s&&(s.type==="Locked"?(p=s.value,u=o<s.value):(d=s.value[0],y=s.value[1]));let A=n?.type==="Local"?"Local":"External",v=!u&&d!==void 0&&d+Oo<=o,I=null;if(i!==null)if(u)I=0n;else if(v)I=i;else{let _=y??a,G=a>_?a-_:0n;I=i>G?i-G:0n}return{assetId:t,symbol:m,decimals:c,limit:i,locked:u,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:y,currentIssuance:a,headroom:I,category:A,periodExpired:v}}async function Qn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,i,m]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return No(e,n,o,a,i,m)}async function Yn(t){let[e,s,n,o,a,i]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),m=new Map(s.map(d=>[d.keyArgs[0],d.value])),c=new Map(n.map(d=>[d.keyArgs[0],d.value])),u=new Map(i.map(d=>[d.keyArgs[0],d.value])),p=new Map;for(let d of e){let y=d.keyArgs[0],A=d.value;if(A?.xcm_rate_limit==null)continue;let v=y===0?a:u.get(y)??0n,I=No(y,A,m.get(y),c.get(y),o,v);p.set(y.toString(),I)}return p}async function Zn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,i=a!==void 0&&o<a,[m,c]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:i,lockdownUntilMs:a};let{limit:u,window:p}=e,d=m;if(!i&&p>0n){let A=o>c?o-c:0n;if(A>0n){let v=A>p?p:A,I=m*v/p;d=m>I?m-I:0n}}let y=i||d>=u?0n:u-d;return{configured:!0,limit:u,windowMs:p,used:d,lastUpdateMs:c,headroom:y,lockdown:i,lockdownUntilMs:a}}var we=class extends Fe{constructor(e){super(e,Ko.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:i}=o;return BigInt(a)-BigInt(i)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return Qn(this.api(),s)}getAllAssetDepositLimits(){return Yn(this.api())}getGlobalWithdrawLimit(){return Zn(this.api())}};function zi(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,a=Je.Wormhole.fromChain(n),i=Je.Wormhole.fromChain(o),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Je.Abi.TokenRelayer,address:a.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function $i(){return{TokenRelayer:zi}}function Ji(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,i=Je.Snowbridge.fromChain(o),m=new Fe(a),c=new he(t.hub),u=qn(e,a),[p,d]=await Promise.all([m.calculateDestinationFee(u,w),c.calculateDeliveryFee(u,a.parachainId)]),y=d+cs(p,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Je.Abi.Snowbridge,address:i.getGateway(),args:[A,a.parachainId,y],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:y}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new he(t.hub),i=Po(e,o),m=qn(e,o),[c,u,p,d,y]=await Promise.all([a.getBridgeDeliveryFee(),a.calculateDeliveryFee(i,bo),a.calculateDestinationFee(i,s),a.calculateDeliveryFee(m,o.parachainId),a.calculateDestinationFee(m,s)]);return{amount:c+u+cs(p,25n)+d+cs(y,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:u,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:y}}}})}}function Qi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,i=t?.reserve;if(Bo(e,o,a,i),i){let y=new Fe(a),A=new Fe(i),v=jn(e,a),I=Fo(e,i,a),[_,G]=await Promise.all([y.calculateDestinationFee(v,e),A.calculateDestinationFee(I,e)]),q=G+_,k=cs(q,20n),Ze=k-q;return{amount:k,breakdown:{reserveFee:G,destinationFee:_,margin:Ze}}}let m=new Fe(a),c=Eo(e,a),u=await m.calculateDestinationFee(c,e),p=cs(u,20n),d=p-u;return{amount:p,breakdown:{totalFee:u,margin:d}}}})}}function Yi(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=Je.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Je.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:Yi,XcmPaymentApi:Qi,Snowbridge:Ji,Wormhole:$i}}var Zi="0";function ec(){return{build:async({address:t,chain:e})=>{let n=await new we(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Zi,a=e.findAssetById(o);return a?a.asset:J}}}var tc=()=>({accountCurrencyMap:ec});function vs(){return{multiTransactionPayment:tc}}var be=require("@galacticcouncil/xc-core"),me=require("@solana/spl-token"),Qe=require("@solana/web3.js"),ta=require("@wormhole-foundation/sdk-connect"),Tt=require("@wormhole-foundation/sdk-solana-tokenbridge"),sc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:a,destination:i}=e,m=o.chain,c=m,u=be.Wormhole.fromChain(m),p=be.Wormhole.fromChain(t.moonchain),d=be.Precompile.Bridge,y=await be.mrl.createPayload(i.chain,s),A=new Qe.PublicKey(a),v=new ta.UniversalAddress(d),I=p.getWormholeId(),_=A,G=0,q=Qe.Keypair.generate(),k=Qe.Keypair.generate(),Ze=await(0,me.getMinimumBalanceForRentExemptAccount)(c.connection),Xt=Qe.SystemProgram.createAccount({fromPubkey:_,newAccountPubkey:k.publicKey,lamports:Ze,space:me.ACCOUNT_SIZE,programId:me.TOKEN_PROGRAM_ID}),rt=Qe.SystemProgram.transfer({fromPubkey:_,lamports:n,toPubkey:k.publicKey}),ht=(0,me.createInitializeAccountInstruction)(k.publicKey,me.NATIVE_MINT,_),it=(0,Tt.createApproveAuthoritySignerInstruction)(u.getTokenBridge(),k.publicKey,_,n),bt=(0,Tt.createTransferNativeWithPayloadInstruction)(c.connection,u.getTokenBridge(),u.getCoreBridge(),a,q.publicKey,k.publicKey,me.NATIVE_MINT,G,n,v.toUint8Array(),I,y.toU8a()),ws=(0,me.createCloseAccountInstruction)(k.publicKey,_,_);return new be.ProgramConfig({instructions:[Xt,rt,ht,it,bt,ws],signers:[q,k],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ze)})}})}),nc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:a,sender:i,destination:m}=e,c=a.chain,u=c,p=be.Wormhole.fromChain(c),d=be.Wormhole.fromChain(t.moonchain),y=be.Precompile.Bridge,A=await be.mrl.createPayload(m.chain,s),v=new Qe.PublicKey(i),I=a.chain.getAssetId(o),_=new Qe.PublicKey(I),G=await(0,me.getAssociatedTokenAddress)(_,v),q=new ta.UniversalAddress(y),k=d.getWormholeId();if(await(0,Tt.getWrappedMeta)(u.connection,p.getTokenBridge(),_).catch(bt=>null).then(bt=>bt!=null))throw new Error("Wrapped assets not supported yet");let Xt=0,rt=Qe.Keypair.generate(),ht=(0,Tt.createApproveAuthoritySignerInstruction)(p.getTokenBridge(),G,v,n),it=(0,Tt.createTransferNativeWithPayloadInstruction)(u.connection,p.getTokenBridge(),p.getCoreBridge(),i,rt.publicKey,G,_,Xt,n,q.toUint8Array(),k,A.toU8a());return new be.ProgramConfig({instructions:[ht,it],signers:[rt],func:"TransferWithPayload",module:"TokenBridge"})}})}),Go=()=>({transferNativeWithPayload:sc,transferTokenWithPayload:nc});function qo(){return{TokenBridge:Go}}function Bs(){return{Wormhole:qo}}var ft=require("@galacticcouncil/xc-core"),jo=require("@mysten/sui/transactions"),an=require("@mysten/sui/utils"),zo=require("@wormhole-foundation/sdk-connect"),Ps=require("@wormhole-foundation/sdk-sui"),ac=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:a,destination:i}=e,m=o.chain,c=m,u=ft.Wormhole.fromChain(m),p=ft.Wormhole.fromChain(t.moonchain),d=0,y=ft.Precompile.Bridge,A=await ft.mrl.createPayload(i.chain,s),v=new zo.UniversalAddress(y),I=p.getWormholeId(),_=an.SUI_TYPE_ARG,[G,q]=await Promise.all([(0,Ps.getPackageId)(c.client,u.coreBridge),(0,Ps.getPackageId)(c.client,u.tokenBridge)]),k=new jo.Transaction,[Ze]=k.splitCoins(k.gas,[k.pure.u64(n)]),[Xt]=k.splitCoins(k.gas,[k.pure.u64(i.fee.amount)]),[rt]=k.moveCall({target:`${q}::state::verified_asset`,arguments:[k.object(u.tokenBridge)],typeArguments:[_]}),ht=!1,it=await(async()=>{let Nt=await(0,Ps.getOldestEmitterCapObjectId)(c.client,G,a);if(Nt!==null)return k.object(Nt);{let[Xs]=k.moveCall({target:`${G}::emitter::new`,arguments:[k.object(u.coreBridge)]});return ht=!0,Xs}})(),[bt,ws]=k.moveCall({target:`${q}::transfer_tokens_with_payload::prepare_transfer`,arguments:[it,rt,Ze,k.pure.u16(I),k.pure.vector("u8",v.toUint8Array()),k.pure.vector("u8",A.toU8a()),k.pure.u32(d)],typeArguments:[_]});k.moveCall({target:`${q}::coin_utils::return_nonzero`,arguments:[ws],typeArguments:[_]});let[_n]=k.moveCall({target:`${q}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[k.object(u.tokenBridge),bt],typeArguments:[_]});return k.moveCall({target:`${G}::publish_message::publish_message`,arguments:[k.object(u.coreBridge),Xt,_n,k.object(an.SUI_CLOCK_OBJECT_ID)]}),ht&&k.transferObjects([it],k.pure.address(a)),new ft.MoveConfig({transaction:k,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),$o=()=>({transferNativeWithPayload:ac});function Jo(){return{TokenBridge:$o}}function sa(){return{Wormhole:Jo}}var aa={};Kt(aa,{Tag:()=>pt});var pt=(a=>(a.Basejump="Basejump",a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(pt||{});function Qo(t,e){return new oa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:0,asset:e}},contract:H().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})}function Yo(t,e){return new oa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:H().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var oc=[Qo(ct,et)],rc=[Yo(ct,et)],er=new Zo.ChainRoutes({chain:qt,routes:[...oc,...rc]});var Mt=require("@galacticcouncil/xc-core");var ra=require("@galacticcouncil/xc-core");function ps(t,e){return new ra.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:0,asset:e}},contract:H().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})}function ue(t,e){return new ra.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:T}),asset:R}},contract:H().Snowbridge().sendToken(),tags:["Snowbridge"]})}var ic=[new Mt.AssetRoute({source:{asset:R,balance:r().evm().native(),destinationFee:{asset:R,balance:r().evm().native()}},destination:{chain:f,asset:te,fee:{amount:0,asset:te}},contract:H().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]}),ps(xe,ne),ps(st,Be),ps(x,ve),ps(b,Te),ps(tt,ke)],cc=[new Mt.AssetRoute({source:{asset:R,balance:r().evm().native(),fee:{asset:R,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:f,asset:R,fee:{amount:C().Snowbridge().calculateInboundFee({hub:T}),asset:R}},contract:H().Snowbridge().sendToken(),tags:["Snowbridge"]}),ue(Re,Re),ue(Se,Se),ue(Le,Le),ue(Ue,Ue),ue(Ne,Ne),ue(Ke,Ke),ue(We,We),ue(De,De),ue(Me,Me),ue(Oe,Oe),ue(Ge,Ge),ue(je,je),ue(x,_t),ue(b,Rt)],mp=[new Mt.AssetRoute({source:{asset:R,balance:r().evm().native(),destinationFee:{asset:R,balance:r().evm().erc20()}},destination:{chain:F,asset:te,fee:{amount:0,asset:te}},contract:H().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Mt.AssetRoute({source:{asset:xe,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:xe,balance:r().evm().erc20()}},destination:{chain:F,asset:ne,fee:{amount:0,asset:ne}},contract:H().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],tr=new Mt.ChainRoutes({chain:D,routes:[...ic,...cc]});var sr=[er,tr];var vt=require("@galacticcouncil/xc-core");var on=require("@galacticcouncil/xc-core");var Vt=0,mc=t=>{let{source:e}=t;return!!e.feeSwap},uc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},nr=l().assetConversion().swapTokensForExactTokens({slippage:30});function lc(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().assets().account()},min:At().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:b}},extrinsic:dt(uc,nr).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function rn(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:At().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:dt(mc,nr).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ut(t,e,s){return new on.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().assets().account()},min:At().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function cn(t){return lc(t,f,.02)}var dc=[new vt.AssetRoute({source:{asset:w,balance:r().substrate().system().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().system().account()},min:At().assets().asset()},destination:{chain:f,asset:w,fee:{amount:.001,asset:w}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new vt.AssetRoute({source:{asset:X,balance:r().substrate().foreignAssets().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:f,asset:X,fee:{amount:1e-4,asset:X}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ut(b,f,.02),Ut(x,f,.02),cn(mt)],fc=[new vt.AssetRoute({source:{asset:X,balance:r().substrate().foreignAssets().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:ut,asset:X,fee:{amount:.001,asset:X}},extrinsic:l().polkadotXcm().transferAssets()})],pc=[Ut(b,F,.25),Ut(x,F,.25)],hc=[Ut(b,M,.03),Ut(x,M,.03)],bc=[new vt.AssetRoute({source:{asset:K,balance:r().substrate().foreignAssets().account(),fee:{asset:w,balance:r().substrate().system().account(),extra:Vt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:gt,asset:K,fee:{amount:2.5,asset:K}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],ar=new vt.ChainRoutes({chain:yt,routes:[rn(b,f,.02),rn(x,f,.02),rn(w,f,.001)]}),or=new vt.ChainRoutes({chain:T,routes:[...dc,...fc,...pc,...hc,...bc]});var Ie=require("@galacticcouncil/xc-core");var yc=[new Ie.AssetRoute({source:{asset:W,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:W,fee:{amount:.044306118,asset:W}},extrinsic:l().polkadotXcm().reserveTransferAssets()}),new Ie.AssetRoute({source:{asset:S,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:M}),asset:S}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:B,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:F}),asset:B}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:L,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:V,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:V,fee:{amount:.01,asset:V}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:O,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:O,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:M}),asset:O}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:Q,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:Q,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:M}),asset:Q}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:b,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],rr=new Ie.ChainRoutes({chain:se,routes:[...yc]});var ye=require("@galacticcouncil/xc-core");var gc=[new ye.AssetRoute({source:{asset:S,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:O,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:O,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:O}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:Q,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:Q,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:w,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:w,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:w}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ye.AssetRoute({source:{asset:W,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:W,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:se}),asset:W}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:B,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:F}),asset:B}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:L,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:L,fee:{amount:625e-8,asset:L}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],xc=[new ye.AssetRoute({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:T,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:T,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],ir=new ye.ChainRoutes({chain:M,routes:[...gc,...xc]});var Ce=require("@galacticcouncil/xc-core");var Ac="0",P=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Ac?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),$=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:P()});var Bt=require("@galacticcouncil/xc-core");var wc=.9,Cc=1,kc=1,mn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},un=l().router().buy({slippage:30});function N(t,e,s){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function hs(t,e,s){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function Pt(t,e){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function ln(t){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:T,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:dt(mn,un).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function Tc(t,e,s="LocalReserve"){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:kc,asset:B}},extrinsic:dt(mn,un).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Et(t){return Tc(t,F,"DestinationReserve")}function vc(t,e,s,n,o,a){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{asset:t,balance:P()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:dt(mn,un).priorMulti([l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),l().polkadotXcm().send().transact({fee:wc})]),transact:{chain:F,fee:{amount:Cc,asset:B,balance:P()},extrinsic:l().ethereumXcm().transact(o)},tags:a})}function Xe(t,e,s){return vc(t,e,s,0,H().Batch().batchAll([H().Erc20().approve(n=>n.getTokenBridge()),H().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function ae(t,e,s){return new Bt.AssetRoute({source:{asset:t,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:T}),asset:w}},extrinsic:dt(mn,un).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Bc=[Pt(w,T),Pt(X,T),Pt(b,T),Pt(x,T),ln(mt)],Pc=[N(W,se),N(S,se,M),N(B,se,F),new Ce.AssetRoute({source:{asset:L,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:se,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ce.AssetRoute({source:{asset:V,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:se,asset:V,fee:{amount:.01,asset:V}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),N(O,se,M),N(Q,se,M),N(b,se,T),N(x,se,T)],Ec=[N(S,M),N(O,M),N(Q,M),N(W,M,se),N(B,M,F),new Ce.AssetRoute({source:{asset:L,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:M,asset:L,fee:{amount:5e-6,asset:L}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),N(b,M,T),N(x,M,T),new Ce.AssetRoute({source:{asset:w,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:M,asset:w,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:T}),asset:w}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Fc=[hs(L,Pe,62e-8),hs(V,Pe,.0019213457),hs(J,Pe,.5),hs(b,Pe,.3),hs(x,Pe,.3),new Ce.AssetRoute({source:{asset:O,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:Pe,asset:O,fee:{amount:.01,asset:w}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ce.AssetRoute({source:{asset:w,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:Pe,asset:w,fee:{amount:.05,asset:w}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Ic=[N(J,F),N(B,F),N(b,F,T),N(x,F,T),Et(ne),Et(ke),Et(ve),Et(Te),Et(Be),Et(te),Et(j)],Xc=[new Ce.AssetRoute({source:{asset:K,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:gt,asset:K,fee:{amount:2.5,asset:K}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Rc=[N(qe,ts)],_c=[new Ce.AssetRoute({source:{asset:ge,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:$t,asset:ge,fee:{amount:.04,asset:ge}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Sc=[N(He,Qt)],Lc=[new Ce.AssetRoute({source:{asset:le,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:ns,asset:le,fee:{amount:.02,asset:le}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Dc=[new Ce.AssetRoute({source:{asset:Ae,balance:P(),fee:$(),destinationFee:{balance:P()}},destination:{chain:es,asset:Ae,fee:{amount:1.1,asset:Ae}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Hc=[N(Ve,Yt)],Wc=[N(_e,jt)],Mc=[Xe(et,ct,qt)],Vc=[Xe(ne,xe,D),Xe(te,R,D),Xe(Be,st,D),Xe(Te,b,D),Xe(ve,x,D),Xe(ke,tt,D)],Uc=[ae(R,R,D),ae(Re,Re,D),ae(Se,Se,D),ae(Le,Le,D),ae(Ue,Ue,D),ae(Ne,Ne,D),ae(Ke,Ke,D),ae(Ge,Ge,D),ae(We,We,D),ae(De,De,D),ae(Me,Me,D),ae(Oe,Oe,D),ae(je,je,D),ae(_t,x,D),ae(Rt,b,D)],Oc=[Xe(j,j,xt),Xe(re,re,xt),Xe(ie,ie,xt)],Nc=[Xe(ce,ce,as)],Kc=[Pt(w,yt),Pt(b,yt),Pt(x,yt)],cr=new Ce.ChainRoutes({chain:f,routes:[...Wc,...Bc,...Pc,...Mc,...Ec,...Kc,..._c,...Uc,...Vc,...Fc,...Sc,...Lc,...Ic,...Xc,...Hc,...Dc,...Oc,...Nc,...Rc]});var Ot=require("@galacticcouncil/xc-core");var ia=()=>r().substrate().tokens().accounts();function dn(t,e){return new Ot.AssetRoute({source:{asset:t,balance:ia(),fee:{asset:V,balance:ia()},destinationFee:{balance:ia()}},destination:{chain:f,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:l().xTokens().transfer()})}var Gc=[new Ot.AssetRoute({source:{asset:V,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:V,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:l().xTokens().transfer()}),new Ot.AssetRoute({source:{asset:L,balance:r().substrate().tokens().accounts(),fee:{asset:V,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:l().xTokens().transfer()}),new Ot.AssetRoute({source:{asset:J,balance:r().substrate().tokens().accounts(),fee:{asset:V,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:J,fee:{amount:.5,asset:J}},extrinsic:l().xTokens().transfer()}),dn(O,M),dn(b,T),dn(x,T),dn(w,T)],mr=new Ot.ChainRoutes({chain:Pe,routes:[...Gc]});var It=require("@galacticcouncil/xc-core");var ca=require("@galacticcouncil/xc-core");function qc(t,e,s){return new ca.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:B,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:H().PolkadotXcm().transferAssetsToPara32()})}function jc(t,e,s){return new ca.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:B,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:H().PolkadotXcm().transferAssetsToPara32()})}function Ft(t,e){return qc(t,f,e)}function fn(t,e){return jc(t,f,e)}var zc=[new It.AssetRoute({source:{asset:B,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:B,fee:{amount:.05,asset:B}},contract:H().PolkadotXcm().transferAssetsToPara32()}),fn(J,.6),fn(b,.3),fn(x,.3),Ft(ne,.004),Ft(ke,.004),Ft(ve,.004),Ft(Te,.004),Ft(Be,1e-7),Ft(te,2e-6),Ft(j,2e-5)],$c=[new It.AssetRoute({source:{asset:b,balance:r().evm().erc20(),fee:{asset:B,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:T,asset:b,fee:{amount:.18,asset:b}},contract:H().PolkadotXcm().transferAssetsToPara32()}),new It.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:B,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:T,asset:x,fee:{amount:.18,asset:x}},contract:H().PolkadotXcm().transferAssetsToPara32()})],yh=[new It.AssetRoute({source:{asset:te,balance:r().evm().erc20(),fee:{asset:B,balance:r().substrate().system().account()},destinationFee:{asset:te,balance:r().evm().erc20()}},destination:{chain:D,asset:R,fee:{amount:C().Wormhole().TokenRelayer().calculateRelayerFee(),asset:R}},contract:H().Batch().batchAll([H().Erc20().approve(t=>t.getTokenRelayer()),H().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new It.AssetRoute({source:{asset:ne,balance:r().evm().erc20(),fee:{asset:B,balance:r().substrate().system().account()},destinationFee:{asset:ne,balance:r().evm().erc20()}},destination:{chain:D,asset:xe,fee:{amount:C().Wormhole().TokenRelayer().calculateRelayerFee(),asset:xe}},contract:H().Batch().batchAll([H().Erc20().approve(t=>t.getTokenRelayer()),H().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],ur=new It.ChainRoutes({chain:F,routes:[...zc,...$c]});var Es=require("@galacticcouncil/xc-core");var Jc=[new Es.AssetRoute({source:{asset:K,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:K,fee:{amount:.01,asset:K}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Qc=[new Es.AssetRoute({source:{asset:K,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:T,asset:K,fee:{amount:.1,asset:K}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],lr=new Es.ChainRoutes({chain:gt,routes:[...Jc,...Qc]});var pn=require("@galacticcouncil/xc-core");var Yc=[new pn.AssetRoute({source:{asset:qe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:qe,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:qe}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],dr=new pn.ChainRoutes({chain:ts,routes:[...Yc]});var hn=require("@galacticcouncil/xc-core");var Zc=[new hn.AssetRoute({source:{asset:ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:ge,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:ge}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],fr=new hn.ChainRoutes({chain:$t,routes:[...Zc]});var bn=require("@galacticcouncil/xc-core");var em=[new bn.AssetRoute({source:{asset:Ae,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:Ae,fee:{amount:.2,asset:Ae}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],pr=new bn.ChainRoutes({chain:es,routes:[...em]});var yn=require("@galacticcouncil/xc-core");var tm=[new yn.AssetRoute({source:{asset:_e,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:_e,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:_e}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],hr=new yn.ChainRoutes({chain:jt,routes:[...tm]});var gn=require("@galacticcouncil/xc-core");var sm=[new gn.AssetRoute({source:{asset:He,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:He,fee:{amount:2,asset:He}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],br=new gn.ChainRoutes({chain:Qt,routes:[...sm]});var xn=require("@galacticcouncil/xc-core");var nm=[new xn.AssetRoute({source:{asset:le,balance:r().substrate().system().account(),fee:{asset:le,balance:r().substrate().system().account(),extra:.030555},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:le,fee:{amount:.03,asset:le}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],yr=new xn.ChainRoutes({chain:ns,routes:[...nm]});var An=require("@galacticcouncil/xc-core");var am=[new An.AssetRoute({source:{asset:Ve,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:Ve,fee:{amount:.205,asset:Ve}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],gr=new An.ChainRoutes({chain:Yt,routes:[...am]});var xr=[hr,or,ar,rr,ir,cr,mr,ur,lr,gr,dr,fr,pr,br,yr];var bs=require("@galacticcouncil/xc-core");var om=[new bs.AssetRoute({source:{asset:j,balance:r().solana().native(),destinationFee:{asset:j,balance:r().solana().native()}},destination:{chain:f,asset:j,fee:{amount:0,asset:j}},program:Bs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]}),new bs.AssetRoute({source:{asset:re,balance:r().solana().token(),fee:{asset:j,balance:r().solana().native()},destinationFee:{asset:re,balance:r().solana().token()}},destination:{chain:f,asset:re,fee:{amount:0,asset:re}},program:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]}),new bs.AssetRoute({source:{asset:ie,balance:r().solana().token(),fee:{asset:j,balance:r().solana().native()},destinationFee:{asset:ie,balance:r().solana().token()}},destination:{chain:f,asset:ie,fee:{amount:0,asset:ie}},program:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})],Ar=new bs.ChainRoutes({chain:xt,routes:[...om]});var wr=[Ar];var wn=require("@galacticcouncil/xc-core");var rm=[new wn.AssetRoute({source:{asset:ce,balance:r().sui().native(),destinationFee:{asset:ce,balance:r().sui().native()}},destination:{chain:f,asset:ce,fee:{amount:0,asset:ce}},move:sa().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})],Cr=new wn.ChainRoutes({chain:as,routes:[...rm]});var kr=[Cr];var Fs=require("@galacticcouncil/xc-core");var im=require("@galacticcouncil/xc-core");var ma=.0015;var cm=new Fs.AssetRoute({source:{asset:X,balance:r().substrate().system().account(),fee:{asset:X,balance:r().substrate().system().account(),extra:ma},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:T,asset:X,fee:{amount:.002,asset:X}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),mm=new Fs.AssetRoute({source:{asset:X,balance:r().substrate().system().account(),fee:{asset:X,balance:r().substrate().system().account(),extra:ma},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:os,asset:X,fee:{amount:.0012,asset:X}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Tr=new Fs.ChainRoutes({chain:ut,routes:[mm,cm]});var Is=require("@galacticcouncil/xc-core");var um="0",ys=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===um?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),ua=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:ys()});var lm=[new Is.AssetRoute({source:{asset:b,balance:ys(),fee:ua(),destinationFee:{balance:ys()}},destination:{chain:ut,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],dm=[new Is.AssetRoute({source:{asset:X,balance:ys(),fee:ua(),destinationFee:{balance:ys()}},destination:{chain:ut,asset:X,fee:{amount:.0012,asset:X}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],vr=new Is.ChainRoutes({chain:os,routes:[...lm,...dm]});var Br=[Tr,vr];var fm=[...sr,...xr,...wr,...kr,...Br],Pr=new Map(fm.map(t=>[t.chain.key,t]));var la=require("@galacticcouncil/xc-core");var gs=require("@galacticcouncil/xc-core");var Cn=class extends gs.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new gs.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},kn=class extends gs.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:i}=n,m=await this.getMin(o,a),c=a.copyWith({amount:a.amount+m});if(i.amount<c.amount)throw new gs.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new he(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};var xs=require("@galacticcouncil/xc-core");var Tn=class extends xs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new he(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new he(a).getSystemAccountBalance(n)===0n)throw new xs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},vn=class extends xs.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new he(a).checkIfFrozen(n,s))throw new xs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Ye=require("@galacticcouncil/xc-core");var pm=12,hm=1,bm=18,Bn=class extends Ye.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new we(n),a=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return a||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,i=new we(a),m=await i.getFeeAsset(n),c=a.findAssetById(m),u=c.min||hm,p=c.decimals||pm,d=u*Math.pow(10,p),y=await i.getAssetBalance(n,m);if(BigInt(d*1.1)>y)throw new Ye.TransferValidationError("Insufficient_Ed",{amount:d,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Pn=class extends Ye.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,m=await new we(a).getAssetDepositLimit(n);if(m.locked)throw new Ye.TransferValidationError("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:m.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(m.headroom!==null&&s>m.headroom)throw new Ye.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:m.headroom,limit:m.limit,error:"circuitBreaker.depositLimitExceeded"})}},En=class extends Ye.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new we(n).getGlobalWithdrawLimit();if(a.lockdown)throw new Ye.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Fn=class extends Ye.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,i=new we(a),m=a.getBalanceAssetId(B),c=a.getAssetDecimals(B)||bm,u=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(u))throw new Ye.TransferValidationError("Insufficient_Ed",{amount:1,asset:B.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var oe={isAny:()=>!0,isHydration:t=>t instanceof la.Parachain&&t.parachainId===2034,isHub:t=>t instanceof la.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Er=[new Cn(oe.isAny,oe.isAny),new kn(oe.isAny,oe.isAny),new Tn(oe.isAny,oe.isHub),new vn(oe.isHub,oe.isAny),new Bn(oe.isAny,oe.isHydration),new Fn(oe.isHydration,oe.isAny),new Pn(oe.isAny,oe.isHydration),new En(oe.isHydration,oe.isAny)];var ha={};Kt(ha,{AssethubDex:()=>pa,HydrationDex:()=>da});var As=require("@galacticcouncil/sdk-next"),Ir=require("@galacticcouncil/common"),Xr=require("polkadot-api");var Fr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:In}=As.pool,{TradeRouteBuilder:ym,TradeRouter:gm}=As.sor,{TxBuilderFactory:xm}=As.tx,da=class{chain;client;poolCtx;txBuilder;getCtx=Fr(async e=>{console.log("init swap router",e,"\u2705");let s=new gm(this.poolCtx);return s.withFilter({useOnly:[In.Aave,In.Omni,In.Stable,In.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new we(this.chain),this.txBuilder=new xm(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=o.amount,u=await this.getCtx(1),p=await u.getMostLiquidRoute(i,m),d=await u.getBuy(i,m,c,p),v=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Xr.Binary.toHex(v)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let u=await c.getMostLiquidRoute(a,i),p=await c.getBuy(a,i,m,u);return{amount:p.amountIn,route:ym.build(p.swaps)}}catch(u){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw u}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let a=o*s,i=Math.pow(10,Ir.RUNTIME_DECIMALS);return a/BigInt(i)}};var fa=require("@galacticcouncil/common"),pa=class{chain;client;constructor(e){this.chain=e,this.client=new he(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,fa.encodeLocation)(o),(0,fa.encodeLocation)(a),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var Lr=require("@galacticcouncil/xc-core");var Rr=require("@galacticcouncil/xc-core");function Xn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Rr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function _r(t){let{decimals:e,id:s}=t;return{asset:Xn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Sr(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Xn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Rn=class extends Lr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let i=Xn(a),m=_r(a),c=Sr(a);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,cn(i)),this.updateChainRoute(s,ln(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
package/build/index.mjs CHANGED
@@ -1 +1 @@
1
- var So=Object.defineProperty;var qt=(t,e)=>{for(var s in e)So(t,s,{get:e[s],enumerable:!0})};import{Asset as y}from"@galacticcouncil/xc-core";var Te=new y({key:"aave",originSymbol:"AAVE"}),ve=new y({key:"ajun",originSymbol:"AJUN"}),D=new y({key:"astr",originSymbol:"ASTR"}),I=new y({key:"bnc",originSymbol:"BNC"}),Fs=new y({key:"bsx",originSymbol:"BSX"}),Be=new y({key:"cfg_new",originSymbol:"CFG"}),le=new y({key:"cru",originSymbol:"CRU"}),de=new y({key:"dai",originSymbol:"DAI"}),ee=new y({...de,key:"dai_mwh"}),x=new y({key:"dot",originSymbol:"DOT"}),F=new y({key:"eth",originSymbol:"ETH"}),Pe=new y({key:"ena",originSymbol:"ENA"}),Qe=new y({key:"eurc",originSymbol:"EURC"}),Oe=new y({...Qe,key:"eurc_mwh"}),T=new y({key:"glmr",originSymbol:"GLMR"}),q=new y({key:"hdx",originSymbol:"HDX"}),X=new y({key:"ibtc",originSymbol:"IBTC"}),H=new y({key:"intr",originSymbol:"INTR"}),se=new y({key:"jitoSol",originSymbol:"jitoSOL"}),E=new y({key:"ksm",originSymbol:"KSM"}),Ee=new y({key:"ldo",originSymbol:"LDO"}),Fe=new y({key:"laos",originSymbol:"LAOS"}),Ie=new y({key:"lbtc",originSymbol:"LBTC"}),re=new y({key:"ewt",originSymbol:"EWT"}),Xe=new y({key:"link",originSymbol:"LINK"}),U=new y({key:"myth",originSymbol:"MYTH"}),Re=new y({key:"neuro",originSymbol:"NEURO"}),fe=new y({key:"pen",originSymbol:"PEN"}),_e=new y({key:"paxg",originSymbol:"PAXG"}),ne=new y({key:"prime",originSymbol:"PRIME"}),Se=new y({key:"sky",originSymbol:"SKY"}),N=new y({key:"sol",originSymbol:"SOL"}),ae=new y({key:"sui",originSymbol:"SUI"}),De=new y({key:"susde",originSymbol:"sUSDe"}),Ge=new y({key:"susds",originSymbol:"sUSDS"}),he=new y({...Ge,key:"susds_mwh"}),Le=new y({key:"tbtc",originSymbol:"tBTC"}),He=new y({key:"trac",originSymbol:"TRAC"}),We=new y({key:"unq",originSymbol:"UNQ"}),f=new y({key:"usdt",originSymbol:"USDT"}),be=new y({...f,key:"usdt_mwh"}),bt=new y({...f,key:"usdt_eth"}),b=new y({key:"usdc",originSymbol:"USDC"}),ye=new y({...b,key:"usdc_mwh"}),yt=new y({...b,key:"usdc_eth"}),z=new y({key:"vastr",originSymbol:"vASTR"}),W=new y({key:"vdot",originSymbol:"vDOT"}),Pt=new y({key:"weth",originSymbol:"WETH"}),Y=new y({...Pt,key:"weth_mwh"}),je=new y({key:"wbtc",originSymbol:"WBTC"}),xe=new y({...je,key:"wbtc_mwh"}),Me=new y({key:"wsteth",originSymbol:"wstETH"}),Ye=new y({key:"wud",originSymbol:"WUD"}),Do=[Te,ve,D,Fs,Be,le,I,de,ee,x,Pe,Qe,Oe,F,T,q,X,H,E,Ee,Fe,Ie,re,se,Xe,U,Re,_e,fe,ne,Se,N,ae,De,Ge,he,He,Le,We,b,ye,yt,f,be,bt,z,W,je,xe,Pt,Y,Me,Ye],Lo=new Map(Do.map(t=>[t.key,t]));import{ChainEcosystem as Ho,EvmChain as Wo}from"@galacticcouncil/xc-core";import{base as Mo}from"viem/chains";var Et=new Wo({id:8453,key:"base",name:"Base",assetsData:[{asset:F,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Qe,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:b,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Ho.Ethereum,evmChain:Mo,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});import{ChainEcosystem as Vo,EvmChain as Uo}from"@galacticcouncil/xc-core";import{mainnet as Ko}from"viem/chains";var R=new Uo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:F,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Te,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Be,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Pt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:de,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:De,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ge,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Le,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:je,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Ie,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Ee,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:_e,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Se,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:He,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Me,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Vo.Ethereum,evmChain:Ko,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585"}});var ln=[Et,R];import{ChainEcosystem as No,Parachain as Oo}from"@galacticcouncil/xc-core";var Ft=new Oo({assetsData:[{asset:ve,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:No.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as Go,Parachain as dn}from"@galacticcouncil/xc-core";var fn={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Ye,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:U,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:E,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Go.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},C=new dn({...fn,key:"assethub",name:"AssetHub Polkadot"}),rt=new dn({...fn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as jo,Parachain as qo}from"@galacticcouncil/xc-core";var Z=new qo({assetsData:[{asset:D,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:X,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:jo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as zo,Parachain as $o}from"@galacticcouncil/xc-core";var Jo=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new $o({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:T,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:X,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:zo.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Jo});import{ChainEcosystem as Qo,Parachain as Yo,XcmVersion as Zo}from"@galacticcouncil/xc-core";var It=new Yo({assetsData:[{asset:le,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qo.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:Zo.v3});import{ChainEcosystem as sr,EvmParachain as nr}from"@galacticcouncil/xc-core";import{defineChain as ar}from"viem";import{getSs58AddressInfo as er}from"@polkadot-api/substrate-bindings";var tr="ETH\0",ss=class{async toH160(e){let s=er(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,r=Buffer.from(tr),a=n.slice(r.length,-8);return"0x"+Buffer.from(a).toString("hex")}};var or=new ss,Is=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.ibp.network","https://rpc.lait.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Xs=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],rr=ar({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Is,webSocket:Xs},default:{http:Is,webSocket:Xs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new nr({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:Te,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ve,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:I,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Be,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:le,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:F,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Pe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:X,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:se,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ne,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:re,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Ee,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:E,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Fe,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Ie,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Xe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:_e,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:U,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Re,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Se,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:N,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ae,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:De,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ge,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:he,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Le,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:He,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:We,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:b,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ye,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Oe,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:yt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:f,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:be,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:z,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:je,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:xe,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Pt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Y,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Me,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Ye,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:sr.Polkadot,evmChain:rr,evmResolver:or,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Xs,rpcs:Is});import{ChainEcosystem as ir,Parachain as cr,XcmVersion as mr}from"@galacticcouncil/xc-core";var ge=new cr({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:X,decimals:8,id:{Token:X.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:q,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:W,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:ir.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:mr.v3});import{ChainEcosystem as ur,Parachain as lr}from"@galacticcouncil/xc-core";var Xt=new lr({assetsData:[{asset:Fe,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ur.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as dr,EvmParachain as fr}from"@galacticcouncil/xc-core";import{defineChain as pr}from"viem";var hr=pr({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),B=new fr({assetsData:[{asset:T,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ee,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Oe,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:N,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:se,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ne,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:he,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ae,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ye,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:be,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:xe,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Y,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:q,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:f,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:dr.Polkadot,evmChain:hr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as br,Parachain as yr}from"@galacticcouncil/xc-core";var it=new yr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:br.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as xr,Parachain as gr}from"@galacticcouncil/xc-core";var Rt=new gr({assetsData:[{asset:Re,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:xr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Ar,Parachain as wr,XcmVersion as Cr}from"@galacticcouncil/xc-core";var _t=new wr({assetsData:[{asset:fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Ar.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Cr.v3});import{ChainEcosystem as kr,Parachain as Tr}from"@galacticcouncil/xc-core";var vr={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:kr.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},pn=new Tr({...vr,key:"polkadot"});import{ChainEcosystem as Br,Parachain as Pr}from"@galacticcouncil/xc-core";var St=new Pr({assetsData:[{asset:We,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Br.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as Er,Parachain as Fr,XcmVersion as Ir}from"@galacticcouncil/xc-core";var Dt=new Fr({assetsData:[{asset:re,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Er.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Ir.v3});var hn=[Ft,C,rt,Z,L,It,d,Xt,Rt,ge,B,it,_t,pn,St,Dt];import{ChainEcosystem as Xr,SolanaChain as Rr}from"@galacticcouncil/xc-core";var ct=new Rr({id:101,key:"solana",name:"Solana",assetsData:[{asset:N,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ne,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Xr.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var bn=[ct];import{ChainEcosystem as _r,SuiChain as Sr}from"@galacticcouncil/xc-core";var Lt=new Sr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:_r.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var yn=[Lt];import{ChainEcosystem as Dr,Parachain as Lr}from"@galacticcouncil/xc-core";var Ze=new Lr({assetsData:[{asset:E,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Dr.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Hr,Parachain as Wr}from"@galacticcouncil/xc-core";var Ht=new Wr({assetsData:[{asset:Fs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:E,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Hr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var xn=[Ze,Ht];var Mr=[...ln,...hn,...bn,...yn,...xn],Vr=new Map(Mr.map(t=>[t.key,t]));import{ChainRoutes as Pm}from"@galacticcouncil/xc-core";import{AssetRoute as Ma}from"@galacticcouncil/xc-core";var Ha={};qt(Ha,{AssetMinBuilder:()=>mt,BalanceBuilder:()=>o,ContractBuilder:()=>_,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>tt,FeeAmountBuilder:()=>A,FeeAssetBuilder:()=>Yt,MoveBuilder:()=>tn,ProgramBuilder:()=>Zt,XcmTransferType:()=>ie,XcmVersion:()=>et});import{SubstrateQueryConfig as Rs}from"@galacticcouncil/xc-core";function mt(){return{assetRegistry:Ur,assets:Kr}}function Ur(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Rs({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Rs({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Kr(){return{asset:()=>({build:({asset:t})=>new Rs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Nr,ContractConfig as gn}from"@galacticcouncil/xc-core";function An(){return{erc20:Gr,native:Or}}function Or(){return{build:({address:t})=>new gn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Gr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new gn({abi:Nr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as zt}from"@galacticcouncil/xc-core";import{encodeAssetId as _s,encodeLocation as jr}from"@galacticcouncil/common";function wn(){return{assets:qr,system:$r,tokens:Jr,ormlTokens:Qr,foreignAssets:zr}}function qr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=_s(n);return new zt({module:"Assets",func:"Account",args:[r,t],transform:async a=>BigInt(a?.balance?.toString()??"0")})}})}}function zr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let r=s.getAssetXcmLocation(e);if(!r)throw new Error("Missing asset xcm location for "+e.key);let a=jr(r);return new zt({module:"ForeignAssets",func:"Account",args:[a,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function $r(){return{account:()=>({build:({address:t})=>new zt({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),r=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=r?n-r:0n}})})}}function Jr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=_s(n);return new zt({module:"Tokens",func:"Accounts",args:[t,r],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=_s(n);return new zt({module:"OrmlTokens",func:"Accounts",args:[t,r],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as Cn}from"@galacticcouncil/xc-core";function kn(){return{native:Yr,token:Zr}}function Yr(){return{build:({address:t})=>new Cn({address:t,func:"rpc_getBalance",module:"Native"})}}function Zr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Cn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as ei}from"@galacticcouncil/xc-core";function Tn(){return{native:ti}}function ti(){return{build:({address:t})=>new ei({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:An,substrate:wn,solana:kn,sui:Tn}}import{Abi as vn,ContractConfig as si,Precompile as ni}from"@galacticcouncil/xc-core";import{encodeFunctionData as ai}from"viem";var oi=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),r=[0,0],a=s.map(i=>ai({abi:vn[i.module],functionName:i.func,args:i.args}));return new si({abi:vn.Batch,address:ni.Batch,args:[n,r,a,[]],func:"batchAll",module:"Batch"})}}),Bn=()=>({batchAll:oi});import{Abi as ri,ContractConfig as ii,Wormhole as ci}from"@galacticcouncil/xc-core";function Wt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Ve(t){return typeof t=="object"?Object.values(t)[0]:t}function Pn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:r,transact:a}=e,i=a?a.chain:r.chain,m=ci.fromChain(i),c=i.getAssetId(n);return new ii({abi:ri.Erc20,address:Ve(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{Abi as mi,Basejump as ui,ContractConfig as li}from"@galacticcouncil/xc-core";import{h160 as di}from"@galacticcouncil/common";import{AccountId as fi}from"polkadot-api";import{toHex as pi}from"@polkadot-api/utils";var{H160:hi,isEvmAddress:bi}=di;function yi(t){let e=bi(t)?hi.toAccount(t):t;return pi(fi().enc(e))}var xi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r}=t,a=r.chain,i=ui.fromChain(a),m=a.getAssetId(n);return new li({abi:mi.Basejump,address:i.getAddress(),args:[Ve(m),s,yi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),En=()=>({bridgeViaWormhole:xi});import{addr as gi,Abi as Fn,ContractConfig as In,Precompile as Xn}from"@galacticcouncil/xc-core";import{big as Ai}from"@galacticcouncil/common";var{Ss58Addr:Rn}=gi;function wi(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ss(t,e){let s=t.getAssetId(e);return typeof s=="string"?wi(s):s}function _n(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=Ss(r.chain,s);return new In({abi:Fn.PolkadotXcm,address:Xn.PolkadotXcm,args:[n.chain.parachainId,Rn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=Ss(r.chain,s),i=Ss(r.chain,r.destinationFeeBalance),m=Ai.toBigInt(n.fee.amount,n.fee.decimals);return new In({abi:Fn.PolkadotXcm,address:Xn.PolkadotXcm,args:[n.chain.parachainId,Rn.getPubKey(t),[{asset:a,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ci,Abi as ki,ContractConfig as Ti,Snowbridge as vi}from"@galacticcouncil/xc-core";var{Ss58Addr:Bi}=Ci,Pi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a}=t,i=r.chain,m=a.chain,c=vi.fromChain(i),l=i.getAssetId(n),p=Ve(l),h=n.originSymbol==="ETH",g=a.feeBreakdown.bridgeFeeInDot,k=a.fee.amount;return new Ti({abi:ki.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,Bi.getPubKey(e)],g,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),Sn=()=>({sendToken:Pi});import{mrl as Ln,Abi as ns,ContractConfig as as,Precompile as Hn,Wormhole as ut}from"@galacticcouncil/xc-core";import{PublicKey as Dn}from"@solana/web3.js";import{getAssociatedTokenAddress as Ei,NATIVE_MINT as Fi}from"@solana/spl-token";var Ii=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:r,source:a,destination:i}=e,m=ut.fromChain(a.chain),c=ut.fromChain(t.moonchain),l=Hn.Bridge,p=a.chain.getAssetId(r),h=0,g=await Ln.createPayload(i.chain,s);return new as({abi:ns.TokenBridge,address:m.getTokenBridge(),args:[Ve(p),n,c.getWormholeId(),c.normalizeAddress(l),h,g.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Xi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,destination:a}=e,i=ut.fromChain(r.chain),m=ut.fromChain(t.moonchain),c=Hn.Bridge,l=0,p=await Ln.createPayload(a.chain,s);return new as({abi:ns.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Ri=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a,transact:i}=t,m=i?i.chain:r.chain,c=a.chain,l=ut.fromChain(m),p=ut.fromChain(c),h=c.getAssetId(n),g=e;if(c.isSolana()){let S=h==="SOL"?Fi:new Dn(h);g=(await Ei(S,new Dn(e))).toBase58()}let k=m.getAssetId(n),P=0,M=0;return new as({abi:ns.TokenBridge,address:l.getTokenBridge(),args:[Ve(k),s,p.getWormholeId(),p.normalizeAddress(g),P,M],func:"transferTokens",module:"TokenBridge"})}}),_i=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:r}=t,a=ut.fromChain(n.chain),i=ut.fromChain(r.chain),m=0,c=0;return new as({abi:ns.TokenBridge,address:a.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Wn=()=>({transferTokens:Ri,transferTokensWithPayload:Ii,wrapAndTransferETH:_i,wrapAndTransferETHWithPayload:Xi});import{Abi as Si,ContractConfig as Di,Wormhole as Mn}from"@galacticcouncil/xc-core";var Li=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a,transact:i}=t,m=i?i.chain:r.chain,c=a.chain,l=Mn.fromChain(m),p=Mn.fromChain(c),h=0,g=0,k=m.getAssetId(n);return new Di({abi:Si.TokenRelayer,address:l.getTokenRelayer(),args:[Ve(k),s,h,p.getWormholeId(),p.normalizeAddress(e),g],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Vn=()=>({transferTokensWithRelay:Li});function Un(){return{TokenBridge:Wn,TokenRelayer:Vn}}function _(){return{Batch:Bn,Erc20:Pn,Basejump:En,PolkadotXcm:_n,Snowbridge:Sn,Wormhole:Un}}import{ExtrinsicConfig as Hi}from"@galacticcouncil/xc-core";var Kn="AssetConversion",Wi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:r}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=a,c=r,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),h=i.amount+i.amount*BigInt(t.slippage)/100n,g=m.amount;return new Hi({module:Kn,func:e,getTx:k=>k.getUnsafeApi().tx[Kn][e]({path:[l,p],amount_out:g,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Nn=()=>({swapTokensForExactTokens:Wi});import{hub as Mi,MultiAddress as Vi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ui}from"@galacticcouncil/xc-core";var Ki="Assets",Ni=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:r})=>{let a=r.chain,{fee:i}=r,m=s>i.amount?s-i.amount:s,c=a.getMetadataAssetId(e);return new Ui({module:Ki,func:t,getTx:l=>l.getTypedApi(Mi).tx.Assets.transfer({id:Number(c),target:Vi.Id(n),amount:m})})}}},On=()=>({transfer:Ni});import{ExtrinsicConfig as Oi}from"@galacticcouncil/xc-core";var Gn="Balances",Gi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Oi({module:Gn,func:e,getTx:n=>n.getUnsafeApi().tx[Gn][e]({dest:s,keep_alive:t})})}},jn=()=>({transferAll:Gi});import{hydration as ji}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as qi}from"@galacticcouncil/xc-core";var zi="Router",$i=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:r}=s;if(!r)throw new Error("Swap context not found.");let{aIn:a,aOut:i,route:m}=r,c=n,l=c.getMetadataAssetId(a),p=c.getMetadataAssetId(i),h=i.amount,g=a.amount+a.amount*BigInt(t.slippage)/100n;return new qi({module:zi,func:"buy",getTx:k=>k.getTypedApi(ji).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:h,max_amount_in:g,route:m})})}}),qn=()=>({buy:$i});import{ExtrinsicConfig as Ji}from"@galacticcouncil/xc-core";var zn="Utility",Qi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(r=>r.build(s)));return new Ji({module:zn,func:e,getTx:r=>{let a=n.map(i=>i.getTx(r).decodedCall);return r.getUnsafeApi().tx[zn][e]({calls:a})}})}}},$n=()=>({batchAll:Qi});import{Abi as Yi,ExtrinsicConfig as Zi}from"@galacticcouncil/xc-core";import{Binary as ec}from"polkadot-api";import{encodeFunctionData as tc}from"viem";var et=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(et||{}),ie=(r=>(r.Teleport="Teleport",r.LocalReserve="LocalReserve",r.DestinationReserve="DestinationReserve",r.RemoteReserve="RemoteReserve",r))(ie||{});var Jn="EthereumXcm",sc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),r="V1",a=tc({abi:Yi[n.module],functionName:n.func,args:n.args});return new Zi({module:Jn,func:e,getTx:i=>i.getUnsafeApi().tx[Jn][e]({xcm_transaction:{type:r,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:ec.fromHex(a),access_list:void 0}}})})}}},Ds=()=>({transact:sc});import{ExtrinsicConfig as Ct}from"@galacticcouncil/xc-core";import{big as $s}from"@galacticcouncil/common";import{multiloc as kc,ChainEcosystem as js}from"@galacticcouncil/xc-core";import{XcmV3Junctions as pe,XcmV3Junction as Qt,XcmV3JunctionNetworkId as da,XcmV3MultiassetFungibility as At,XcmV4Instruction as Q,XcmV4AssetAssetFilter as Ut,XcmV4AssetWildAsset as Kt,XcmV3WeightLimit as qs,XcmV2MultiassetWildFungibility as Tc,XcmV2OriginKind as vc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as nc}from"@galacticcouncil/descriptors";var ce=340282366920938463463374607431768211455n,xt="0x0000000000000000000000000000000000000000000000000000000000000000",Mt={parents:1,interior:nc.Here()},Qn=0,Yn=1e3,Zn=1002,ea=1,gt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var ta="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as yc,XcmV3MultiassetFungibility as Hs,XcmV3WeightLimit as xc,XcmV4AssetAssetFilter as gc,XcmV4AssetWildAsset as Ac,XcmV4Instruction as $t}from"@galacticcouncil/descriptors";import{acc as ac}from"@galacticcouncil/common";import{XcmV3Junction as sa}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as oc}from"@polkadot-api/substrate-bindings";import{toHex as rc}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return sa.AccountKey20({key:t,network:void 0});let s=oc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return sa.AccountId32({id:rc(s.publicKey),network:void 0})}function Vt(t,e,s){return ac.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as na}from"@galacticcouncil/xc-core";function aa(t,e){let s=na.findNestedKey(t,"GeneralIndex"),n=na.findNestedKey(e,"GeneralIndex"),r=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(r)||Number.isNaN(a)?!1:Number(r)>Number(a)}function $(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var is={};qt(is,{ETHER_TOKEN_ADDRESS:()=>Ls,erc20Location:()=>mc,erc20LocationReanchored:()=>uc,ethereumLocation:()=>ra,parachainLocation:()=>cc});import{XcmV3Junctions as os,XcmV3Junction as rs,XcmV3JunctionNetworkId as ic}from"@galacticcouncil/descriptors";var Ls="0x0000000000000000000000000000000000000000",oa=t=>rs.GlobalConsensus(ic.Ethereum({chain_id:BigInt(t)}));function ra(t){return{parents:2,interior:os.X1(oa(t))}}function cc(t){return{parents:1,interior:os.X1(rs.Parachain(t))}}function mc(t,e){return e===Ls?ra(t):{parents:2,interior:os.X2([oa(t),rs.AccountKey20({key:e})])}}function uc(t){return t===Ls?{parents:0,interior:{type:"Here"}}:{parents:0,interior:os.X1(rs.AccountKey20({key:t}))}}import{encodeLocation as ia}from"@galacticcouncil/common";import{multiloc as lc}from"@galacticcouncil/xc-core";function J(t,e){return dc(e)>=4?ia(t):fc(t)}function dc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function fc(t){return{type:"Concrete",value:ia(t)}}var pc=1e3;function hc(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(r=>r&&typeof r=="object"&&"GlobalConsensus"in r):!1}function bc(t){if(t)return hc(t)?pc:lc.findParachain(t)}function ca(t,e,s,n){let r=e.getAssetXcmLocation(t),a=bc(r),i=n?.parachainId??s.parachainId;if(a&&i!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function Ws(t,e){let s="V4",n=J($(e,t),s),r=xt;return[$t.ReserveAssetDeposited([{id:Mt,fun:Hs.Fungible(ce)},{id:n,fun:Hs.Fungible(ce)}]),$t.ClearOrigin(),$t.BuyExecution({fees:{id:Mt,fun:Hs.Fungible(ce)},weight_limit:xc.Unlimited()}),$t.DepositAsset({assets:gc.Wild(Ac.AllCounted(2)),beneficiary:{parents:0,interior:yc.X1(O(gt))}}),$t.SetTopic(r)]}import{XcmV4Instruction as Ms,XcmV3MultiassetFungibility as Vs,XcmV3WeightLimit as wc}from"@galacticcouncil/descriptors";function ma(t,e){let s="V4",n=J($(e,t),s),r=cs("V4",O(ta),O(gt),n,xt);return[Ms.WithdrawAsset([{id:Mt,fun:Vs.Fungible(ce)},{id:n,fun:Vs.Fungible(ce)}]),Ms.ClearOrigin(),Ms.BuyExecution({fees:{id:Mt,fun:Vs.Fungible(ce)},weight_limit:wc.Unlimited()}),...r.value]}import{XcmV3Junctions as Us,XcmV3Junction as Cc,XcmV3MultiassetFungibility as Jt,XcmV3WeightLimit as Ks,XcmV4AssetAssetFilter as Ns,XcmV4AssetWildAsset as Os,XcmV4Instruction as Ae}from"@galacticcouncil/descriptors";function ua(t,e){let s="V4",n=J($(e,t),s),r=xt;return[Ae.WithdrawAsset([{id:n,fun:Jt.Fungible(ce)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ce)},weight_limit:Ks.Unlimited()}),Ae.DepositAsset({assets:Ns.Wild(Os.AllCounted(1)),beneficiary:{parents:0,interior:Us.X1(O(gt))}}),Ae.SetTopic(r)]}function Gs(t,e){let s="V4",n=J($(e,t),s);return[Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ce)},weight_limit:Ks.Unlimited()}),Ae.DepositAsset({assets:Ns.Wild(Os.AllCounted(1)),beneficiary:{parents:0,interior:Us.X1(O(gt))}})]}function la(t,e,s){let n="V4",r=J($(e,t),n),a=xt,i=Gs(t,s);return[Ae.WithdrawAsset([{id:r,fun:Jt.Fungible(ce)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:r,fun:Jt.Fungible(ce)},weight_limit:Ks.Unlimited()}),Ae.DepositReserveAsset({assets:Ns.Wild(Os.AllCounted(1)),dest:{parents:1,interior:Us.X1(Cc.Parachain(s.parachainId))},xcm:i}),Ae.SetTopic(a)]}var fa=[js.Polkadot,js.Kusama],Bc={parents:1,interior:pe.X1(Qt.Parachain(1e3))},Pc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ec=(t,e)=>!t.ecosystem||!e.ecosystem?!1:fa.includes(t.ecosystem)&&fa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,pa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},qe=(t,e,s)=>{if(Ec(e,s)){let r=s.ecosystem===js.Polkadot?da.Polkadot():da.Kusama();return{type:t,value:{parents:2,interior:pe.X2([Qt.GlobalConsensus(r),Qt.Parachain(s.parachainId)])}}}if(s.parachainId===Qn)return{type:t,value:{parents:1,interior:pe.Here()}};let n=s.key==="ethereum"?Yn:s.parachainId;return{type:t,value:{parents:1,interior:pe.X1(Qt.Parachain(n))}}},wt=(t,e)=>({type:t,value:{parents:0,interior:pe.X1(e)}}),zs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Pc(s)?Bc:s}}:{type:e},lt=(t,e)=>({id:t,fun:At.Fungible(e)}),ha=(t,e,s)=>({type:t,value:[Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(s)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var cs=(t,e,s,n,r)=>{let a=r;return{type:t,value:[Q.SetAppendix([Q.DepositAsset({assets:Ut.Wild(Kt.All()),beneficiary:{parents:0,interior:pe.X1(s)}})]),Q.InitiateReserveWithdraw({assets:Ut.Wild(Kt.AllOf({id:n,fun:Tc.Fungible()})),reserve:is.ethereumLocation(ea),xcm:[Q.BuyExecution({fees:{id:Fc(n),fun:At.Fungible(1n)},weight_limit:qs.Unlimited()}),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}}),Q.SetTopic(a)]}),Q.SetTopic(a)]}},Fc=t=>{let e=kc.findNestedKey(t,"key");return e?{parents:0,interior:pe.X1(Qt.AccountKey20({key:e.key}))}:{parents:0,interior:pe.Here()}},ba=(t,e,s,n,r,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(n)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(n)},weight_limit:qs.Unlimited()}),Q.Transact({origin_kind:vc.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:r}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]}),ya=(t,e,s,n,r,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(r)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(r)},weight_limit:qs.Unlimited()}),Q.TransferAsset({assets:[{id:s,fun:At.Fungible(n)}],beneficiary:{parents:0,interior:pe.X1(a)}}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var me="PolkadotXcm",Ic=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J($(i,s),c),p=J($(i,n.fee),c),h=lt(l,e),g=lt(p,n.fee.amount),k="limited_reserve_transfer_assets";return new Ct({module:me,func:k,getTx:P=>{let M=P.getUnsafeApi().tx[me][k];return s.key===n.fee.key?M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):aa(l,p)?M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[g,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[h,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J($(i,s),c),p=lt(l,e),h=qe(c,i,m),g=wt(c,a),k={type:c,value:[p]},P="limited_teleport_assets";return new Ct({module:me,func:P,getTx:M=>M.getUnsafeApi().tx[me][P]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Rc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c=i.xcmVersion??"V4",l=J($(i,s),c),p=lt(l,e),h=qe(c,i,m),g=wt(c,a),k={type:c,value:[p]},P="reserve_transfer_assets";return new Ct({module:me,func:P,getTx:M=>M.getUnsafeApi().tx[me][P]({dest:h,beneficiary:g,assets:k,fee_asset_item:0})})}}),_c=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J($(i,s),c),p=lt(l,e),h=qe(c,i,m),g=wt(c,a),k={type:c,value:[p]},P="transfer_assets";return new Ct({module:me,func:P,getTx:M=>M.getUnsafeApi().tx[me][P]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Sc=t=>({build:async({address:e,asset:s,amount:n,destination:r,messageId:a,sender:i,source:m,transact:c})=>{let l="V4",p=m.chain,h=r.chain,g=r.fee.amount,k=r.fee;c&&(h=c.chain,g=$s.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let P=O(i),M=c||h.usesCexForwarding?Vt(p,i,h):e,S=O(M),{transferType:j}=t,K=J($(p,s),l),w=J($(p,k),l),Ne=lt(K,n),ht=lt(w,g),$e=s.isEqual(k),at=qe(l,p,h),Je={type:l,value:$e?[Ne]:[ht,Ne]},ot=zs(l,j,K),jt={type:l,value:$e?K:w},Es=zs(l,j,w),Bt;pa(K)&&r.chain.isEvmChain()?Bt=cs(l,S,P,K,a):Bt=ha(l,S,Je.value.length);let ts="transfer_assets_using_type_and_then";return new Ct({module:me,func:ts,getTx:_o=>_o.getUnsafeApi().tx[me][ts]({dest:at,assets:Je,assets_transfer_type:ot,remote_fees_id:jt,fees_transfer_type:Es,custom_xcm_on_dest:Bt,weight_limit:{type:"Unlimited"}})})}}),Dc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:r,transact:a}=s,i="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let m=r.chain,c=a.chain,l=Vt(m,n,c),p=O(l),{fee:h}=a,g=J($(c,h),i),k=$s.toBigInt(e.fee,h.decimals);return new Ct({module:me,func:t,getTx:P=>P.getUnsafeApi().tx[me][t]({dest:qe(i,m,c),message:ba(i,p,g,k,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:r,asset:a,sender:i,source:m,destination:c}=s,l="V4",p=m.chain,h=c.chain,g=Vt(p,i,h),k=O(g),P=O(r),M=J($(h,a),l),{fee:S}=c,j=$s.toBigInt(e.fee,S.decimals),K=n>S.amount?n-(S.amount+j):n;return new Ct({module:me,func:t,getTx:w=>w.getUnsafeApi().tx[me][t]({dest:qe(l,p,h),message:ya(l,k,M,K,j,P)})})}})}},Js=()=>({limitedReserveTransferAssets:Ic,limitedTeleportAssets:Xc,reserveTransferAssets:Rc,transferAssets:_c,transferAssetsUsingTypeAndThen:Sc,send:Dc});import{ExtrinsicConfig as Hc}from"@galacticcouncil/xc-core";import{encodeAssetId as Wc}from"@galacticcouncil/common";import{XcmV3Junctions as xa,XcmV3Junction as Lc}from"@galacticcouncil/descriptors";var ga=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:xa.X1(s)}}:{type:t,value:{parents:1,interior:xa.X2([Lc.Parachain(e.parachainId),s])}};var Aa="XTokens",Mc=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:r,source:a})=>{let i=a.chain,m=n.chain,c="V3",l=m.usesCexForwarding?Vt(i,r,m):t,p=O(l),h=i.getAssetId(s),g=Wc(h),k="transfer";return new Hc({module:Aa,func:k,getTx:P=>P.getUnsafeApi().tx[Aa][k]({currency_id:g,amount:e,dest:ga(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),Qs=()=>({transfer:Mc});function u(){return{assetConversion:Nn,assets:On,balances:jn,ethereumXcm:Ds,polkadotXcm:Js,router:qn,utility:$n,xTokens:Qs}}function tt(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}import{Abi as Ys,Snowbridge as Zc,Wormhole as Ca,Basejump as em}from"@galacticcouncil/xc-core";var wa={};qt(wa,{AssethubClient:()=>ue,BaseClient:()=>we,HydrationClient:()=>Ue});import{encodeLocation as Vc}from"@galacticcouncil/common";import{hub as Uc,XcmVersionedAssetId as Kc}from"@galacticcouncil/descriptors";var we=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Uc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:r,frozen:a}=n;return BigInt(r)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let r=this.chain.getAssetXcmLocation(s);if(!r)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=Vc(r),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Kc.V4(a));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Nc,XcmV5Junction as Oc,XcmVersionedLocation as Gc,XcmVersionedXcm as jc,XcmVersionedAssetId as qc}from"@galacticcouncil/descriptors";import{encodeLocation as zc}from"@galacticcouncil/common";import{Twox128 as $c,u128 as Jc}from"@polkadot-api/substrate-bindings";import{toHex as Qc}from"@polkadot-api/utils";var ue=class extends we{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),r=zc(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(r):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let r=await this.api().query.Assets.Account.getValue(Number(n),e);return r&&r.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=Qc($c(s)),r=await this.client._request("state_getStorage",[n]);if(!r)return e.defaultFee;let a=Jc.dec(r);return a===0n?e.defaultFee:a}async calculateDeliveryFee(e,s){let n=Gc.V5({parents:1,interior:Nc.X1(Oc.Parachain(s))}),r=qc.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,jc.V4(e),r);if(!a.success)throw Error("Can't query XCM delivery fee.");let i=a.value.value.find(c=>{let l=c.id;return l&&l.parents&&l.parents===1&&l.interior.type==="Here"});if(!i)throw Error("Can't find XCM delivery fee in DOT.");let m=i.fun.value;if(typeof m=="bigint")return m;throw Error("Can't parse delivery fee.")}};import{hydration as Yc}from"@galacticcouncil/descriptors";var Ue=class extends we{constructor(e){super(e,Yc)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),r=await this.api().query.AssetRegistry.Assets.getValue(n);return r?r.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:r,frozen:a}=n;return BigInt(r)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),r=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:i}=r;return BigInt(a)-BigInt(i)}};function tm(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,r=e,a=Ca.fromChain(n),i=Ca.fromChain(r),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Ys.TokenRelayer,address:a.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function sm(){return{TokenRelayer:tm}}function nm(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let r=n,a=s,i=Zc.fromChain(r),m=new we(a),c=new ue(t.hub),l=Ws(e,a),[p,h]=await Promise.all([m.calculateDestinationFee(l,x),c.calculateDeliveryFee(l,a.parachainId)]),g=h+Wt(p,25n),k=r.getAssetId(e);return{amount:await r.evmClient.getProvider().readContract({abi:Ys.Snowbridge,address:i.getGateway(),args:[k,a.parachainId,g],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:g}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let r=n,a=new ue(t.hub),i=ma(e,r),m=Ws(e,r),[c,l,p,h,g]=await Promise.all([a.getBridgeDeliveryFee(),a.calculateDeliveryFee(i,Zn),a.calculateDestinationFee(i,s),a.calculateDeliveryFee(m,r.parachainId),a.calculateDestinationFee(m,s)]);return{amount:c+l+Wt(p,25n)+h+Wt(g,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:g}}}})}}function am(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let r=s,a=n,i=t?.reserve;if(ca(e,r,a,i),i){let g=new we(a),k=new we(i),P=Gs(e,a),M=la(e,i,a),[S,j]=await Promise.all([g.calculateDestinationFee(P,e),k.calculateDestinationFee(M,e)]),K=j+S,w=Wt(K,20n),Ne=w-K;return{amount:w,breakdown:{reserveFee:j,destinationFee:S,margin:Ne}}}let m=new we(a),c=ua(e,a),l=await m.calculateDestinationFee(c,e),p=Wt(l,20n),h=p-l;return{amount:p,breakdown:{totalFee:l,margin:h}}}})}}function om(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=em.fromChain(s),r=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Ys.Basejump,address:n.getAddress(),args:[r],functionName:"quoteFee"})}}})}}function A(){return{Basejump:om,XcmPaymentApi:am,Snowbridge:nm,Wormhole:sm}}var rm="0";function im(){return{build:async({address:t,chain:e})=>{let n=await new Ue(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),r=n?n.toString():rm,a=e.findAssetById(r);return a?a.asset:q}}}var cm=()=>({accountCurrencyMap:im});function Yt(){return{multiTransactionPayment:cm}}import{mrl as va,Precompile as Ba,ProgramConfig as Pa,Wormhole as ms}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as mm,NATIVE_MINT as ka,TOKEN_PROGRAM_ID as um,createCloseAccountInstruction as lm,createInitializeAccountInstruction as dm,getMinimumBalanceForRentExemptAccount as fm,getAssociatedTokenAddress as pm}from"@solana/spl-token";import{Keypair as Zs,PublicKey as en,SystemProgram as Ta}from"@solana/web3.js";import{UniversalAddress as Ea}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Fa,createTransferNativeWithPayloadInstruction as Ia,getWrappedMeta as hm}from"@wormhole-foundation/sdk-solana-tokenbridge";var bm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,sender:a,destination:i}=e,m=r.chain,c=m,l=ms.fromChain(m),p=ms.fromChain(t.moonchain),h=Ba.Bridge,g=await va.createPayload(i.chain,s),k=new en(a),P=new Ea(h),M=p.getWormholeId(),S=k,j=0,K=Zs.generate(),w=Zs.generate(),Ne=await fm(c.connection),ht=Ta.createAccount({fromPubkey:S,newAccountPubkey:w.publicKey,lamports:Ne,space:mm,programId:um}),$e=Ta.transfer({fromPubkey:S,lamports:n,toPubkey:w.publicKey}),at=dm(w.publicKey,ka,S),Je=Fa(l.getTokenBridge(),w.publicKey,S,n),ot=Ia(c.connection,l.getTokenBridge(),l.getCoreBridge(),a,K.publicKey,w.publicKey,ka,j,n,P.toUint8Array(),M,g.toU8a()),jt=lm(w.publicKey,S,S);return new Pa({instructions:[ht,$e,at,Je,ot,jt],signers:[K,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ne)})}})}),ym=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:r,source:a,sender:i,destination:m}=e,c=a.chain,l=c,p=ms.fromChain(c),h=ms.fromChain(t.moonchain),g=Ba.Bridge,k=await va.createPayload(m.chain,s),P=new en(i),M=a.chain.getAssetId(r),S=new en(M),j=await pm(S,P),K=new Ea(g),w=h.getWormholeId();if(await hm(l.connection,p.getTokenBridge(),S).catch(ot=>null).then(ot=>ot!=null))throw new Error("Wrapped assets not supported yet");let ht=0,$e=Zs.generate(),at=Fa(p.getTokenBridge(),j,P,n),Je=Ia(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,$e.publicKey,j,S,ht,n,K.toUint8Array(),w,k.toU8a());return new Pa({instructions:[at,Je],signers:[$e],func:"TransferWithPayload",module:"TokenBridge"})}})}),Xa=()=>({transferNativeWithPayload:bm,transferTokenWithPayload:ym});function Ra(){return{TokenBridge:Xa}}function Zt(){return{Wormhole:Ra}}import{mrl as xm,MoveConfig as gm,Precompile as Am,Wormhole as _a}from"@galacticcouncil/xc-core";import{Transaction as wm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Cm,SUI_TYPE_ARG as km}from"@mysten/sui/utils";import{UniversalAddress as Tm}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as vm,getPackageId as Sa}from"@wormhole-foundation/sdk-sui";var Bm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,sender:a,destination:i}=e,m=r.chain,c=m,l=_a.fromChain(m),p=_a.fromChain(t.moonchain),h=0,g=Am.Bridge,k=await xm.createPayload(i.chain,s),P=new Tm(g),M=p.getWormholeId(),S=km,[j,K]=await Promise.all([Sa(c.client,l.coreBridge),Sa(c.client,l.tokenBridge)]),w=new wm,[Ne]=w.splitCoins(w.gas,[w.pure.u64(n)]),[ht]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[$e]=w.moveCall({target:`${K}::state::verified_asset`,arguments:[w.object(l.tokenBridge)],typeArguments:[S]}),at=!1,Je=await(async()=>{let Bt=await vm(c.client,j,a);if(Bt!==null)return w.object(Bt);{let[ts]=w.moveCall({target:`${j}::emitter::new`,arguments:[w.object(l.coreBridge)]});return at=!0,ts}})(),[ot,jt]=w.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[Je,$e,Ne,w.pure.u16(M),w.pure.vector("u8",P.toUint8Array()),w.pure.vector("u8",k.toU8a()),w.pure.u32(h)],typeArguments:[S]});w.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[jt],typeArguments:[S]});let[Es]=w.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(l.tokenBridge),ot],typeArguments:[S]});return w.moveCall({target:`${j}::publish_message::publish_message`,arguments:[w.object(l.coreBridge),ht,Es,w.object(Cm)]}),at&&w.transferObjects([Je],w.pure.address(a)),new gm({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Da=()=>({transferNativeWithPayload:Bm});function La(){return{TokenBridge:Da}}function tn(){return{Wormhole:La}}var Wa={};qt(Wa,{Tag:()=>st});var st=(a=>(a.Basejump="Basejump",a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(st||{});function Va(t,e){return new Ma({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:_().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function Ua(t,e){return new Ma({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:A().Basejump().quoteFee(),asset:t}},contract:_().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Em=[Va(Qe,Oe)],Fm=[Ua(Qe,Oe)],Ka=new Pm({chain:Et,routes:[...Em,...Fm]});import{AssetRoute as us,ChainRoutes as Im}from"@galacticcouncil/xc-core";import{AssetRoute as Na}from"@galacticcouncil/xc-core";function Nt(t,e){return new Na({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:_().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new Na({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:_().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Xm=[new us({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:_().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Nt(de,ee),Nt(je,xe),Nt(b,ye),Nt(f,be),Nt(Ge,he)],Rm=[new us({source:{asset:F,balance:o().evm().native(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:F,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:_().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(Te,Te),oe(Be,Be),oe(Pe,Pe),oe(_e,_e),oe(De,De),oe(Le,Le),oe(Ie,Ie),oe(Ee,Ee),oe(Xe,Xe),oe(Se,Se),oe(He,He),oe(Me,Me),oe(b,yt),oe(f,bt)],Qy=[new us({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:_().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new us({source:{asset:de,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:de,balance:o().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:_().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Oa=new Im({chain:R,routes:[...Xm,...Rm]});var Ga=[Ka,Oa];import{AssetRoute as fs,ChainRoutes as qa}from"@galacticcouncil/xc-core";import{AssetRoute as sn}from"@galacticcouncil/xc-core";var kt=0,_m=t=>{let{source:e}=t;return!!e.feeSwap},Sm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ja=u().assetConversion().swapTokensForExactTokens({slippage:30});function Dm(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:tt(Sm,ja).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function ls(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:tt(_m,ja).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Tt(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ds(t){return Dm(t,d,.02)}var Lm=[new fs({source:{asset:x,balance:o().substrate().system().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().system().account()},min:mt().assets().asset()},destination:{chain:d,asset:x,fee:{amount:.001,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new fs({source:{asset:E,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:E,fee:{amount:1e-4,asset:E}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Tt(f,d,.02),Tt(b,d,.02),ds(Ye)],Hm=[new fs({source:{asset:E,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:Ze,asset:E,fee:{amount:.001,asset:E}},extrinsic:u().polkadotXcm().transferAssets()})],Wm=[Tt(f,B,.25),Tt(b,B,.25)],Mm=[Tt(f,L,.03),Tt(b,L,.03)],Vm=[new fs({source:{asset:U,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:it,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],za=new qa({chain:rt,routes:[ls(f,d,.02),ls(b,d,.02),ls(x,d,.001)]}),$a=new qa({chain:C,routes:[...Lm,...Hm,...Wm,...Mm,...Vm]});import{AssetRoute as nt,ChainRoutes as Um}from"@galacticcouncil/xc-core";var Km=[new nt({source:{asset:D,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new nt({source:{asset:I,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:T,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:X,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:H,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:W,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:z,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:z,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:f,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:b,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ja=new Um({chain:Z,routes:[...Km]});import{AssetRoute as Ke,ChainRoutes as Nm}from"@galacticcouncil/xc-core";var Om=[new Ke({source:{asset:I,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:I,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:W,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:z,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:z,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:x,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ke({source:{asset:D,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:D,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:D}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:T,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:X,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:625e-8,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:f,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Gm=[new Ke({source:{asset:f,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Qa=new Nm({chain:L,routes:[...Om,...Gm]});import{AssetRoute as ze,ChainRoutes as Ym}from"@galacticcouncil/xc-core";var jm="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===jm?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as vt}from"@galacticcouncil/xc-core";var qm=.9,zm=1,$m=1,ps=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},hs=u().router().buy({slippage:30});function V(t,e,s){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Ot(t,e,s){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function dt(t,e){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function bs(t){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:C,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:tt(ps,hs).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function Jm(t,e,s="LocalReserve"){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:$m,asset:T}},extrinsic:tt(ps,hs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ft(t){return Jm(t,B,"DestinationReserve")}function Qm(t,e,s,n,r,a){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:tt(ps,hs).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:qm})]),transact:{chain:B,fee:{amount:zm,asset:T,balance:v()},extrinsic:u().ethereumXcm().transact(r)},tags:a})}function Ce(t,e,s){return Qm(t,e,s,0,_().Batch().batchAll([_().Erc20().approve(n=>n.getTokenBridge()),_().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function te(t,e,s){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:s,asset:e,fee:{amount:A().Snowbridge().calculateOutboundFee({hub:C}),asset:x}},extrinsic:tt(ps,hs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Zm=[dt(x,C),dt(E,C),dt(f,C),dt(b,C),bs(Ye)],e0=[V(D,Z),V(I,Z,L),V(T,Z,B),new ze({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:H,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(W,Z,L),V(z,Z,L),V(f,Z,C),V(b,Z,C)],t0=[V(I,L),V(W,L),V(z,L),V(D,L,Z),V(T,L,B),new ze({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:X,fee:{amount:5e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(f,L,C),V(b,L,C),new ze({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],s0=[Ot(X,ge,62e-8),Ot(H,ge,.0019213457),Ot(q,ge,.5),Ot(f,ge,.3),Ot(b,ge,.3),new ze({source:{asset:W,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:W,fee:{amount:.01,asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:x,fee:{amount:.05,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],n0=[V(q,B),V(T,B),V(f,B,C),V(b,B,C),ft(ee),ft(he),ft(ye),ft(be),ft(xe),ft(Y),ft(N)],a0=[new ze({source:{asset:U,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:it,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],o0=[V(We,St)],r0=[new ze({source:{asset:le,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:It,asset:le,fee:{amount:.04,asset:le}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],i0=[V(Fe,Xt)],c0=[new ze({source:{asset:re,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Dt,asset:re,fee:{amount:.02,asset:re}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],m0=[new ze({source:{asset:fe,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:_t,asset:fe,fee:{amount:1.1,asset:fe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],u0=[V(Re,Rt)],l0=[V(ve,Ft)],d0=[Ce(Oe,Qe,Et)],f0=[Ce(ee,de,R),Ce(Y,F,R),Ce(xe,je,R),Ce(be,f,R),Ce(ye,b,R),Ce(he,Ge,R)],p0=[te(F,F,R),te(Te,Te,R),te(Be,Be,R),te(Pe,Pe,R),te(_e,_e,R),te(De,De,R),te(Le,Le,R),te(He,He,R),te(Ie,Ie,R),te(Ee,Ee,R),te(Xe,Xe,R),te(Se,Se,R),te(Me,Me,R),te(yt,b,R),te(bt,f,R)],h0=[Ce(N,N,ct),Ce(se,se,ct),Ce(ne,ne,ct)],b0=[Ce(ae,ae,Lt)],y0=[dt(x,rt),dt(f,rt),dt(b,rt)],Ya=new Ym({chain:d,routes:[...l0,...Zm,...e0,...d0,...t0,...y0,...r0,...p0,...f0,...s0,...i0,...c0,...n0,...a0,...u0,...m0,...h0,...b0,...o0]});import{AssetRoute as xs,ChainRoutes as x0}from"@galacticcouncil/xc-core";var nn=()=>o().substrate().tokens().accounts();function ys(t,e){return new xs({source:{asset:t,balance:nn(),fee:{asset:H,balance:nn()},destinationFee:{balance:nn()}},destination:{chain:d,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var g0=[new xs({source:{asset:H,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new xs({source:{asset:X,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new xs({source:{asset:q,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:q,fee:{amount:.5,asset:q}},extrinsic:u().xTokens().transfer()}),ys(W,L),ys(f,C),ys(b,C),ys(x,C)],Za=new x0({chain:ge,routes:[...g0]});import{AssetRoute as es,ChainRoutes as C0}from"@galacticcouncil/xc-core";import{AssetRoute as eo}from"@galacticcouncil/xc-core";function A0(t,e,s){return new eo({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:_().PolkadotXcm().transferAssetsToPara32()})}function w0(t,e,s){return new eo({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:_().PolkadotXcm().transferAssetsToPara32()})}function pt(t,e){return A0(t,d,e)}function gs(t,e){return w0(t,d,e)}var k0=[new es({source:{asset:T,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:_().PolkadotXcm().transferAssetsToPara32()}),gs(q,.6),gs(f,.3),gs(b,.3),pt(ee,.004),pt(he,.004),pt(ye,.004),pt(be,.004),pt(xe,1e-7),pt(Y,2e-6),pt(N,2e-5)],T0=[new es({source:{asset:f,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:f,fee:{amount:.18,asset:f}},contract:_().PolkadotXcm().transferAssetsToPara32()}),new es({source:{asset:b,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:_().PolkadotXcm().transferAssetsToPara32()})],pg=[new es({source:{asset:Y,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:Y,balance:o().evm().erc20()}},destination:{chain:R,asset:F,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:F}},contract:_().Batch().batchAll([_().Erc20().approve(t=>t.getTokenRelayer()),_().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new es({source:{asset:ee,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:ee,balance:o().evm().erc20()}},destination:{chain:R,asset:de,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:de}},contract:_().Batch().batchAll([_().Erc20().approve(t=>t.getTokenRelayer()),_().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],to=new C0({chain:B,routes:[...k0,...T0]});import{AssetRoute as so,ChainRoutes as v0}from"@galacticcouncil/xc-core";var B0=[new so({source:{asset:U,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:U,fee:{amount:.01,asset:U}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],P0=[new so({source:{asset:U,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:U,fee:{amount:.1,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],no=new v0({chain:it,routes:[...B0,...P0]});import{AssetRoute as E0,ChainRoutes as F0}from"@galacticcouncil/xc-core";var I0=[new E0({source:{asset:We,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:We}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ao=new F0({chain:St,routes:[...I0]});import{AssetRoute as X0,ChainRoutes as R0}from"@galacticcouncil/xc-core";var _0=[new X0({source:{asset:le,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:le,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:le}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],oo=new R0({chain:It,routes:[..._0]});import{AssetRoute as S0,ChainRoutes as D0}from"@galacticcouncil/xc-core";var L0=[new S0({source:{asset:fe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.2,asset:fe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ro=new D0({chain:_t,routes:[...L0]});import{AssetRoute as H0,ChainRoutes as W0}from"@galacticcouncil/xc-core";var M0=[new H0({source:{asset:ve,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ve,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ve}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],io=new W0({chain:Ft,routes:[...M0]});import{AssetRoute as V0,ChainRoutes as U0}from"@galacticcouncil/xc-core";var K0=[new V0({source:{asset:Fe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Fe,fee:{amount:2,asset:Fe}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],co=new U0({chain:Xt,routes:[...K0]});import{AssetRoute as N0,ChainRoutes as O0}from"@galacticcouncil/xc-core";var G0=[new N0({source:{asset:re,balance:o().substrate().system().account(),fee:{asset:re,balance:o().substrate().system().account(),extra:.030555},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:re,fee:{amount:.03,asset:re}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],mo=new O0({chain:Dt,routes:[...G0]});import{AssetRoute as j0,ChainRoutes as q0}from"@galacticcouncil/xc-core";var z0=[new j0({source:{asset:Re,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Re,fee:{amount:.205,asset:Re}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],uo=new q0({chain:Rt,routes:[...z0]});var lo=[io,$a,za,Ja,Qa,Ya,Za,to,no,uo,ao,oo,ro,co,mo];import{AssetRoute as an,ChainRoutes as $0}from"@galacticcouncil/xc-core";var J0=[new an({source:{asset:N,balance:o().solana().native(),destinationFee:{asset:N,balance:o().solana().native()}},destination:{chain:d,asset:N,fee:{amount:0,asset:N}},program:Zt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new an({source:{asset:se,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:se,balance:o().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new an({source:{asset:ne,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:ne,balance:o().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],fo=new $0({chain:ct,routes:[...J0]});var po=[fo];import{AssetRoute as Q0,ChainRoutes as Y0}from"@galacticcouncil/xc-core";var Z0=[new Q0({source:{asset:ae,balance:o().sui().native(),destinationFee:{asset:ae,balance:o().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:tn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],ho=new Y0({chain:Lt,routes:[...Z0]});var bo=[ho];import{AssetRoute as yo,ChainRoutes as eu}from"@galacticcouncil/xc-core";import{AssetRoute as LA}from"@galacticcouncil/xc-core";var on=.0015;var tu=new yo({source:{asset:E,balance:o().substrate().system().account(),fee:{asset:E,balance:o().substrate().system().account(),extra:on},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:E,fee:{amount:.002,asset:E}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),su=new yo({source:{asset:E,balance:o().substrate().system().account(),fee:{asset:E,balance:o().substrate().system().account(),extra:on},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:Ht,asset:E,fee:{amount:.0012,asset:E}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),xo=new eu({chain:Ze,routes:[su,tu]});import{AssetRoute as go,ChainRoutes as au}from"@galacticcouncil/xc-core";var nu="0",Gt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===nu?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),rn=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:Gt()});var ou=[new go({source:{asset:f,balance:Gt(),fee:rn(),destinationFee:{balance:Gt()}},destination:{chain:Ze,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ru=[new go({source:{asset:E,balance:Gt(),fee:rn(),destinationFee:{balance:Gt()}},destination:{chain:Ze,asset:E,fee:{amount:.0012,asset:E}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Ao=new au({chain:Ht,routes:[...ou,...ru]});var wo=[xo,Ao];var iu=[...Ga,...lo,...po,...bo,...wo],cu=new Map(iu.map(t=>[t.chain.key,t]));import{Parachain as Eo}from"@galacticcouncil/xc-core";import{TransferValidation as Co,TransferValidationError as ko}from"@galacticcouncil/xc-core";var As=class extends Co{async validate(e){let{source:s}=e,{chain:n,fee:r,feeBalance:a}=s;if(a.amount<r.amount)throw new ko("Insufficient_Fee_Balance",{amount:r.toDecimal(),asset:r.symbol,chain:n.name,error:"fee.insufficientBalance"})}},ws=class extends Co{async skipFor(e){let{asset:s,source:n}=e,{enabled:r}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!r}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:r,destinationFee:a,destinationFeeBalance:i}=n,m=await this.getMin(r,a),c=a.copyWith({amount:a.amount+m});if(i.amount<c.amount)throw new ko("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:r.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new ue(e).getAssetMin(s);let r=e.getAssetMin(s)*10**s.decimals;return BigInt(r)}};import{TransferValidation as To,TransferValidationError as vo}from"@galacticcouncil/xc-core";var Cs=class extends To{async skipFor(e){let{asset:s,destination:n}=e,r=n.chain;return await new ue(r).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:r}=e,a=r.chain;if(await new ue(a).getSystemAccountBalance(n)===0n)throw new vo("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:r.chain.name,error:"account.insufficientDeposit"})}},ks=class extends To{async validate(e){let{asset:s,sender:n,source:r}=e,a=r.chain;if(await new ue(a).checkIfFrozen(n,s))throw new vo("Asset_Frozen",{asset:s.originSymbol,chain:r.chain.name,error:"asset.frozen"})}};import{TransferValidation as Bo,TransferValidationError as Po}from"@galacticcouncil/xc-core";var mu=12,uu=1,lu=18,Ts=class extends Bo{async skipFor(e){let{destination:s}=e,n=s.chain,r=new Ue(n),a=s.balance.amount>0n,i=await r.checkIfSufficient(s.balance);return a||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:r}=e,a=r.chain,i=new Ue(a),m=await i.getFeeAsset(n),c=a.findAssetById(m),l=c.min||uu,p=c.decimals||mu,h=l*Math.pow(10,p),g=await i.getAssetBalance(n,m);if(BigInt(h*1.1)>g)throw new Po("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},vs=class extends Bo{async skipFor(e){let{source:s,transact:n}=e,{enabled:r}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!r}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:r}=e,a=r.chain,i=new Ue(a),m=a.getBalanceAssetId(T),c=a.getAssetDecimals(T)||lu,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new Po("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ke={isAny:()=>!0,isHydration:t=>t instanceof Eo&&t.parachainId===2034,isHub:t=>t instanceof Eo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},du=[new As(ke.isAny,ke.isAny),new ws(ke.isAny,ke.isAny),new Cs(ke.isAny,ke.isHub),new ks(ke.isHub,ke.isAny),new Ts(ke.isAny,ke.isHydration),new vs(ke.isHydration,ke.isAny)];var Io={};qt(Io,{AssethubDex:()=>mn,HydrationDex:()=>cn});import{pool as fu,sor as pu,tx as hu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as bu}from"@galacticcouncil/common";import{Binary as yu}from"polkadot-api";import{memoize1 as xu}from"@thi.ng/memoize";var{PoolType:Bs}=fu,{TradeRouteBuilder:gu,TradeRouter:Au}=pu,{TxBuilderFactory:wu}=hu,cn=class{chain;client;poolCtx;txBuilder;getCtx=xu(async e=>{console.log("init swap router",e,"\u2705");let s=new Au(this.poolCtx);return s.withFilter({useOnly:[Bs.Aave,Bs.Omni,Bs.Stable,Bs.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ue(this.chain),this.txBuilder=new wu(s.client,s.evm)}async getCalldata(e,s,n,r,a=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=r.amount,l=await this.getCtx(1),p=await l.getMostLiquidRoute(i,m),h=await l.getBuy(i,m,c,p),P=await(await this.txBuilder.trade(h).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return yu.toHex(P)}async getQuote(e,s,n,r){let a=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(a,i),p=await c.getBuy(a,i,m,l);return{amount:p.amountIn,route:gu.build(p.swaps)}}catch(l){if(r)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),r=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!r)throw new Error(`No price found for asset ${e}`);let a=r*s,i=Math.pow(10,bu);return a/BigInt(i)}};import{encodeLocation as Fo}from"@galacticcouncil/common";var mn=class{chain;client;constructor(e){this.chain=e,this.client=new ue(this.chain)}async getCalldata(e,s,n,r){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let r=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Fo(r),Fo(a),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as ku}from"@galacticcouncil/xc-core";import{Asset as Cu}from"@galacticcouncil/xc-core";function Ps(t){let{id:e,origin:s,symbol:n}=t,r=n.toLowerCase();return new Cu({key:[r,s,e].join("_"),originSymbol:n})}function Xo(t){let{decimals:e,id:s}=t;return{asset:Ps(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Ro(t){let{decimals:e,id:s,internalId:n,origin:r}=t;return{asset:Ps(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:r},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var un=class extends ku{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),r=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!r(a)&&a.origin===1e3).forEach(a=>{let i=Ps(a),m=Xo(a),c=Ro(a);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,ds(i)),this.updateChainRoute(s,bs(i))})}};export{un as HydrationConfigService,Lo as assetsMap,Ha as builders,Vr as chainsMap,wa as clients,Io as dex,cu as routesMap,Wa as tags,du as validations};
1
+ var Uo=Object.defineProperty;var jt=(t,e)=>{for(var s in e)Uo(t,s,{get:e[s],enumerable:!0})};import{Asset as g}from"@galacticcouncil/xc-core";var ve=new g({key:"aave",originSymbol:"AAVE"}),Be=new g({key:"ajun",originSymbol:"AJUN"}),D=new g({key:"astr",originSymbol:"ASTR"}),R=new g({key:"bnc",originSymbol:"BNC"}),_s=new g({key:"bsx",originSymbol:"BSX"}),Pe=new g({key:"cfg_new",originSymbol:"CFG"}),de=new g({key:"cru",originSymbol:"CRU"}),fe=new g({key:"dai",originSymbol:"DAI"}),ee=new g({...fe,key:"dai_mwh"}),A=new g({key:"dot",originSymbol:"DOT"}),I=new g({key:"eth",originSymbol:"ETH"}),Ee=new g({key:"ena",originSymbol:"ENA"}),Qe=new g({key:"eurc",originSymbol:"EURC"}),Ke=new g({...Qe,key:"eurc_mwh"}),v=new g({key:"glmr",originSymbol:"GLMR"}),j=new g({key:"hdx",originSymbol:"HDX"}),_=new g({key:"ibtc",originSymbol:"IBTC"}),W=new g({key:"intr",originSymbol:"INTR"}),ne=new g({key:"jitoSol",originSymbol:"jitoSOL"}),F=new g({key:"ksm",originSymbol:"KSM"}),Fe=new g({key:"ldo",originSymbol:"LDO"}),Ie=new g({key:"laos",originSymbol:"LAOS"}),Xe=new g({key:"lbtc",originSymbol:"LBTC"}),ie=new g({key:"ewt",originSymbol:"EWT"}),Re=new g({key:"link",originSymbol:"LINK"}),U=new g({key:"myth",originSymbol:"MYTH"}),_e=new g({key:"neuro",originSymbol:"NEURO"}),pe=new g({key:"pen",originSymbol:"PEN"}),Se=new g({key:"paxg",originSymbol:"PAXG"}),ae=new g({key:"prime",originSymbol:"PRIME"}),Le=new g({key:"sky",originSymbol:"SKY"}),K=new g({key:"sol",originSymbol:"SOL"}),oe=new g({key:"sui",originSymbol:"SUI"}),De=new g({key:"susde",originSymbol:"sUSDe"}),Ge=new g({key:"susds",originSymbol:"sUSDS"}),ye=new g({...Ge,key:"susds_mwh"}),He=new g({key:"tbtc",originSymbol:"tBTC"}),We=new g({key:"trac",originSymbol:"TRAC"}),Me=new g({key:"unq",originSymbol:"UNQ"}),h=new g({key:"usdt",originSymbol:"USDT"}),ge=new g({...h,key:"usdt_mwh"}),bt=new g({...h,key:"usdt_eth"}),y=new g({key:"usdc",originSymbol:"USDC"}),xe=new g({...y,key:"usdc_mwh"}),yt=new g({...y,key:"usdc_eth"}),z=new g({key:"vastr",originSymbol:"vASTR"}),M=new g({key:"vdot",originSymbol:"vDOT"}),Pt=new g({key:"weth",originSymbol:"WETH"}),Y=new g({...Pt,key:"weth_mwh"}),qe=new g({key:"wbtc",originSymbol:"WBTC"}),Ae=new g({...qe,key:"wbtc_mwh"}),Ve=new g({key:"wsteth",originSymbol:"wstETH"}),Ye=new g({key:"wud",originSymbol:"WUD"}),Oo=[ve,Be,D,_s,Pe,de,R,fe,ee,A,Ee,Qe,Ke,I,v,j,_,W,F,Fe,Ie,Xe,ie,ne,Re,U,_e,Se,pe,ae,Le,K,oe,De,Ge,ye,We,He,Me,y,xe,yt,h,ge,bt,z,M,qe,Ae,Pt,Y,Ve,Ye],No=new Map(Oo.map(t=>[t.key,t]));import{ChainEcosystem as Ko,EvmChain as Go}from"@galacticcouncil/xc-core";import{base as qo}from"viem/chains";var Et=new Go({id:8453,key:"base",name:"Base",assetsData:[{asset:I,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Qe,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:y,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Ko.Ethereum,evmChain:qo,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});import{ChainEcosystem as jo,EvmChain as zo}from"@galacticcouncil/xc-core";import{mainnet as $o}from"viem/chains";var S=new zo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:I,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ve,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Pt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:fe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Ee,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:De,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ge,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:He,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:qe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Xe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:y,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Fe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Re,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Se,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Le,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:We,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ve,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:jo.Ethereum,evmChain:$o,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585"}});var gn=[Et,S];import{ChainEcosystem as Jo,Parachain as Qo}from"@galacticcouncil/xc-core";var Ft=new Qo({assetsData:[{asset:Be,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Jo.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as Yo,Parachain as xn}from"@galacticcouncil/xc-core";var An={assetsData:[{asset:A,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Ye,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:U,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:F,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Yo.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},k=new xn({...An,key:"assethub",name:"AssetHub Polkadot"}),rt=new xn({...An,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Zo,Parachain as er}from"@galacticcouncil/xc-core";var Z=new er({assetsData:[{asset:D,xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Zo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as tr,Parachain as sr}from"@galacticcouncil/xc-core";var nr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new sr({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:tr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:nr});import{ChainEcosystem as ar,Parachain as or,XcmVersion as rr}from"@galacticcouncil/xc-core";var It=new or({assetsData:[{asset:de,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ar.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:rr.v3});import{ChainEcosystem as mr,EvmParachain as ur}from"@galacticcouncil/xc-core";import{defineChain as lr}from"viem";import{getSs58AddressInfo as ir}from"@polkadot-api/substrate-bindings";var cr="ETH\0",ns=class{async toH160(e){let s=ir(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(cr),a=n.slice(o.length,-8);return"0x"+Buffer.from(a).toString("hex")}};var dr=new ns,Ss=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.ibp.network","https://rpc.lait.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Ls=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],fr=lr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Ss,webSocket:Ls},default:{http:Ss,webSocket:Ls}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new ur({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:ve,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Be,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:R,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:de,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:A,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:I,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Ee,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ne,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ae,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:ie,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Fe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:F,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Ie,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Xe,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Re,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Se,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:U,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:_e,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:pe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Le,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:K,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:oe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:De,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ge,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:He,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:We,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Me,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:y,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:xe,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ke,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:yt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:ge,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:z,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:qe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ae,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Pt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Y,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ve,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Ye,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:mr.Polkadot,evmChain:fr,evmResolver:dr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Ls,rpcs:Ss});import{ChainEcosystem as pr,Parachain as hr,XcmVersion as br}from"@galacticcouncil/xc-core";var we=new hr({assetsData:[{asset:W,decimals:10,id:{Token:W.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:A,decimals:10,id:{Token:A.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:j,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:M,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:pr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:br.v3});import{ChainEcosystem as yr,Parachain as gr}from"@galacticcouncil/xc-core";var Xt=new gr({assetsData:[{asset:Ie,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:yr.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as xr,EvmParachain as Ar}from"@galacticcouncil/xc-core";import{defineChain as wr}from"viem";var Cr=wr({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),P=new Ar({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ee,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ke,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:K,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ne,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ae,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:ye,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:oe,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:xe,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:ge,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Ae,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Y,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:A,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:y,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:xr.Polkadot,evmChain:Cr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as kr,Parachain as Tr}from"@galacticcouncil/xc-core";var it=new Tr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:kr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as vr,Parachain as Br}from"@galacticcouncil/xc-core";var Rt=new Br({assetsData:[{asset:_e,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:vr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Pr,Parachain as Er,XcmVersion as Fr}from"@galacticcouncil/xc-core";var _t=new Er({assetsData:[{asset:pe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Pr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Fr.v3});import{ChainEcosystem as Ir,Parachain as Xr}from"@galacticcouncil/xc-core";var Rr={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ir.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},wn=new Xr({...Rr,key:"polkadot"});import{ChainEcosystem as _r,Parachain as Sr}from"@galacticcouncil/xc-core";var St=new Sr({assetsData:[{asset:Me,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:_r.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as Lr,Parachain as Dr,XcmVersion as Hr}from"@galacticcouncil/xc-core";var Lt=new Dr({assetsData:[{asset:ie,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Lr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Hr.v3});var Cn=[Ft,k,rt,Z,H,It,f,Xt,Rt,we,P,it,_t,wn,St,Lt];import{ChainEcosystem as Wr,SolanaChain as Mr}from"@galacticcouncil/xc-core";var ct=new Mr({id:101,key:"solana",name:"Solana",assetsData:[{asset:K,decimals:9},{asset:ne,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ae,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Wr.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var kn=[ct];import{ChainEcosystem as Vr,SuiChain as Ur}from"@galacticcouncil/xc-core";var Dt=new Ur({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:oe,decimals:9}],ecosystem:Vr.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Tn=[Dt];import{ChainEcosystem as Or,Parachain as Nr}from"@galacticcouncil/xc-core";var Ze=new Nr({assetsData:[{asset:F,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Or.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Kr,Parachain as Gr}from"@galacticcouncil/xc-core";var Ht=new Gr({assetsData:[{asset:_s,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:F,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Kr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var vn=[Ze,Ht];var qr=[...gn,...Cn,...kn,...Tn,...vn],jr=new Map(qr.map(t=>[t.key,t]));import{ChainRoutes as Sm}from"@galacticcouncil/xc-core";import{AssetRoute as za}from"@galacticcouncil/xc-core";var qa={};jt(qa,{AssetMinBuilder:()=>mt,BalanceBuilder:()=>r,ContractBuilder:()=>L,ExtrinsicBuilder:()=>l,ExtrinsicDecorator:()=>tt,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>Yt,MoveBuilder:()=>mn,ProgramBuilder:()=>Zt,XcmTransferType:()=>ce,XcmVersion:()=>et});import{SubstrateQueryConfig as Ds}from"@galacticcouncil/xc-core";function mt(){return{assetRegistry:zr,assets:$r}}function zr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Ds({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Ds({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function $r(){return{asset:()=>({build:({asset:t})=>new Ds({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Jr,ContractConfig as Bn}from"@galacticcouncil/xc-core";function Pn(){return{erc20:Yr,native:Qr}}function Qr(){return{build:({address:t})=>new Bn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Yr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new Bn({abi:Jr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as zt}from"@galacticcouncil/xc-core";import{encodeAssetId as Hs,encodeLocation as Zr}from"@galacticcouncil/common";function En(){return{assets:ei,system:si,tokens:ni,ormlTokens:ai,foreignAssets:ti}}function ei(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Hs(n);return new zt({module:"Assets",func:"Account",args:[o,t],transform:async a=>BigInt(a?.balance?.toString()??"0")})}})}}function ti(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let a=Zr(o);return new zt({module:"ForeignAssets",func:"Account",args:[a,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function si(){return{account:()=>({build:({address:t})=>new zt({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function ni(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Hs(n);return new zt({module:"Tokens",func:"Accounts",args:[t,o],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function ai(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Hs(n);return new zt({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as Fn}from"@galacticcouncil/xc-core";function In(){return{native:oi,token:ri}}function oi(){return{build:({address:t})=>new Fn({address:t,func:"rpc_getBalance",module:"Native"})}}function ri(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Fn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as ii}from"@galacticcouncil/xc-core";function Xn(){return{native:ci}}function ci(){return{build:({address:t})=>new ii({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Pn,substrate:En,solana:In,sui:Xn}}import{Abi as Rn,ContractConfig as mi,Precompile as ui}from"@galacticcouncil/xc-core";import{encodeFunctionData as li}from"viem";var di=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],a=s.map(i=>li({abi:Rn[i.module],functionName:i.func,args:i.args}));return new mi({abi:Rn.Batch,address:ui.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),_n=()=>({batchAll:di});import{Abi as fi,ContractConfig as pi,Wormhole as hi}from"@galacticcouncil/xc-core";function Wt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Ue(t){return typeof t=="object"?Object.values(t)[0]:t}function Sn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,i=a?a.chain:o.chain,m=hi.fromChain(i),c=i.getAssetId(n);return new pi({abi:fi.Erc20,address:Ue(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{Abi as bi,Basejump as yi,ContractConfig as gi}from"@galacticcouncil/xc-core";import{h160 as xi}from"@galacticcouncil/common";import{AccountId as Ai}from"polkadot-api";import{toHex as wi}from"@polkadot-api/utils";var{H160:Ci,isEvmAddress:ki}=xi;function Ti(t){let e=ki(t)?Ci.toAccount(t):t;return wi(Ai().enc(e))}var vi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,i=yi.fromChain(a),m=a.getAssetId(n);return new gi({abi:bi.Basejump,address:i.getAddress(),args:[Ue(m),s,Ti(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Ln=()=>({bridgeViaWormhole:vi});import{addr as Bi,Abi as Dn,ContractConfig as Hn,Precompile as Wn}from"@galacticcouncil/xc-core";import{big as Pi}from"@galacticcouncil/common";var{Ss58Addr:Mn}=Bi;function Ei(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ws(t,e){let s=t.getAssetId(e);return typeof s=="string"?Ei(s):s}function Vn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Ws(o.chain,s);return new Hn({abi:Dn.PolkadotXcm,address:Wn.PolkadotXcm,args:[n.chain.parachainId,Mn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Ws(o.chain,s),i=Ws(o.chain,o.destinationFeeBalance),m=Pi.toBigInt(n.fee.amount,n.fee.decimals);return new Hn({abi:Dn.PolkadotXcm,address:Wn.PolkadotXcm,args:[n.chain.parachainId,Mn.getPubKey(t),[{asset:a,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Fi,Abi as Ii,ContractConfig as Xi,Snowbridge as Ri}from"@galacticcouncil/xc-core";var{Ss58Addr:_i}=Fi,Si=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,i=o.chain,m=a.chain,c=Ri.fromChain(i),u=i.getAssetId(n),p=Ue(u),d=n.originSymbol==="ETH",b=a.feeBreakdown.bridgeFeeInDot,x=a.fee.amount;return new Xi({abi:Ii.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,_i.getPubKey(e)],b,s],value:d?x+s:x,func:"sendToken",module:"Snowbridge"})}}),Un=()=>({sendToken:Si});import{mrl as Nn,Abi as as,ContractConfig as os,Precompile as Kn,Wormhole as ut}from"@galacticcouncil/xc-core";import{PublicKey as On}from"@solana/web3.js";import{getAssociatedTokenAddress as Li,NATIVE_MINT as Di}from"@solana/spl-token";var Hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:a,destination:i}=e,m=ut.fromChain(a.chain),c=ut.fromChain(t.moonchain),u=Kn.Bridge,p=a.chain.getAssetId(o),d=0,b=await Nn.createPayload(i.chain,s);return new os({abi:as.TokenBridge,address:m.getTokenBridge(),args:[Ue(p),n,c.getWormholeId(),c.normalizeAddress(u),d,b.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Wi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:a}=e,i=ut.fromChain(o.chain),m=ut.fromChain(t.moonchain),c=Kn.Bridge,u=0,p=await Nn.createPayload(a.chain,s);return new os({abi:as.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),u,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Mi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a,transact:i}=t,m=i?i.chain:o.chain,c=a.chain,u=ut.fromChain(m),p=ut.fromChain(c),d=c.getAssetId(n),b=e;if(c.isSolana()){let X=d==="SOL"?Di:new On(d);b=(await Li(X,new On(e))).toBase58()}let x=m.getAssetId(n),T=0,E=0;return new os({abi:as.TokenBridge,address:u.getTokenBridge(),args:[Ue(x),s,p.getWormholeId(),p.normalizeAddress(b),T,E],func:"transferTokens",module:"TokenBridge"})}}),Vi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,a=ut.fromChain(n.chain),i=ut.fromChain(o.chain),m=0,c=0;return new os({abi:as.TokenBridge,address:a.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Gn=()=>({transferTokens:Mi,transferTokensWithPayload:Hi,wrapAndTransferETH:Vi,wrapAndTransferETHWithPayload:Wi});import{Abi as Ui,ContractConfig as Oi,Wormhole as qn}from"@galacticcouncil/xc-core";var Ni=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a,transact:i}=t,m=i?i.chain:o.chain,c=a.chain,u=qn.fromChain(m),p=qn.fromChain(c),d=0,b=0,x=m.getAssetId(n);return new Oi({abi:Ui.TokenRelayer,address:u.getTokenRelayer(),args:[Ue(x),s,d,p.getWormholeId(),p.normalizeAddress(e),b],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),jn=()=>({transferTokensWithRelay:Ni});function zn(){return{TokenBridge:Gn,TokenRelayer:jn}}function L(){return{Batch:_n,Erc20:Sn,Basejump:Ln,PolkadotXcm:Vn,Snowbridge:Un,Wormhole:zn}}import{ExtrinsicConfig as Ki}from"@galacticcouncil/xc-core";var $n="AssetConversion",Gi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=a,c=o,u=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),d=i.amount+i.amount*BigInt(t.slippage)/100n,b=m.amount;return new Ki({module:$n,func:e,getTx:x=>x.getUnsafeApi().tx[$n][e]({path:[u,p],amount_out:b,amount_in_max:d,send_to:s,keep_alive:!0})})}}},Jn=()=>({swapTokensForExactTokens:Gi});import{hub as qi,MultiAddress as ji}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as zi}from"@galacticcouncil/xc-core";var $i="Assets",Ji=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:i}=o,m=s>i.amount?s-i.amount:s,c=a.getMetadataAssetId(e);return new zi({module:$i,func:t,getTx:u=>u.getTypedApi(qi).tx.Assets.transfer({id:Number(c),target:ji.Id(n),amount:m})})}}},Qn=()=>({transfer:Ji});import{ExtrinsicConfig as Qi}from"@galacticcouncil/xc-core";var Yn="Balances",Yi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Qi({module:Yn,func:e,getTx:n=>n.getUnsafeApi().tx[Yn][e]({dest:s,keep_alive:t})})}},Zn=()=>({transferAll:Yi});import{hydration as Zi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as ec}from"@galacticcouncil/xc-core";var tc="Router",sc=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:i,route:m}=o,c=n,u=c.getMetadataAssetId(a),p=c.getMetadataAssetId(i),d=i.amount,b=a.amount+a.amount*BigInt(t.slippage)/100n;return new ec({module:tc,func:"buy",getTx:x=>x.getTypedApi(Zi).tx.Router.buy({asset_in:Number(u),asset_out:Number(p),amount_out:d,max_amount_in:b,route:m})})}}),ea=()=>({buy:sc});import{ExtrinsicConfig as nc}from"@galacticcouncil/xc-core";var ta="Utility",ac=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new nc({module:ta,func:e,getTx:o=>{let a=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[ta][e]({calls:a})}})}}},sa=()=>({batchAll:ac});import{Abi as oc,ExtrinsicConfig as rc}from"@galacticcouncil/xc-core";import{Binary as ic}from"polkadot-api";import{encodeFunctionData as cc}from"viem";var et=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(et||{}),ce=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(ce||{});var na="EthereumXcm",mc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=cc({abi:oc[n.module],functionName:n.func,args:n.args});return new rc({module:na,func:e,getTx:i=>i.getUnsafeApi().tx[na][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:ic.fromHex(a),access_list:void 0}}})})}}},Ms=()=>({transact:mc});import{ExtrinsicConfig as Ct}from"@galacticcouncil/xc-core";import{big as Zs}from"@galacticcouncil/common";import{multiloc as Ic,ChainEcosystem as Js}from"@galacticcouncil/xc-core";import{XcmV3Junctions as he,XcmV3Junction as Qt,XcmV3JunctionNetworkId as xa,XcmV3MultiassetFungibility as At,XcmV4Instruction as Q,XcmV4AssetAssetFilter as Ut,XcmV4AssetWildAsset as Ot,XcmV3WeightLimit as Qs,XcmV2MultiassetWildFungibility as Xc,XcmV2OriginKind as Rc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as uc}from"@galacticcouncil/descriptors";var me=340282366920938463463374607431768211455n,gt="0x0000000000000000000000000000000000000000000000000000000000000000",Mt={parents:1,interior:uc.Here()},aa=0,oa=1e3,ra=1002,ia=1,xt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var ca="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as Tc,XcmV3MultiassetFungibility as Us,XcmV3WeightLimit as vc,XcmV4AssetAssetFilter as Bc,XcmV4AssetWildAsset as Pc,XcmV4Instruction as $t}from"@galacticcouncil/descriptors";import{acc as lc}from"@galacticcouncil/common";import{XcmV3Junction as ma}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as dc}from"@polkadot-api/substrate-bindings";import{toHex as fc}from"@polkadot-api/utils";function G(t){if(t.length===42&&t.startsWith("0x"))return ma.AccountKey20({key:t,network:void 0});let s=dc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ma.AccountId32({id:fc(s.publicKey),network:void 0})}function Vt(t,e,s){return lc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as ua}from"@galacticcouncil/xc-core";function la(t,e){let s=ua.findNestedKey(t,"GeneralIndex"),n=ua.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function $(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var cs={};jt(cs,{ETHER_TOKEN_ADDRESS:()=>Vs,erc20Location:()=>bc,erc20LocationReanchored:()=>yc,ethereumLocation:()=>fa,parachainLocation:()=>hc});import{XcmV3Junctions as rs,XcmV3Junction as is,XcmV3JunctionNetworkId as pc}from"@galacticcouncil/descriptors";var Vs="0x0000000000000000000000000000000000000000",da=t=>is.GlobalConsensus(pc.Ethereum({chain_id:BigInt(t)}));function fa(t){return{parents:2,interior:rs.X1(da(t))}}function hc(t){return{parents:1,interior:rs.X1(is.Parachain(t))}}function bc(t,e){return e===Vs?fa(t):{parents:2,interior:rs.X2([da(t),is.AccountKey20({key:e})])}}function yc(t){return t===Vs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:rs.X1(is.AccountKey20({key:t}))}}import{encodeLocation as pa}from"@galacticcouncil/common";import{multiloc as gc}from"@galacticcouncil/xc-core";function J(t,e){return xc(e)>=4?pa(t):Ac(t)}function xc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Ac(t){return{type:"Concrete",value:pa(t)}}var wc=1e3;function Cc(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function kc(t){if(t)return Cc(t)?wc:gc.findParachain(t)}function ha(t,e,s,n){let o=e.getAssetXcmLocation(t),a=kc(o),i=n?.parachainId??s.parachainId;if(a&&i!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function Os(t,e){let s="V4",n=J($(e,t),s),o=gt;return[$t.ReserveAssetDeposited([{id:Mt,fun:Us.Fungible(me)},{id:n,fun:Us.Fungible(me)}]),$t.ClearOrigin(),$t.BuyExecution({fees:{id:Mt,fun:Us.Fungible(me)},weight_limit:vc.Unlimited()}),$t.DepositAsset({assets:Bc.Wild(Pc.AllCounted(2)),beneficiary:{parents:0,interior:Tc.X1(G(xt))}}),$t.SetTopic(o)]}import{XcmV4Instruction as Ns,XcmV3MultiassetFungibility as Ks,XcmV3WeightLimit as Ec}from"@galacticcouncil/descriptors";function ba(t,e){let s="V4",n=J($(e,t),s),o=ms("V4",G(ca),G(xt),n,gt);return[Ns.WithdrawAsset([{id:Mt,fun:Ks.Fungible(me)},{id:n,fun:Ks.Fungible(me)}]),Ns.ClearOrigin(),Ns.BuyExecution({fees:{id:Mt,fun:Ks.Fungible(me)},weight_limit:Ec.Unlimited()}),...o.value]}import{XcmV3Junctions as Gs,XcmV3Junction as Fc,XcmV3MultiassetFungibility as Jt,XcmV3WeightLimit as qs,XcmV4AssetAssetFilter as js,XcmV4AssetWildAsset as zs,XcmV4Instruction as Ce}from"@galacticcouncil/descriptors";function ya(t,e){let s="V4",n=J($(e,t),s),o=gt;return[Ce.WithdrawAsset([{id:n,fun:Jt.Fungible(me)}]),Ce.ClearOrigin(),Ce.BuyExecution({fees:{id:n,fun:Jt.Fungible(me)},weight_limit:qs.Unlimited()}),Ce.DepositAsset({assets:js.Wild(zs.AllCounted(1)),beneficiary:{parents:0,interior:Gs.X1(G(xt))}}),Ce.SetTopic(o)]}function $s(t,e){let s="V4",n=J($(e,t),s);return[Ce.BuyExecution({fees:{id:n,fun:Jt.Fungible(me)},weight_limit:qs.Unlimited()}),Ce.DepositAsset({assets:js.Wild(zs.AllCounted(1)),beneficiary:{parents:0,interior:Gs.X1(G(xt))}})]}function ga(t,e,s){let n="V4",o=J($(e,t),n),a=gt,i=$s(t,s);return[Ce.WithdrawAsset([{id:o,fun:Jt.Fungible(me)}]),Ce.ClearOrigin(),Ce.BuyExecution({fees:{id:o,fun:Jt.Fungible(me)},weight_limit:qs.Unlimited()}),Ce.DepositReserveAsset({assets:js.Wild(zs.AllCounted(1)),dest:{parents:1,interior:Gs.X1(Fc.Parachain(s.parachainId))},xcm:i}),Ce.SetTopic(a)]}var Aa=[Js.Polkadot,Js.Kusama],_c={parents:1,interior:he.X1(Qt.Parachain(1e3))},Sc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Lc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Aa.includes(t.ecosystem)&&Aa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,wa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},je=(t,e,s)=>{if(Lc(e,s)){let o=s.ecosystem===Js.Polkadot?xa.Polkadot():xa.Kusama();return{type:t,value:{parents:2,interior:he.X2([Qt.GlobalConsensus(o),Qt.Parachain(s.parachainId)])}}}if(s.parachainId===aa)return{type:t,value:{parents:1,interior:he.Here()}};let n=s.key==="ethereum"?oa:s.parachainId;return{type:t,value:{parents:1,interior:he.X1(Qt.Parachain(n))}}},wt=(t,e)=>({type:t,value:{parents:0,interior:he.X1(e)}}),Ys=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Sc(s)?_c:s}}:{type:e},lt=(t,e)=>({id:t,fun:At.Fungible(e)}),Ca=(t,e,s)=>({type:t,value:[Q.DepositAsset({assets:Ut.Wild(Ot.AllCounted(s)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ms=(t,e,s,n,o)=>{let a=o;return{type:t,value:[Q.SetAppendix([Q.DepositAsset({assets:Ut.Wild(Ot.All()),beneficiary:{parents:0,interior:he.X1(s)}})]),Q.InitiateReserveWithdraw({assets:Ut.Wild(Ot.AllOf({id:n,fun:Xc.Fungible()})),reserve:cs.ethereumLocation(ia),xcm:[Q.BuyExecution({fees:{id:Dc(n),fun:At.Fungible(1n)},weight_limit:Qs.Unlimited()}),Q.DepositAsset({assets:Ut.Wild(Ot.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}}),Q.SetTopic(a)]}),Q.SetTopic(a)]}},Dc=t=>{let e=Ic.findNestedKey(t,"key");return e?{parents:0,interior:he.X1(Qt.AccountKey20({key:e.key}))}:{parents:0,interior:he.Here()}},ka=(t,e,s,n,o,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(n)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(n)},weight_limit:Qs.Unlimited()}),Q.Transact({origin_kind:Rc.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Ot.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]}),Ta=(t,e,s,n,o,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(o)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(o)},weight_limit:Qs.Unlimited()}),Q.TransferAsset({assets:[{id:s,fun:At.Fungible(n)}],beneficiary:{parents:0,interior:he.X1(a)}}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Ot.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ue="PolkadotXcm",Hc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=G(t),i=o.chain,m=n.chain,c="V4",u=J($(i,s),c),p=J($(i,n.fee),c),d=lt(u,e),b=lt(p,n.fee.amount),x="limited_reserve_transfer_assets";return new Ct({module:ue,func:x,getTx:T=>{let E=T.getUnsafeApi().tx[ue][x];return s.key===n.fee.key?E({dest:je(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[d]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):la(u,p)?E({dest:je(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[b,d]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):E({dest:je(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[d,b]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Wc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=G(t),i=o.chain,m=n.chain,c="V4",u=J($(i,s),c),p=lt(u,e),d=je(c,i,m),b=wt(c,a),x={type:c,value:[p]},T="limited_teleport_assets";return new Ct({module:ue,func:T,getTx:E=>E.getUnsafeApi().tx[ue][T]({dest:d,beneficiary:b,assets:x,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Mc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=G(t),i=o.chain,m=n.chain,c=i.xcmVersion??"V4",u=J($(i,s),c),p=lt(u,e),d=je(c,i,m),b=wt(c,a),x={type:c,value:[p]},T="reserve_transfer_assets";return new Ct({module:ue,func:T,getTx:E=>E.getUnsafeApi().tx[ue][T]({dest:d,beneficiary:b,assets:x,fee_asset_item:0})})}}),Vc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=G(t),i=o.chain,m=n.chain,c="V4",u=J($(i,s),c),p=lt(u,e),d=je(c,i,m),b=wt(c,a),x={type:c,value:[p]},T="transfer_assets";return new Ct({module:ue,func:T,getTx:E=>E.getUnsafeApi().tx[ue][T]({dest:d,beneficiary:b,assets:x,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Uc=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:i,source:m,transact:c})=>{let u="V4",p=m.chain,d=o.chain,b=o.fee.amount,x=o.fee;c&&(d=c.chain,b=Zs.toBigInt(c.fee.amount,c.fee.decimals),x=c.fee);let T=G(i),E=c||d.usesCexForwarding?Vt(p,i,d):e,X=G(E),{transferType:O}=t,N=J($(p,s),u),C=J($(p,x),u),Ne=lt(N,n),ht=lt(C,b),$e=s.isEqual(x),at=je(u,p,d),Je={type:u,value:$e?[Ne]:[ht,Ne]},ot=Ys(u,O,N),qt={type:u,value:$e?N:C},Rs=Ys(u,O,C),Bt;wa(N)&&o.chain.isEvmChain()?Bt=ms(u,X,T,N,a):Bt=Ca(u,X,Je.value.length);let ss="transfer_assets_using_type_and_then";return new Ct({module:ue,func:ss,getTx:Vo=>Vo.getUnsafeApi().tx[ue][ss]({dest:at,assets:Je,assets_transfer_type:ot,remote_fees_id:qt,fees_transfer_type:Rs,custom_xcm_on_dest:Bt,weight_limit:{type:"Unlimited"}})})}}),Oc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,i="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let m=o.chain,c=a.chain,u=Vt(m,n,c),p=G(u),{fee:d}=a,b=J($(c,d),i),x=Zs.toBigInt(e.fee,d.decimals);return new Ct({module:ue,func:t,getTx:T=>T.getUnsafeApi().tx[ue][t]({dest:je(i,m,c),message:ka(i,p,b,x,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:i,source:m,destination:c}=s,u="V4",p=m.chain,d=c.chain,b=Vt(p,i,d),x=G(b),T=G(o),E=J($(d,a),u),{fee:X}=c,O=Zs.toBigInt(e.fee,X.decimals),N=n>X.amount?n-(X.amount+O):n;return new Ct({module:ue,func:t,getTx:C=>C.getUnsafeApi().tx[ue][t]({dest:je(u,p,d),message:Ta(u,x,E,N,O,T)})})}})}},en=()=>({limitedReserveTransferAssets:Hc,limitedTeleportAssets:Wc,reserveTransferAssets:Mc,transferAssets:Vc,transferAssetsUsingTypeAndThen:Uc,send:Oc});import{ExtrinsicConfig as Kc}from"@galacticcouncil/xc-core";import{encodeAssetId as Gc}from"@galacticcouncil/common";import{XcmV3Junctions as va,XcmV3Junction as Nc}from"@galacticcouncil/descriptors";var Ba=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:va.X1(s)}}:{type:t,value:{parents:1,interior:va.X2([Nc.Parachain(e.parachainId),s])}};var Pa="XTokens",qc=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let i=a.chain,m=n.chain,c="V3",u=m.usesCexForwarding?Vt(i,o,m):t,p=G(u),d=i.getAssetId(s),b=Gc(d),x="transfer";return new Kc({module:Pa,func:x,getTx:T=>T.getUnsafeApi().tx[Pa][x]({currency_id:b,amount:e,dest:Ba(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),tn=()=>({transfer:qc});function l(){return{assetConversion:Jn,assets:Qn,balances:Zn,ethereumXcm:Ms,polkadotXcm:en,router:ea,utility:sa,xTokens:tn}}function tt(t,e){return{prior:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,...s]).build(n):l().utility().batchAll([...s]).build(n)}}}}import{Abi as on,Snowbridge as rm,Wormhole as Xa,Basejump as im}from"@galacticcouncil/xc-core";var Ia={};jt(Ia,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Ea,AssethubClient:()=>le,BaseClient:()=>ke,HydrationClient:()=>be,getAllAssetDepositLimits:()=>nn,getAssetDepositLimit:()=>sn,getGlobalWithdrawLimit:()=>an});import{encodeLocation as jc}from"@galacticcouncil/common";import{hub as zc,XcmVersionedAssetId as $c}from"@galacticcouncil/descriptors";var ke=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??zc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=jc(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,$c.V4(a));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Jc,XcmV5Junction as Qc,XcmVersionedLocation as Yc,XcmVersionedXcm as Zc,XcmVersionedAssetId as em}from"@galacticcouncil/descriptors";import{encodeLocation as tm}from"@galacticcouncil/common";import{Twox128 as sm,u128 as nm}from"@polkadot-api/substrate-bindings";import{toHex as am}from"@polkadot-api/utils";var le=class extends ke{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=tm(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=am(sm(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let a=nm.dec(o);return a===0n?e.defaultFee:a}async calculateDeliveryFee(e,s){let n=Yc.V5({parents:1,interior:Jc.X1(Qc.Parachain(s))}),o=em.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Zc.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let i=a.value.value.find(c=>{let u=c.id;return u&&u.parents&&u.parents===1&&u.interior.type==="Here"});if(!i)throw Error("Can't find XCM delivery fee in DOT.");let m=i.fun.value;if(typeof m=="bigint")return m;throw Error("Can't parse delivery fee.")}};import{hydration as om}from"@galacticcouncil/descriptors";var Ea=14400;function Fa(t,e,s,n,o,a){let i=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,m=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,c=e?.decimals??12,u=!1,p,d,b;s&&(s.type==="Locked"?(p=s.value,u=o<s.value):(d=s.value[0],b=s.value[1]));let x=n?.type==="Local"?"Local":"External",T=!u&&d!==void 0&&d+Ea<=o,E=null;if(i!==null)if(u)E=0n;else if(T)E=i;else{let X=b??a,O=a>X?a-X:0n;E=i>O?i-O:0n}return{assetId:t,symbol:m,decimals:c,limit:i,locked:u,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:b,currentIssuance:a,headroom:E,category:x,periodExpired:T}}async function sn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,i,m]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return Fa(e,n,o,a,i,m)}async function nn(t){let[e,s,n,o,a,i]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),m=new Map(s.map(d=>[d.keyArgs[0],d.value])),c=new Map(n.map(d=>[d.keyArgs[0],d.value])),u=new Map(i.map(d=>[d.keyArgs[0],d.value])),p=new Map;for(let d of e){let b=d.keyArgs[0],x=d.value;if(x?.xcm_rate_limit==null)continue;let T=b===0?a:u.get(b)??0n,E=Fa(b,x,m.get(b),c.get(b),o,T);p.set(b.toString(),E)}return p}async function an(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,i=a!==void 0&&o<a,[m,c]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:i,lockdownUntilMs:a};let{limit:u,window:p}=e,d=m;if(!i&&p>0n){let x=o>c?o-c:0n;if(x>0n){let T=x>p?p:x,E=m*T/p;d=m>E?m-E:0n}}let b=i||d>=u?0n:u-d;return{configured:!0,limit:u,windowMs:p,used:d,lastUpdateMs:c,headroom:b,lockdown:i,lockdownUntilMs:a}}var be=class extends ke{constructor(e){super(e,om)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:i}=o;return BigInt(a)-BigInt(i)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return sn(this.api(),s)}getAllAssetDepositLimits(){return nn(this.api())}getGlobalWithdrawLimit(){return an(this.api())}};function cm(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,a=Xa.fromChain(n),i=Xa.fromChain(o),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:on.TokenRelayer,address:a.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function mm(){return{TokenRelayer:cm}}function um(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,i=rm.fromChain(o),m=new ke(a),c=new le(t.hub),u=Os(e,a),[p,d]=await Promise.all([m.calculateDestinationFee(u,A),c.calculateDeliveryFee(u,a.parachainId)]),b=d+Wt(p,25n),x=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:on.Snowbridge,address:i.getGateway(),args:[x,a.parachainId,b],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:b}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new le(t.hub),i=ba(e,o),m=Os(e,o),[c,u,p,d,b]=await Promise.all([a.getBridgeDeliveryFee(),a.calculateDeliveryFee(i,ra),a.calculateDestinationFee(i,s),a.calculateDeliveryFee(m,o.parachainId),a.calculateDestinationFee(m,s)]);return{amount:c+u+Wt(p,25n)+d+Wt(b,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:u,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:b}}}})}}function lm(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,i=t?.reserve;if(ha(e,o,a,i),i){let b=new ke(a),x=new ke(i),T=$s(e,a),E=ga(e,i,a),[X,O]=await Promise.all([b.calculateDestinationFee(T,e),x.calculateDestinationFee(E,e)]),N=O+X,C=Wt(N,20n),Ne=C-N;return{amount:C,breakdown:{reserveFee:O,destinationFee:X,margin:Ne}}}let m=new ke(a),c=ya(e,a),u=await m.calculateDestinationFee(c,e),p=Wt(u,20n),d=p-u;return{amount:p,breakdown:{totalFee:u,margin:d}}}})}}function dm(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=im.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:on.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function w(){return{Basejump:dm,XcmPaymentApi:lm,Snowbridge:um,Wormhole:mm}}var fm="0";function pm(){return{build:async({address:t,chain:e})=>{let n=await new be(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():fm,a=e.findAssetById(o);return a?a.asset:j}}}var hm=()=>({accountCurrencyMap:pm});function Yt(){return{multiTransactionPayment:hm}}import{mrl as Sa,Precompile as La,ProgramConfig as Da,Wormhole as us}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as bm,NATIVE_MINT as Ra,TOKEN_PROGRAM_ID as ym,createCloseAccountInstruction as gm,createInitializeAccountInstruction as xm,getMinimumBalanceForRentExemptAccount as Am,getAssociatedTokenAddress as wm}from"@solana/spl-token";import{Keypair as rn,PublicKey as cn,SystemProgram as _a}from"@solana/web3.js";import{UniversalAddress as Ha}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Wa,createTransferNativeWithPayloadInstruction as Ma,getWrappedMeta as Cm}from"@wormhole-foundation/sdk-solana-tokenbridge";var km=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:a,destination:i}=e,m=o.chain,c=m,u=us.fromChain(m),p=us.fromChain(t.moonchain),d=La.Bridge,b=await Sa.createPayload(i.chain,s),x=new cn(a),T=new Ha(d),E=p.getWormholeId(),X=x,O=0,N=rn.generate(),C=rn.generate(),Ne=await Am(c.connection),ht=_a.createAccount({fromPubkey:X,newAccountPubkey:C.publicKey,lamports:Ne,space:bm,programId:ym}),$e=_a.transfer({fromPubkey:X,lamports:n,toPubkey:C.publicKey}),at=xm(C.publicKey,Ra,X),Je=Wa(u.getTokenBridge(),C.publicKey,X,n),ot=Ma(c.connection,u.getTokenBridge(),u.getCoreBridge(),a,N.publicKey,C.publicKey,Ra,O,n,T.toUint8Array(),E,b.toU8a()),qt=gm(C.publicKey,X,X);return new Da({instructions:[ht,$e,at,Je,ot,qt],signers:[N,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ne)})}})}),Tm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:a,sender:i,destination:m}=e,c=a.chain,u=c,p=us.fromChain(c),d=us.fromChain(t.moonchain),b=La.Bridge,x=await Sa.createPayload(m.chain,s),T=new cn(i),E=a.chain.getAssetId(o),X=new cn(E),O=await wm(X,T),N=new Ha(b),C=d.getWormholeId();if(await Cm(u.connection,p.getTokenBridge(),X).catch(ot=>null).then(ot=>ot!=null))throw new Error("Wrapped assets not supported yet");let ht=0,$e=rn.generate(),at=Wa(p.getTokenBridge(),O,T,n),Je=Ma(u.connection,p.getTokenBridge(),p.getCoreBridge(),i,$e.publicKey,O,X,ht,n,N.toUint8Array(),C,x.toU8a());return new Da({instructions:[at,Je],signers:[$e],func:"TransferWithPayload",module:"TokenBridge"})}})}),Va=()=>({transferNativeWithPayload:km,transferTokenWithPayload:Tm});function Ua(){return{TokenBridge:Va}}function Zt(){return{Wormhole:Ua}}import{mrl as vm,MoveConfig as Bm,Precompile as Pm,Wormhole as Oa}from"@galacticcouncil/xc-core";import{Transaction as Em}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Fm,SUI_TYPE_ARG as Im}from"@mysten/sui/utils";import{UniversalAddress as Xm}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as Rm,getPackageId as Na}from"@wormhole-foundation/sdk-sui";var _m=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:a,destination:i}=e,m=o.chain,c=m,u=Oa.fromChain(m),p=Oa.fromChain(t.moonchain),d=0,b=Pm.Bridge,x=await vm.createPayload(i.chain,s),T=new Xm(b),E=p.getWormholeId(),X=Im,[O,N]=await Promise.all([Na(c.client,u.coreBridge),Na(c.client,u.tokenBridge)]),C=new Em,[Ne]=C.splitCoins(C.gas,[C.pure.u64(n)]),[ht]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[$e]=C.moveCall({target:`${N}::state::verified_asset`,arguments:[C.object(u.tokenBridge)],typeArguments:[X]}),at=!1,Je=await(async()=>{let Bt=await Rm(c.client,O,a);if(Bt!==null)return C.object(Bt);{let[ss]=C.moveCall({target:`${O}::emitter::new`,arguments:[C.object(u.coreBridge)]});return at=!0,ss}})(),[ot,qt]=C.moveCall({target:`${N}::transfer_tokens_with_payload::prepare_transfer`,arguments:[Je,$e,Ne,C.pure.u16(E),C.pure.vector("u8",T.toUint8Array()),C.pure.vector("u8",x.toU8a()),C.pure.u32(d)],typeArguments:[X]});C.moveCall({target:`${N}::coin_utils::return_nonzero`,arguments:[qt],typeArguments:[X]});let[Rs]=C.moveCall({target:`${N}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(u.tokenBridge),ot],typeArguments:[X]});return C.moveCall({target:`${O}::publish_message::publish_message`,arguments:[C.object(u.coreBridge),ht,Rs,C.object(Fm)]}),at&&C.transferObjects([Je],C.pure.address(a)),new Bm({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ka=()=>({transferNativeWithPayload:_m});function Ga(){return{TokenBridge:Ka}}function mn(){return{Wormhole:Ga}}var ja={};jt(ja,{Tag:()=>st});var st=(a=>(a.Basejump="Basejump",a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(st||{});function $a(t,e){return new za({source:{asset:t,balance:r().evm().erc20(),fee:{asset:I,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:0,asset:e}},contract:L().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})}function Ja(t,e){return new za({source:{asset:t,balance:r().evm().erc20(),fee:{asset:I,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:w().Basejump().quoteFee(),asset:t}},contract:L().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Lm=[$a(Qe,Ke)],Dm=[Ja(Qe,Ke)],Qa=new Sm({chain:Et,routes:[...Lm,...Dm]});import{AssetRoute as ls,ChainRoutes as Hm}from"@galacticcouncil/xc-core";import{AssetRoute as Ya}from"@galacticcouncil/xc-core";function Nt(t,e){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:I,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:f,asset:e,fee:{amount:0,asset:e}},contract:L().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})}function re(t,e){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:I,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:f,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:I}},contract:L().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Wm=[new ls({source:{asset:I,balance:r().evm().native(),destinationFee:{asset:I,balance:r().evm().native()}},destination:{chain:f,asset:Y,fee:{amount:0,asset:Y}},contract:L().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),Nt(fe,ee),Nt(qe,Ae),Nt(y,xe),Nt(h,ge),Nt(Ge,ye)],Mm=[new ls({source:{asset:I,balance:r().evm().native(),fee:{asset:I,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:f,asset:I,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:I}},contract:L().Snowbridge().sendToken(),tags:["Snowbridge"]}),re(ve,ve),re(Pe,Pe),re(Ee,Ee),re(Se,Se),re(De,De),re(He,He),re(Xe,Xe),re(Fe,Fe),re(Re,Re),re(Le,Le),re(We,We),re(Ve,Ve),re(y,yt),re(h,bt)],mg=[new ls({source:{asset:I,balance:r().evm().native(),destinationFee:{asset:I,balance:r().evm().erc20()}},destination:{chain:P,asset:Y,fee:{amount:0,asset:Y}},contract:L().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new ls({source:{asset:fe,balance:r().evm().erc20(),fee:{asset:I,balance:r().evm().native()},destinationFee:{asset:fe,balance:r().evm().erc20()}},destination:{chain:P,asset:ee,fee:{amount:0,asset:ee}},contract:L().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Za=new Hm({chain:S,routes:[...Wm,...Mm]});var eo=[Qa,Za];import{AssetRoute as ps,ChainRoutes as so}from"@galacticcouncil/xc-core";import{AssetRoute as un}from"@galacticcouncil/xc-core";var kt=0,Vm=t=>{let{source:e}=t;return!!e.feeSwap},Um=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},to=l().assetConversion().swapTokensForExactTokens({slippage:30});function Om(t,e,s){return new un({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:tt(Um,to).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function ds(t,e,s){return new un({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:tt(Vm,to).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Tt(t,e,s){return new un({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fs(t){return Om(t,f,.02)}var Nm=[new ps({source:{asset:A,balance:r().substrate().system().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().system().account()},min:mt().assets().asset()},destination:{chain:f,asset:A,fee:{amount:.001,asset:A}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new ps({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:f,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Tt(h,f,.02),Tt(y,f,.02),fs(Ye)],Km=[new ps({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:Ze,asset:F,fee:{amount:.001,asset:F}},extrinsic:l().polkadotXcm().transferAssets()})],Gm=[Tt(h,P,.25),Tt(y,P,.25)],qm=[Tt(h,H,.03),Tt(y,H,.03)],jm=[new ps({source:{asset:U,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:kt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:it,asset:U,fee:{amount:2.5,asset:U}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],no=new so({chain:rt,routes:[ds(h,f,.02),ds(y,f,.02),ds(A,f,.001)]}),ao=new so({chain:k,routes:[...Nm,...Km,...Gm,...qm,...jm]});import{AssetRoute as nt,ChainRoutes as zm}from"@galacticcouncil/xc-core";var $m=[new nt({source:{asset:D,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:l().polkadotXcm().reserveTransferAssets()}),new nt({source:{asset:R,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:H}),asset:R}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:v,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:P}),asset:v}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:_,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:W,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:W,fee:{amount:.01,asset:W}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:H}),asset:M}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:z,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:z,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:H}),asset:z}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:h,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:h}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:y,balance:r().substrate().assets().account(),fee:{asset:D,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:f,asset:y,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],oo=new zm({chain:Z,routes:[...$m]});import{AssetRoute as Oe,ChainRoutes as Jm}from"@galacticcouncil/xc-core";var Qm=[new Oe({source:{asset:R,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:M,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:z,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:z,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:A,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:A,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Oe({source:{asset:D,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:D,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:D}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:v,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:P}),asset:v}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:h,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:h}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:y,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:y,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Ym=[new Oe({source:{asset:h,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Oe({source:{asset:y,balance:r().substrate().tokens().accounts(),fee:{asset:R,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:y,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],ro=new Jm({chain:H,routes:[...Qm,...Ym]});import{AssetRoute as ze,ChainRoutes as o0}from"@galacticcouncil/xc-core";var Zm="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Zm?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),q=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:B()});import{AssetRoute as vt}from"@galacticcouncil/xc-core";var e0=.9,t0=1,s0=1,hs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},bs=l().router().buy({slippage:30});function V(t,e,s){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function Kt(t,e,s){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function dt(t,e){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function ys(t){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:tt(hs,bs).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function n0(t,e,s="LocalReserve"){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s0,asset:v}},extrinsic:tt(hs,bs).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ft(t){return n0(t,P,"DestinationReserve")}function a0(t,e,s,n,o,a){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:tt(hs,bs).priorMulti([l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),l().polkadotXcm().send().transact({fee:e0})]),transact:{chain:P,fee:{amount:t0,asset:v,balance:B()},extrinsic:l().ethereumXcm().transact(o)},tags:a})}function Te(t,e,s){return a0(t,e,s,0,L().Batch().batchAll([L().Erc20().approve(n=>n.getTokenBridge()),L().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function te(t,e,s){return new vt({source:{asset:t,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:s,asset:e,fee:{amount:w().Snowbridge().calculateOutboundFee({hub:k}),asset:A}},extrinsic:tt(hs,bs).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var r0=[dt(A,k),dt(F,k),dt(h,k),dt(y,k),ys(Ye)],i0=[V(D,Z),V(R,Z,H),V(v,Z,P),new ze({source:{asset:_,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:Z,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:W,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:Z,asset:W,fee:{amount:.01,asset:W}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),V(M,Z,H),V(z,Z,H),V(h,Z,k),V(y,Z,k)],c0=[V(R,H),V(M,H),V(z,H),V(D,H,Z),V(v,H,P),new ze({source:{asset:_,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:H,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),V(h,H,k),V(y,H,k),new ze({source:{asset:A,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:H,asset:A,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],m0=[Kt(_,we,62e-8),Kt(W,we,.0019213457),Kt(j,we,.5),Kt(h,we,.3),Kt(y,we,.3),new ze({source:{asset:M,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:we,asset:M,fee:{amount:.01,asset:A}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:A,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:we,asset:A,fee:{amount:.05,asset:A}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],u0=[V(j,P),V(v,P),V(h,P,k),V(y,P,k),ft(ee),ft(ye),ft(xe),ft(ge),ft(Ae),ft(Y),ft(K)],l0=[new ze({source:{asset:U,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:it,asset:U,fee:{amount:2.5,asset:U}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],d0=[V(Me,St)],f0=[new ze({source:{asset:de,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:It,asset:de,fee:{amount:.04,asset:de}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],p0=[V(Ie,Xt)],h0=[new ze({source:{asset:ie,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:Lt,asset:ie,fee:{amount:.02,asset:ie}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],b0=[new ze({source:{asset:pe,balance:B(),fee:q(),destinationFee:{balance:B()}},destination:{chain:_t,asset:pe,fee:{amount:1.1,asset:pe}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],y0=[V(_e,Rt)],g0=[V(Be,Ft)],x0=[Te(Ke,Qe,Et)],A0=[Te(ee,fe,S),Te(Y,I,S),Te(Ae,qe,S),Te(ge,h,S),Te(xe,y,S),Te(ye,Ge,S)],w0=[te(I,I,S),te(ve,ve,S),te(Pe,Pe,S),te(Ee,Ee,S),te(Se,Se,S),te(De,De,S),te(He,He,S),te(We,We,S),te(Xe,Xe,S),te(Fe,Fe,S),te(Re,Re,S),te(Le,Le,S),te(Ve,Ve,S),te(yt,y,S),te(bt,h,S)],C0=[Te(K,K,ct),Te(ne,ne,ct),Te(ae,ae,ct)],k0=[Te(oe,oe,Dt)],T0=[dt(A,rt),dt(h,rt),dt(y,rt)],io=new o0({chain:f,routes:[...g0,...r0,...i0,...x0,...c0,...T0,...f0,...w0,...A0,...m0,...p0,...h0,...u0,...l0,...y0,...b0,...C0,...k0,...d0]});import{AssetRoute as xs,ChainRoutes as v0}from"@galacticcouncil/xc-core";var ln=()=>r().substrate().tokens().accounts();function gs(t,e){return new xs({source:{asset:t,balance:ln(),fee:{asset:W,balance:ln()},destinationFee:{balance:ln()}},destination:{chain:f,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:l().xTokens().transfer()})}var B0=[new xs({source:{asset:W,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:W,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:l().xTokens().transfer()}),new xs({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:_,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:l().xTokens().transfer()}),new xs({source:{asset:j,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:f,asset:j,fee:{amount:.5,asset:j}},extrinsic:l().xTokens().transfer()}),gs(M,H),gs(h,k),gs(y,k),gs(A,k)],co=new v0({chain:we,routes:[...B0]});import{AssetRoute as es,ChainRoutes as F0}from"@galacticcouncil/xc-core";import{AssetRoute as mo}from"@galacticcouncil/xc-core";function P0(t,e,s){return new mo({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:L().PolkadotXcm().transferAssetsToPara32()})}function E0(t,e,s){return new mo({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:L().PolkadotXcm().transferAssetsToPara32()})}function pt(t,e){return P0(t,f,e)}function As(t,e){return E0(t,f,e)}var I0=[new es({source:{asset:v,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:v,fee:{amount:.05,asset:v}},contract:L().PolkadotXcm().transferAssetsToPara32()}),As(j,.6),As(h,.3),As(y,.3),pt(ee,.004),pt(ye,.004),pt(xe,.004),pt(ge,.004),pt(Ae,1e-7),pt(Y,2e-6),pt(K,2e-5)],X0=[new es({source:{asset:h,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:h,fee:{amount:.18,asset:h}},contract:L().PolkadotXcm().transferAssetsToPara32()}),new es({source:{asset:y,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:y,fee:{amount:.18,asset:y}},contract:L().PolkadotXcm().transferAssetsToPara32()})],Bx=[new es({source:{asset:Y,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:Y,balance:r().evm().erc20()}},destination:{chain:S,asset:I,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:I}},contract:L().Batch().batchAll([L().Erc20().approve(t=>t.getTokenRelayer()),L().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new es({source:{asset:ee,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:ee,balance:r().evm().erc20()}},destination:{chain:S,asset:fe,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:fe}},contract:L().Batch().batchAll([L().Erc20().approve(t=>t.getTokenRelayer()),L().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],uo=new F0({chain:P,routes:[...I0,...X0]});import{AssetRoute as lo,ChainRoutes as R0}from"@galacticcouncil/xc-core";var _0=[new lo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:U,fee:{amount:.01,asset:U}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],S0=[new lo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:U,fee:{amount:.1,asset:U}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],fo=new R0({chain:it,routes:[..._0,...S0]});import{AssetRoute as L0,ChainRoutes as D0}from"@galacticcouncil/xc-core";var H0=[new L0({source:{asset:Me,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:Me,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Me}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],po=new D0({chain:St,routes:[...H0]});import{AssetRoute as W0,ChainRoutes as M0}from"@galacticcouncil/xc-core";var V0=[new W0({source:{asset:de,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:de,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:de}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],ho=new M0({chain:It,routes:[...V0]});import{AssetRoute as U0,ChainRoutes as O0}from"@galacticcouncil/xc-core";var N0=[new U0({source:{asset:pe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:pe,fee:{amount:.2,asset:pe}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],bo=new O0({chain:_t,routes:[...N0]});import{AssetRoute as K0,ChainRoutes as G0}from"@galacticcouncil/xc-core";var q0=[new K0({source:{asset:Be,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:Be,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Be}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],yo=new G0({chain:Ft,routes:[...q0]});import{AssetRoute as j0,ChainRoutes as z0}from"@galacticcouncil/xc-core";var $0=[new j0({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:Ie,fee:{amount:2,asset:Ie}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],go=new z0({chain:Xt,routes:[...$0]});import{AssetRoute as J0,ChainRoutes as Q0}from"@galacticcouncil/xc-core";var Y0=[new J0({source:{asset:ie,balance:r().substrate().system().account(),fee:{asset:ie,balance:r().substrate().system().account(),extra:.030555},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:ie,fee:{amount:.03,asset:ie}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],xo=new Q0({chain:Lt,routes:[...Y0]});import{AssetRoute as Z0,ChainRoutes as eu}from"@galacticcouncil/xc-core";var tu=[new Z0({source:{asset:_e,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:f,asset:_e,fee:{amount:.205,asset:_e}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],Ao=new eu({chain:Rt,routes:[...tu]});var wo=[yo,ao,no,oo,ro,io,co,uo,fo,Ao,po,ho,bo,go,xo];import{AssetRoute as dn,ChainRoutes as su}from"@galacticcouncil/xc-core";var nu=[new dn({source:{asset:K,balance:r().solana().native(),destinationFee:{asset:K,balance:r().solana().native()}},destination:{chain:f,asset:K,fee:{amount:0,asset:K}},program:Zt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),new dn({source:{asset:ne,balance:r().solana().token(),fee:{asset:K,balance:r().solana().native()},destinationFee:{asset:ne,balance:r().solana().token()}},destination:{chain:f,asset:ne,fee:{amount:0,asset:ne}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),new dn({source:{asset:ae,balance:r().solana().token(),fee:{asset:K,balance:r().solana().native()},destinationFee:{asset:ae,balance:r().solana().token()}},destination:{chain:f,asset:ae,fee:{amount:0,asset:ae}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})],Co=new su({chain:ct,routes:[...nu]});var ko=[Co];import{AssetRoute as au,ChainRoutes as ou}from"@galacticcouncil/xc-core";var ru=[new au({source:{asset:oe,balance:r().sui().native(),destinationFee:{asset:oe,balance:r().sui().native()}},destination:{chain:f,asset:oe,fee:{amount:0,asset:oe}},move:mn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})],To=new ou({chain:Dt,routes:[...ru]});var vo=[To];import{AssetRoute as Bo,ChainRoutes as iu}from"@galacticcouncil/xc-core";import{AssetRoute as zA}from"@galacticcouncil/xc-core";var fn=.0015;var cu=new Bo({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:fn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),mu=new Bo({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:fn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:Ht,asset:F,fee:{amount:.0012,asset:F}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Po=new iu({chain:Ze,routes:[mu,cu]});import{AssetRoute as Eo,ChainRoutes as lu}from"@galacticcouncil/xc-core";var uu="0",Gt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===uu?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),pn=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:Gt()});var du=[new Eo({source:{asset:h,balance:Gt(),fee:pn(),destinationFee:{balance:Gt()}},destination:{chain:Ze,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],fu=[new Eo({source:{asset:F,balance:Gt(),fee:pn(),destinationFee:{balance:Gt()}},destination:{chain:Ze,asset:F,fee:{amount:.0012,asset:F}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Fo=new lu({chain:Ht,routes:[...du,...fu]});var Io=[Po,Fo];var pu=[...eo,...wo,...ko,...vo,...Io],hu=new Map(pu.map(t=>[t.chain.key,t]));import{Parachain as Lo}from"@galacticcouncil/xc-core";import{TransferValidation as Xo,TransferValidationError as Ro}from"@galacticcouncil/xc-core";var ws=class extends Xo{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Ro("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Cs=class extends Xo{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:i}=n,m=await this.getMin(o,a),c=a.copyWith({amount:a.amount+m});if(i.amount<c.amount)throw new Ro("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new le(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};import{TransferValidation as _o,TransferValidationError as So}from"@galacticcouncil/xc-core";var ks=class extends _o{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new le(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new le(a).getSystemAccountBalance(n)===0n)throw new So("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Ts=class extends _o{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new le(a).checkIfFrozen(n,s))throw new So("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Fs,TransferValidationError as ts}from"@galacticcouncil/xc-core";var bu=12,yu=1,gu=18,vs=class extends Fs{async skipFor(e){let{destination:s}=e,n=s.chain,o=new be(n),a=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return a||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,i=new be(a),m=await i.getFeeAsset(n),c=a.findAssetById(m),u=c.min||yu,p=c.decimals||bu,d=u*Math.pow(10,p),b=await i.getAssetBalance(n,m);if(BigInt(d*1.1)>b)throw new ts("Insufficient_Ed",{amount:d,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Bs=class extends Fs{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,m=await new be(a).getAssetDepositLimit(n);if(m.locked)throw new ts("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:m.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(m.headroom!==null&&s>m.headroom)throw new ts("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:m.headroom,limit:m.limit,error:"circuitBreaker.depositLimitExceeded"})}},Ps=class extends Fs{async validate(e){let{source:s}=e,n=s.chain,a=await new be(n).getGlobalWithdrawLimit();if(a.lockdown)throw new ts("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Es=class extends Fs{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,i=new be(a),m=a.getBalanceAssetId(v),c=a.getAssetDecimals(v)||gu,u=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(u))throw new ts("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var se={isAny:()=>!0,isHydration:t=>t instanceof Lo&&t.parachainId===2034,isHub:t=>t instanceof Lo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},xu=[new ws(se.isAny,se.isAny),new Cs(se.isAny,se.isAny),new ks(se.isAny,se.isHub),new Ts(se.isHub,se.isAny),new vs(se.isAny,se.isHydration),new Es(se.isHydration,se.isAny),new Bs(se.isAny,se.isHydration),new Ps(se.isHydration,se.isAny)];var Ho={};jt(Ho,{AssethubDex:()=>bn,HydrationDex:()=>hn});import{pool as Au,sor as wu,tx as Cu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as ku}from"@galacticcouncil/common";import{Binary as Tu}from"polkadot-api";import{memoize1 as vu}from"@thi.ng/memoize";var{PoolType:Is}=Au,{TradeRouteBuilder:Bu,TradeRouter:Pu}=wu,{TxBuilderFactory:Eu}=Cu,hn=class{chain;client;poolCtx;txBuilder;getCtx=vu(async e=>{console.log("init swap router",e,"\u2705");let s=new Pu(this.poolCtx);return s.withFilter({useOnly:[Is.Aave,Is.Omni,Is.Stable,Is.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new be(this.chain),this.txBuilder=new Eu(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=o.amount,u=await this.getCtx(1),p=await u.getMostLiquidRoute(i,m),d=await u.getBuy(i,m,c,p),T=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Tu.toHex(T)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let u=await c.getMostLiquidRoute(a,i),p=await c.getBuy(a,i,m,u);return{amount:p.amountIn,route:Bu.build(p.swaps)}}catch(u){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw u}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let a=o*s,i=Math.pow(10,ku);return a/BigInt(i)}};import{encodeLocation as Do}from"@galacticcouncil/common";var bn=class{chain;client;constructor(e){this.chain=e,this.client=new le(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Do(o),Do(a),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as Iu}from"@galacticcouncil/xc-core";import{Asset as Fu}from"@galacticcouncil/xc-core";function Xs(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Fu({key:[o,s,e].join("_"),originSymbol:n})}function Wo(t){let{decimals:e,id:s}=t;return{asset:Xs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Mo(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Xs(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var yn=class extends Iu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let i=Xs(a),m=Wo(a),c=Mo(a);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,fs(i)),this.updateChainRoute(s,ys(i))})}};export{yn as HydrationConfigService,No as assetsMap,qa as builders,jr as chainsMap,Ia as clients,Ho as dex,hu as routesMap,ja as tags,xu as validations};
@@ -3,6 +3,12 @@ export declare class HydrationEdValidation extends TransferValidation {
3
3
  protected skipFor(ctx: TransferCtx): Promise<boolean>;
4
4
  validate(ctx: TransferCtx): Promise<void>;
5
5
  }
6
+ export declare class HydrationDepositLimitValidation extends TransferValidation {
7
+ validate(ctx: TransferCtx): Promise<void>;
8
+ }
9
+ export declare class HydrationWithdrawLimitValidation extends TransferValidation {
10
+ validate(ctx: TransferCtx): Promise<void>;
11
+ }
6
12
  export declare class HydrationMrlFeeValidation extends TransferValidation {
7
13
  protected skipFor(ctx: TransferCtx): Promise<boolean>;
8
14
  validate(ctx: TransferCtx): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "1.0.0",
3
+ "version": "1.1.0-pr316-e7a3e35",
4
4
  "description": "Cross-chain hydradx & basilisk dapp configuration",
5
5
  "author": "GalacticCouncil",
6
6
  "repository": {