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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ import { Asset, Parachain } from '@galacticcouncil/xc-core';
2
+ import { hydration } from '@galacticcouncil/descriptors';
3
+ import { BaseClient } from '../../base';
4
+ import { AssetDepositLimit, GlobalWithdrawLimit } from './circuit-breaker';
5
+ export declare class HydrationClient extends BaseClient<typeof hydration> {
6
+ constructor(chain: Parachain);
7
+ checkIfSufficient(asset: Asset): Promise<boolean>;
8
+ getFeeAsset(address: string): Promise<string>;
9
+ getAssetBalance(address: string, asset: string): Promise<bigint>;
10
+ getSystemAccountBalance(address: string): Promise<bigint>;
11
+ getTokensAccountsBalance(address: string, asset: string): Promise<bigint>;
12
+ getAssetDepositLimit(assetOrId: Asset | number): Promise<AssetDepositLimit>;
13
+ getAllAssetDepositLimits(): Promise<Map<string, AssetDepositLimit>>;
14
+ getGlobalWithdrawLimit(): Promise<GlobalWithdrawLimit>;
15
+ }
@@ -1,16 +1,2 @@
1
- import { Asset, Parachain } from '@galacticcouncil/xc-core';
2
- import { hydration } from '@galacticcouncil/descriptors';
3
- import { BaseClient } from '../../base';
4
- import { AssetDepositLimit, GlobalWithdrawLimit } from './circuit-breaker';
1
+ export * from './client';
5
2
  export * from './circuit-breaker';
6
- export declare class HydrationClient extends BaseClient<typeof hydration> {
7
- constructor(chain: Parachain);
8
- checkIfSufficient(asset: Asset): Promise<boolean>;
9
- getFeeAsset(address: string): Promise<string>;
10
- getAssetBalance(address: string, asset: string): Promise<bigint>;
11
- getSystemAccountBalance(address: string): Promise<bigint>;
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>;
16
- }
package/build/index.cjs CHANGED
@@ -1 +1 @@
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});
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)],lp=[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()})],xh=[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 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};
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)],lg=[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()})],Ex=[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 JA}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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "1.1.0-pr316-e7a3e35",
3
+ "version": "1.1.0",
4
4
  "description": "Cross-chain hydradx & basilisk dapp configuration",
5
5
  "author": "GalacticCouncil",
6
6
  "repository": {