@galacticcouncil/xc-cfg 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Ws=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var li=Object.getOwnPropertyNames;var fi=Object.prototype.hasOwnProperty;var Yt=(t,e)=>{for(var n in e)Ws(t,n,{get:e[n],enumerable:!0})},pi=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of li(e))!fi.call(t,a)&&a!==n&&Ws(t,a,{get:()=>e[a],enumerable:!(s=di(e,a))||s.enumerable});return t};var bi=t=>pi(Ws({},"__esModule",{value:!0}),t);var tm={};Yt(tm,{HydrationConfigService:()=>Vs,assetsMap:()=>Ia,builders:()=>ga,chainsMap:()=>Ga,clients:()=>ba,dex:()=>_a,routesMap:()=>ti,tags:()=>xa,validations:()=>ni});module.exports=bi(tm);var w=require("@galacticcouncil/xc-core"),Ee=new w.Asset({key:"aave",originSymbol:"AAVE"}),nt=new w.Asset({key:"ajun",originSymbol:"AJUN"}),Fe=new w.Asset({key:"apyusd",originSymbol:"apyUSD"}),O=new w.Asset({key:"astr",originSymbol:"ASTR"}),W=new w.Asset({key:"bnc",originSymbol:"BNC"}),Ms=new w.Asset({key:"bsx",originSymbol:"BSX"}),_e=new w.Asset({key:"cfg_new",originSymbol:"CFG"}),Ie=new w.Asset({key:"cru",originSymbol:"CRU"}),Xe=new w.Asset({key:"dai",originSymbol:"DAI"}),fe=new w.Asset({...Xe,key:"dai_mwh"}),T=new w.Asset({key:"dot",originSymbol:"DOT"}),S=new w.Asset({key:"eth",originSymbol:"ETH"}),Se=new w.Asset({key:"ena",originSymbol:"ENA"}),At=new w.Asset({key:"eurc",originSymbol:"EURC"}),ft=new w.Asset({...At,key:"eurc_mwh"}),_=new w.Asset({key:"glmr",originSymbol:"GLMR"}),oe=new w.Asset({key:"hdx",originSymbol:"HDX"}),M=new w.Asset({key:"ibtc",originSymbol:"IBTC"}),G=new w.Asset({key:"intr",originSymbol:"INTR"}),xe=new w.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),H=new w.Asset({key:"ksm",originSymbol:"KSM"}),Re=new w.Asset({key:"ldo",originSymbol:"LDO"}),De=new w.Asset({key:"lbtc",originSymbol:"LBTC"}),Te=new w.Asset({key:"ewt",originSymbol:"EWT"}),Le=new w.Asset({key:"link",originSymbol:"LINK"}),z=new w.Asset({key:"myth",originSymbol:"MYTH"}),st=new w.Asset({key:"neuro",originSymbol:"NEURO"}),He=new w.Asset({key:"pen",originSymbol:"PEN"}),Ve=new w.Asset({key:"paxg",originSymbol:"PAXG"}),Ae=new w.Asset({key:"prime",originSymbol:"PRIME"}),We=new w.Asset({key:"sky",originSymbol:"SKY"}),J=new w.Asset({key:"sol",originSymbol:"SOL"}),we=new w.Asset({key:"sui",originSymbol:"SUI"}),Me=new w.Asset({key:"susde",originSymbol:"sUSDe"}),pt=new w.Asset({key:"susds",originSymbol:"sUSDS"}),je=new w.Asset({...pt,key:"susds_mwh"}),Ue=new w.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new w.Asset({key:"trac",originSymbol:"TRAC"}),at=new w.Asset({key:"unq",originSymbol:"UNQ"}),g=new w.Asset({key:"usdt",originSymbol:"USDT"}),ze=new w.Asset({...g,key:"usdt_mwh"}),Pt=new w.Asset({...g,key:"usdt_eth"}),x=new w.Asset({key:"usdc",originSymbol:"USDC"}),$e=new w.Asset({...x,key:"usdc_mwh"}),Et=new w.Asset({...x,key:"usdc_eth"}),re=new w.Asset({key:"vastr",originSymbol:"vASTR"}),q=new w.Asset({key:"vdot",originSymbol:"vDOT"}),Zt=new w.Asset({key:"weth",originSymbol:"WETH"}),me=new w.Asset({...Zt,key:"weth_mwh"}),bt=new w.Asset({key:"wbtc",originSymbol:"WBTC"}),Je=new w.Asset({...bt,key:"wbtc_mwh"}),Ne=new w.Asset({key:"wsteth",originSymbol:"wstETH"}),wt=new w.Asset({key:"wud",originSymbol:"WUD"}),hi=[Ee,nt,Fe,O,Ms,_e,Ie,W,Xe,fe,T,Se,At,ft,S,_,oe,M,G,H,Re,De,Te,xe,Le,z,st,Ve,He,Ae,We,J,we,Me,pt,je,Oe,Ue,at,x,$e,Et,g,ze,Pt,re,q,bt,Je,Zt,me,Ne,wt],Ia=new Map(hi.map(t=>[t.key,t]));var Wn=require("@galacticcouncil/xc-core");var Xa=require("viem/chains"),en=new Wn.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:S,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:At,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Wn.ChainEcosystem.Ethereum,evmChain:Xa.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 Mn=require("@galacticcouncil/xc-core");var Sa=require("viem/chains"),B=new Mn.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:S,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ee,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Fe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:_e,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Zt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Se,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Me,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:pt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ue,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:bt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:De,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:g,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Re,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ve,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:We,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ne,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Mn.ChainEcosystem.Ethereum,evmChain:Sa.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 Ra=[en,B];var Un=require("@galacticcouncil/xc-core");var tn=new Un.Parachain({assetsData:[{asset:nt,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Un.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Fn=require("@galacticcouncil/xc-core");var Da={assetsData:[{asset:T,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:wt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:z,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:H,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Fn.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"]},F=new Fn.Parachain({...Da,key:"assethub",name:"AssetHub Polkadot"}),Ft=new Fn.Parachain({...Da,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var On=require("@galacticcouncil/xc-core");var ue=new On.Parachain({assetsData:[{asset:O,xcmLocation:{parents:0,interior:"Here"}},{asset:T,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:W,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:On.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Nn=require("@galacticcouncil/xc-core");var yi=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],N=new Nn.Parachain({assetsData:[{asset:W,id:{Native:W.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:O,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:_,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Nn.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:yi});var nn=require("@galacticcouncil/xc-core");var sn=new nn.Parachain({assetsData:[{asset:Ie,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:nn.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:nn.XcmVersion.v3});var Kn=require("@galacticcouncil/xc-core"),Ha=require("viem");var La=require("@polkadot-api/substrate-bindings"),gi="ETH\0",Gn=class{async toH160(e){let n=(0,La.getSs58AddressInfo)(e);if(!n.isValid)throw new Error(`Invalid SS58 address: ${e}`);let s=n.publicKey,a=Buffer.from(gi),o=s.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var xi=new Gn,Us=["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"],Os=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],Ai=(0,Ha.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Us,webSocket:Os},default:{http:Us,webSocket:Os}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),b=new Kn.EvmParachain({assetsData:[{asset:oe,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:Ee,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:nt,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:W,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Ie,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:T,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:fe,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:S,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Fe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:Se,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:_,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:xe,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:Te,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Re,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:H,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:De,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ve,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:z,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:st,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:He,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:We,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:we,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Me,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:pt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:je,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ue,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Oe,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:at,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:$e,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ft,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:Et,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:g,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:ze,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Pt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:re,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:bt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Je,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Zt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:me,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ne,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:wt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Kn.ChainEcosystem.Polkadot,evmChain:Ai,evmResolver:xi,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Os,rpcs:Us});var an=require("@galacticcouncil/xc-core");var Qe=new an.Parachain({assetsData:[{asset:G,decimals:10,id:{Token:G.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:M,decimals:8,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:T,decimals:10,id:{Token:T.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:oe,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:q,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:an.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:an.XcmVersion.v3});var qn=require("@galacticcouncil/xc-core"),Va=require("viem");var wi=(0,Va.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}),R=new qn.EvmParachain({assetsData:[{asset:_,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:fe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:ft,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:xe,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:je,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:$e,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:ze,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Je,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:me,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:T,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:oe,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:g,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:qn.ChainEcosystem.Polkadot,evmChain:wi,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 jn=require("@galacticcouncil/xc-core");var _t=new jn.Parachain({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:jn.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});var zn=require("@galacticcouncil/xc-core");var on=new zn.Parachain({assetsData:[{asset:st,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:zn.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 rn=require("@galacticcouncil/xc-core");var cn=new rn.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:rn.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:rn.XcmVersion.v3});var $n=require("@galacticcouncil/xc-core");var Ci={assetsData:[{asset:T,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:$n.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"},Wa=new $n.Parachain({...Ci,key:"polkadot"});var Jn=require("@galacticcouncil/xc-core");var mn=new Jn.Parachain({assetsData:[{asset:at,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Jn.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var un=require("@galacticcouncil/xc-core");var dn=new un.Parachain({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:un.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:un.XcmVersion.v3});var Ma=[tn,F,Ft,ue,N,sn,b,on,Qe,R,_t,cn,Wa,mn,dn];var Qn=require("@galacticcouncil/xc-core");var It=new Qn.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:J,decimals:9},{asset:xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Ae,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Qn.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 Ua=[It];var Yn=require("@galacticcouncil/xc-core");var ln=new Yn.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:we,decimals:9}],ecosystem:Yn.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Oa=[ln];var Zn=require("@galacticcouncil/xc-core");var Ct=new Zn.Parachain({assetsData:[{asset:H,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Zn.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 es=require("@galacticcouncil/xc-core");var fn=new es.Parachain({assetsData:[{asset:Ms,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:H,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:es.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 Na=[Ct,fn];var ki=[...Ra,...Ma,...Ua,...Oa,...Na],Ga=new Map(ki.map(t=>[t.key,t]));var Er=require("@galacticcouncil/xc-core");var Aa=require("@galacticcouncil/xc-core");var ga={};Yt(ga,{AssetMinBuilder:()=>Xt,BalanceBuilder:()=>r,ContractBuilder:()=>U,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>Tt,FeeAmountBuilder:()=>v,FeeAssetBuilder:()=>Sn,MoveBuilder:()=>ya,ProgramBuilder:()=>Rn,XcmTransferType:()=>Ge,XcmVersion:()=>ht});var ts=require("@galacticcouncil/xc-core");function Xt(){return{assetRegistry:Ti,assets:vi}}function Ti(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new ts.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async n=>BigInt(n?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new ts.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async n=>BigInt(n?.minimalBalance?.toString()??"0")})})}}function vi(){return{asset:()=>({build:({asset:t})=>new ts.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var _n=require("@galacticcouncil/xc-core");function Ka(){return{erc20:Pi,native:Bi}}function Bi(){return{build:({address:t})=>new _n.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Pi(){return{build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e);if(!s||typeof s!="string")throw new Error(`Invalid contract address: ${e}`);return new _n.ContractConfig({abi:_n.Abi.Erc20,address:s,args:[t],func:"balanceOf",module:"Erc20"})}}}var pn=require("@galacticcouncil/xc-core"),bn=require("@galacticcouncil/common");function qa(){return{assets:Ei,system:_i,tokens:Ii,ormlTokens:Xi,foreignAssets:Fi}}function Ei(){return{account:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Fi(){return{account:()=>({build:({address:t,asset:e,chain:n})=>{let a=n.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let o=(0,bn.encodeLocation)(a);return new pn.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function _i(){return{account:()=>({build:({address:t})=>new pn.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let n=e?.data,s=BigInt(n?.free?.toString()??"0"),a=BigInt((n?.miscFrozen??n?.frozen)?.toString()??"0");return s>=a?s-a:0n}})})}}function Ii(){return{accounts:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Xi(){return{accounts:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var Ns=require("@galacticcouncil/xc-core");function ja(){return{native:Si,token:Ri}}function Si(){return{build:({address:t})=>new Ns.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Ri(){return{build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e);if(!s)throw new Error(`Invalid token address: ${e}`);return new Ns.SolanaQueryConfig({address:t,token:s.toString(),func:"getBalance",module:"Token"})}}}var za=require("@galacticcouncil/xc-core");function $a(){return{native:Di}}function Di(){return{build:({address:t})=>new za.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Ka,substrate:qa,solana:ja,sui:$a}}var Gt=require("@galacticcouncil/xc-core"),Ja=require("viem"),Li=t=>({build:async e=>{let n=await Promise.all(t.map(i=>i.build(e))),s=n.map(i=>i.address),a=[0,0],o=n.map(i=>(0,Ja.encodeFunctionData)({abi:Gt.Abi[i.module],functionName:i.func,args:i.args}));return new Gt.ContractConfig({abi:Gt.Abi.Batch,address:Gt.Precompile.Batch,args:[s,a,o,[]],func:"batchAll",module:"Batch"})}}),Qa=()=>({batchAll:Li});var hn=require("@galacticcouncil/xc-core");function Ce(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function ot(t){return typeof t=="object"?Object.values(t)[0]:t}function Ya(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:a,transact:o}=e,i=o?o.chain:a.chain,m=hn.Wormhole.fromChain(i),c=i.getAssetId(s);return new hn.ContractConfig({abi:hn.Abi.Erc20,address:ot(c).toString(),args:[t(m),n],func:"approve",module:"Erc20"})}})}}var yn=require("@galacticcouncil/xc-core");var Za=require("@galacticcouncil/common"),eo=require("polkadot-api"),to=require("@polkadot-api/utils"),{H160:Hi,isEvmAddress:Vi}=Za.h160;function Wi(t){let e=Vi(t)?Hi.toAccount(t):t;return(0,to.toHex)((0,eo.AccountId)().enc(e))}var Mi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a}=t,o=a.chain,i=yn.Basejump.fromChain(o),m=o.getAssetId(s);return new yn.ContractConfig({abi:yn.Abi.Basejump,address:i.getAddress(),args:[ot(m),n,Wi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),no=()=>({bridgeViaWormhole:Mi});var rt=require("@galacticcouncil/xc-core"),ao=require("@galacticcouncil/common"),{Ss58Addr:so}=rt.addr;function Ui(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 Gs(t,e){let n=t.getAssetId(e);return typeof n=="string"?Ui(n):n}function oo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Gs(a.chain,n);return new rt.ContractConfig({abi:rt.Abi.PolkadotXcm,address:rt.Precompile.PolkadotXcm,args:[s.chain.parachainId,so.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Gs(a.chain,n),i=Gs(a.chain,a.destinationFeeBalance),m=ao.big.toBigInt(s.fee.amount,s.fee.decimals);return new rt.ContractConfig({abi:rt.Abi.PolkadotXcm,address:rt.Precompile.PolkadotXcm,args:[s.chain.parachainId,so.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var St=require("@galacticcouncil/xc-core"),Rt=require("@galacticcouncil/descriptors"),go=require("@polkadot-api/substrate-bindings"),as=require("@polkadot-api/utils"),xo=require("viem");var ro=require("@galacticcouncil/xc-core"),ns=null;async function io(){if(ns)return ns;let t=await ro.codec.getHubCodecs();return ns={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},ns}var fo=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),po=require("@polkadot-api/substrate-bindings"),bo=require("@polkadot-api/utils");var co=require("@galacticcouncil/descriptors"),ie=340282366920938463463374607431768211455n,it="0x0000000000000000000000000000000000000000000000000000000000000000",ne={parents:1,interior:co.XcmV3Junctions.Here()},mo=0,ss=1e3,Ks=1002,Ye=1,Kt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",uo="0x0000000000000000000000000000000000000000000000000000000000000000",lo="0x0000000000000000000000000000000000000000";var qs="0x0000000000000000000000000000000000000000",gn=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),js=(t,e)=>({parents:2,interior:u.XcmV5Junctions.X2([u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),u.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function ho(t,e){let n=gn(t),s=js(t,"0x"+"00".repeat(20)),a=1000000000000n,o=1000000000n,i=[u.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:u.XcmV3MultiassetFungibility.Fungible(a)},{id:s,fun:u.XcmV3MultiassetFungibility.Fungible(a)}]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(o)}})],m=zs({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:a,hydrationDotFee:o,topic:"0x"+"00".repeat(32)});return[...i,...m]}function zs(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:a,tokenAmount:o,hydrationDotFee:i,topic:m}=t,c=gn(e),d=s===qs?c:js(e,s),l=a.length===42&&a.startsWith("0x")?u.XcmV5Junction.AccountKey20({key:a,network:void 0}):u.XcmV5Junction.AccountId32({id:a,network:void 0}),h={parents:0,interior:u.XcmV5Junctions.X1(l)};return[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:h})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:c,fun:{type:"Fungible",value:void 0}})),want:[{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(i)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}])}],remote_xcm:[u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:h}),u.XcmV5Instruction.SetTopic(m)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:h}),u.XcmV5Instruction.SetTopic(m)]}function $s(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:a,sourceExecutionFee:o,dotRemoteFee:i,dotToEtherSwapAmount:m,etherFeeAmount:c,topic:d}=t,p=gn(Ye),l=e===qs?p:js(Ye,e),h={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountId32({id:n,network:void 0}))},A={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountKey20({key:s,network:void 0}))},k={parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(Ye)})))},P=[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),u.XcmV5Instruction.SetTopic(d)],E=[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:h}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:h})])];E.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(m)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(c)}],maximal:!1}));let D=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))}],V=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]);E.push(u.XcmV5Instruction.InitiateTransfer({destination:k,remote_fees:{type:"ReserveWithdraw",value:V},preserve_origin:!0,assets:D,remote_xcm:P}),u.XcmV5Instruction.SetTopic(d));let C=o+i+m,j=[{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(C)},{id:l,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],de=[{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],te={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))},ae=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(m)}])},te];return[u.XcmV5Instruction.WithdrawAsset(j),u.XcmV5Instruction.PayFees({asset:de[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:h}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:h})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(ss))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:ne,fun:u.XcmV3MultiassetFungibility.Fungible(i)}])},preserve_origin:!0,assets:ae,remote_xcm:E}),u.XcmV5Instruction.SetTopic(d)]}function yo(t){let{address:e,amount:n,asset:s,sender:a,source:o,destination:i,messageId:m}=t,c=o.chain,d=(0,po.getSs58AddressInfo)(a);if(!d.isValid)throw new Error(`Invalid SS58 address: ${a}`);let p=(0,bo.toHex)(d.publicKey),l=c.getAssetXcmLocation(s),h=l?fo.multiloc.findNestedKey(l,"key"):void 0,A=h?h.key:qs,k=i.feeBreakdown,P=k.sourceExecutionFee??0n,E=k.dotRemoteFee??0n,D=k.dotToEtherSwapAmount??0n,V=k.etherFeeAmount??0n,j=$s({tokenAddress:A,senderPubKey:p,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:P,dotRemoteFee:E,dotToEtherSwapAmount:D,etherFeeAmount:V,topic:m??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(j)}var{Ss58Addr:Oi}=St.addr,Ni="0x0000000000000000000000000000000000000000",Gi=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:a,source:o,destination:i}=t,m=o.chain,c=i.chain,d=St.Snowbridge.fromChain(m),p=m.getAssetId(s),l=ot(p),h=s.originSymbol==="ETH",A=i.feeBreakdown.executionFee,k=i.feeBreakdown.relayerFee,P=i.feeBreakdown.hydrationDotFee,E=i.fee.amount,D=Oi.getPubKey(e),V=new TextEncoder().encode(`${c.parachainId}${a}${l}${D}${n}${Date.now()}`),C=(0,as.toHex)((0,go.Blake2256)(V)),j=zs({ethChainId:Ye,destinationParaId:c.parachainId,tokenAddress:h?Ni:l,beneficiaryHex:D,tokenAmount:n,hydrationDotFee:P,topic:C}),de=await io(),te=(0,as.toHex)(de.message.enc(Rt.XcmVersionedXcm.V5(j))),ae=[];h||ae.push((0,xo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,l,n]));let ge=de.location.enc(Rt.XcmVersionedLocation.V5({parents:0,interior:Rt.XcmV5Junctions.X1(Rt.XcmV5Junction.AccountId32({id:D,network:void 0}))})),le=(0,as.toHex)(ge.slice(1));return new St.ContractConfig({abi:St.Abi.Snowbridge,address:d.getGateway(),args:[te,ae,le,A,k],value:h?E+n:E,func:"v2_sendMessage",module:"Snowbridge"})}}),Ao=()=>({v2SendMessage:Gi});var K=require("@galacticcouncil/xc-core"),Js=require("@solana/web3.js"),os=require("@solana/spl-token");var Ki=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,asset:a,source:o,destination:i}=e,m=K.Wormhole.fromChain(o.chain),c=K.Wormhole.fromChain(t.moonchain),d=K.Precompile.Bridge,p=o.chain.getAssetId(a),l=0,h=await K.mrl.createPayload(i.chain,n);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:m.getTokenBridge(),args:[ot(p),s,c.getWormholeId(),c.normalizeAddress(d),l,h.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),qi=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,destination:o}=e,i=K.Wormhole.fromChain(a.chain),m=K.Wormhole.fromChain(t.moonchain),c=K.Precompile.Bridge,d=0,p=await K.mrl.createPayload(o.chain,n);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),d,p.toHex()],value:s,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),ji=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,d=K.Wormhole.fromChain(m),p=K.Wormhole.fromChain(c),l=c.getAssetId(s),h=e;if(c.isSolana()){let E=l==="SOL"?os.NATIVE_MINT:new Js.PublicKey(l);h=(await(0,os.getAssociatedTokenAddress)(E,new Js.PublicKey(e))).toBase58()}let A=m.getAssetId(s),k=0,P=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:d.getTokenBridge(),args:[ot(A),n,p.getWormholeId(),p.normalizeAddress(h),k,P],func:"transferTokens",module:"TokenBridge"})}}),zi=()=>({build:async t=>{let{address:e,amount:n,source:s,destination:a}=t,o=K.Wormhole.fromChain(s.chain),i=K.Wormhole.fromChain(a.chain),m=0,c=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:n,func:"wrapAndTransferETH",module:"TokenBridge"})}}),wo=()=>({transferTokens:ji,transferTokensWithPayload:Ki,wrapAndTransferETH:zi,wrapAndTransferETHWithPayload:qi});var qt=require("@galacticcouncil/xc-core");var $i=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,d=qt.Wormhole.fromChain(m),p=qt.Wormhole.fromChain(c),l=0,h=0,A=m.getAssetId(s);return new qt.ContractConfig({abi:qt.Abi.TokenRelayer,address:d.getTokenRelayer(),args:[ot(A),n,l,p.getWormholeId(),p.normalizeAddress(e),h],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Co=()=>({transferTokensWithRelay:$i});function ko(){return{TokenBridge:wo,TokenRelayer:Co}}function U(){return{Batch:Qa,Erc20:Ya,Basejump:no,PolkadotXcm:oo,Snowbridge:Ao,Wormhole:ko}}var vo=require("@galacticcouncil/xc-core"),To="AssetConversion",Ji=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:a}=s,o=s.destinationFeeSwap||s.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,d=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),l=i.amount+i.amount*BigInt(t.slippage)/100n,h=m.amount;return new vo.ExtrinsicConfig({module:To,func:e,getTx:A=>A.getUnsafeApi().tx[To][e]({path:[d,p],amount_out:h,amount_in_max:l,send_to:n,keep_alive:!0})})}}},Bo=()=>({swapTokensForExactTokens:Ji});var rs=require("@galacticcouncil/descriptors"),Po=require("@galacticcouncil/xc-core"),Qi="Assets",Yi=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:a})=>{let o=a.chain,{fee:i}=a,m=n>i.amount?n-i.amount:n,c=o.getMetadataAssetId(e);return new Po.ExtrinsicConfig({module:Qi,func:t,getTx:d=>d.getTypedApi(rs.hub).tx.Assets.transfer({id:Number(c),target:rs.MultiAddress.Id(s),amount:m})})}}},Eo=()=>({transfer:Yi});var _o=require("@galacticcouncil/xc-core"),Fo="Balances",Zi=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new _o.ExtrinsicConfig({module:Fo,func:e,getTx:s=>s.getUnsafeApi().tx[Fo][e]({dest:n,keep_alive:t})})}},Io=()=>({transferAll:Zi});var Xo=require("@galacticcouncil/descriptors"),So=require("@galacticcouncil/xc-core"),ec="Router",tc=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:a}=n;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=s,d=c.getMetadataAssetId(o),p=c.getMetadataAssetId(i),l=i.amount,h=o.amount+o.amount*BigInt(t.slippage)/100n;return new So.ExtrinsicConfig({module:ec,func:"buy",getTx:A=>A.getTypedApi(Xo.hydration).tx.Router.buy({asset_in:Number(d),asset_out:Number(p),amount_out:l,max_amount_in:h,route:m})})}}),Ro=()=>({buy:tc});var Lo=require("@galacticcouncil/xc-core"),Do="Utility",nc=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(a=>a.build(n)));return new Lo.ExtrinsicConfig({module:Do,func:e,getTx:a=>{let o=s.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Do][e]({calls:o})}})}}},Ho=()=>({batchAll:nc});var is=require("@galacticcouncil/xc-core"),Wo=require("polkadot-api"),Mo=require("viem");var ht=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(ht||{}),Ge=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(Ge||{});var Vo="EthereumXcm",sc=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),a="V1",o=(0,Mo.encodeFunctionData)({abi:is.Abi[s.module],functionName:s.func,args:s.args});return new is.ExtrinsicConfig({module:Vo,func:e,getTx:i=>i.getUnsafeApi().tx[Vo][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:Wo.Binary.fromHex(o),access_list:void 0}}})})}}},Qs=()=>({transact:sc});var kt=require("@galacticcouncil/xc-core"),us=require("@galacticcouncil/common");var An=require("@galacticcouncil/xc-core"),y=require("@galacticcouncil/descriptors");var ce=require("@galacticcouncil/descriptors");var Uo=require("@galacticcouncil/common"),Ys=require("@galacticcouncil/descriptors"),Oo=require("@polkadot-api/substrate-bindings"),No=require("@polkadot-api/utils");function Q(t){if(t.length===42&&t.startsWith("0x"))return Ys.XcmV3Junction.AccountKey20({key:t,network:void 0});let n=(0,Oo.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Ys.XcmV3Junction.AccountId32({id:(0,No.toHex)(n.publicKey),network:void 0})}function xn(t,e,n){return Uo.acc.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}var Zs=require("@galacticcouncil/xc-core");function Go(t,e){let n=Zs.multiloc.findNestedKey(t,"GeneralIndex"),s=Zs.multiloc.findNestedKey(e,"GeneralIndex"),a=n&&n.GeneralIndex,o=s&&s.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function Y(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var cs={};Yt(cs,{ETHER_TOKEN_ADDRESS:()=>ea,erc20Location:()=>oc,erc20LocationReanchored:()=>rc,ethereumLocation:()=>qo,parachainLocation:()=>ac});var Ze=require("@galacticcouncil/descriptors"),ea="0x0000000000000000000000000000000000000000",Ko=t=>Ze.XcmV3Junction.GlobalConsensus(Ze.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function qo(t){return{parents:2,interior:Ze.XcmV3Junctions.X1(Ko(t))}}function ac(t){return{parents:1,interior:Ze.XcmV3Junctions.X1(Ze.XcmV3Junction.Parachain(t))}}function oc(t,e){return e===ea?qo(t):{parents:2,interior:Ze.XcmV3Junctions.X2([Ko(t),Ze.XcmV3Junction.AccountKey20({key:e})])}}function rc(t){return t===ea?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ze.XcmV3Junctions.X1(Ze.XcmV3Junction.AccountKey20({key:t}))}}var ta=require("@galacticcouncil/common"),jo=require("@galacticcouncil/xc-core");function Z(t,e){return ic(e)>=4?(0,ta.encodeLocation)(t):cc(t)}function ic(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function cc(t){return{type:"Concrete",value:(0,ta.encodeLocation)(t)}}var mc=1e3;function uc(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(a=>a&&typeof a=="object"&&"GlobalConsensus"in a):!1}function dc(t){if(t)return uc(t)?mc:jo.multiloc.findParachain(t)}function zo(t,e,n,s){let a=e.getAssetXcmLocation(t),o=dc(a),i=s?.parachainId??n.parachainId;if(o&&i!==o)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${s.name} (${s.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function na(t,e){let n="V4",s=Z(Y(e,t),n),a=it;return[ce.XcmV4Instruction.ReserveAssetDeposited([{id:ne,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)},{id:s,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)}]),ce.XcmV4Instruction.ClearOrigin(),ce.XcmV4Instruction.BuyExecution({fees:{id:ne,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:ce.XcmV3WeightLimit.Unlimited()}),ce.XcmV4Instruction.DepositAsset({assets:ce.XcmV4AssetAssetFilter.Wild(ce.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ce.XcmV3Junctions.X1(Q(Kt))}}),ce.XcmV4Instruction.SetTopic(a)]}var yt=require("@galacticcouncil/descriptors");function $o(t,e){let n="V4",s=Z(Y(e,t),n),a=ms("V4",Q(lo),Q(Kt),s,it);return[yt.XcmV4Instruction.WithdrawAsset([{id:ne,fun:yt.XcmV3MultiassetFungibility.Fungible(ie)},{id:s,fun:yt.XcmV3MultiassetFungibility.Fungible(ie)}]),yt.XcmV4Instruction.ClearOrigin(),yt.XcmV4Instruction.BuyExecution({fees:{id:ne,fun:yt.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:yt.XcmV3WeightLimit.Unlimited()}),...a.value]}var X=require("@galacticcouncil/descriptors");function Jo(t,e){let n="V4",s=Z(Y(e,t),n),a=it;return[X.XcmV4Instruction.WithdrawAsset([{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(Q(Kt))}}),X.XcmV4Instruction.SetTopic(a)]}function sa(t,e){let n="V4",s=Z(Y(e,t),n);return[X.XcmV4Instruction.BuyExecution({fees:{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(Q(Kt))}})]}function Qo(t,e,n){let s="V4",a=Z(Y(e,t),s),o=it,i=sa(t,n);return[X.XcmV4Instruction.WithdrawAsset([{id:a,fun:X.XcmV3MultiassetFungibility.Fungible(ie)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:a,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositReserveAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:X.XcmV3Junctions.X1(X.XcmV3Junction.Parachain(n.parachainId))},xcm:i}),X.XcmV4Instruction.SetTopic(o)]}var ee=require("@galacticcouncil/descriptors");function Yo(t,e){let n="V5",s=Z(Y(e,t),n),a={parents:0,interior:ee.XcmV5Junctions.X1(ee.XcmV5Junction.AccountId32({id:uo,network:void 0}))};return[ee.XcmV5Instruction.ReserveAssetDeposited([{id:ne,fun:ee.XcmV3MultiassetFungibility.Fungible(ie)}]),ee.XcmV5Instruction.PayFees({asset:{id:ne,fun:ee.XcmV3MultiassetFungibility.Fungible(ie)}}),ee.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:ee.XcmV3MultiassetFungibility.Fungible(ie)}]),ee.XcmV5Instruction.ClearOrigin(),ee.XcmV5Instruction.RefundSurplus(),ee.XcmV5Instruction.DepositAsset({assets:ee.XcmV5AssetFilter.Wild(ee.XcmV5WildAsset.AllCounted(3)),beneficiary:a}),ee.XcmV5Instruction.SetTopic(it)]}var Zo=[An.ChainEcosystem.Polkadot,An.ChainEcosystem.Kusama],lc={parents:1,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.Parachain(1e3))},fc=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},pc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Zo.includes(t.ecosystem)&&Zo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,er=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 n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},gt=(t,e,n)=>{if(pc(e,n)){let a=n.ecosystem===An.ChainEcosystem.Polkadot?y.XcmV3JunctionNetworkId.Polkadot():y.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:y.XcmV3Junctions.X2([y.XcmV3Junction.GlobalConsensus(a),y.XcmV3Junction.Parachain(n.parachainId)])}}}if(n.parachainId===mo)return{type:t,value:{parents:1,interior:y.XcmV3Junctions.Here()}};let s=n.key==="ethereum"?ss:n.parachainId;return{type:t,value:{parents:1,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.Parachain(s))}}},jt=(t,e)=>({type:t,value:{parents:0,interior:y.XcmV3Junctions.X1(e)}}),aa=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:fc(n)?lc:n}}:{type:e},Dt=(t,e)=>({id:t,fun:y.XcmV3MultiassetFungibility.Fungible(e)}),tr=(t,e,n)=>({type:t,value:[y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(n)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]});var ms=(t,e,n,s,a)=>{let o=a;return{type:t,value:[y.XcmV4Instruction.SetAppendix([y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(n)}})]),y.XcmV4Instruction.InitiateReserveWithdraw({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllOf({id:s,fun:y.XcmV2MultiassetWildFungibility.Fungible()})),reserve:cs.ethereumLocation(Ye),xcm:[y.XcmV4Instruction.BuyExecution({fees:{id:bc(s),fun:y.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}}),y.XcmV4Instruction.SetTopic(o)]}),y.XcmV4Instruction.SetTopic(o)]}},bc=t=>{let e=An.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:y.XcmV3Junctions.Here()}},nr=(t,e,n,s,a,o)=>({type:t,value:[y.XcmV4Instruction.WithdrawAsset([{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)}]),y.XcmV4Instruction.BuyExecution({fees:{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.Transact({origin_kind:y.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:a}),y.XcmV4Instruction.RefundSurplus(),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]}),sr=(t,e,n,s,a,o)=>({type:t,value:[y.XcmV4Instruction.WithdrawAsset([{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(a)}]),y.XcmV4Instruction.BuyExecution({fees:{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.TransferAsset({assets:[{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)}],beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(o)}}),y.XcmV4Instruction.RefundSurplus(),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]});var pe="PolkadotXcm",hc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",d=Z(Y(i,n),c),p=Z(Y(i,s.fee),c),l=Dt(d,e),h=Dt(p,s.fee.amount),A="limited_reserve_transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:A,getTx:k=>{let P=k.getUnsafeApi().tx[pe][A];return n.key===s.fee.key?P({dest:gt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[l]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Go(d,p)?P({dest:gt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[h,l]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):P({dest:gt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[l,h]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),yc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",d=Z(Y(i,n),c),p=Dt(d,e),l=gt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="limited_teleport_assets";return new kt.ExtrinsicConfig({module:pe,func:k,getTx:P=>P.getUnsafeApi().tx[pe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c=i.xcmVersion??"V4",d=Z(Y(i,n),c),p=Dt(d,e),l=gt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="reserve_transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:k,getTx:P=>P.getUnsafeApi().tx[pe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0})})}}),xc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",d=Z(Y(i,n),c),p=Dt(d,e),l=gt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="transfer_assets";return new kt.ExtrinsicConfig({module:pe,func:k,getTx:P=>P.getUnsafeApi().tx[pe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ac=t=>({build:async({address:e,asset:n,amount:s,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let d="V4",p=m.chain,l=a.chain,h=a.fee.amount,A=a.fee;c&&(l=c.chain,h=us.big.toBigInt(c.fee.amount,c.fee.decimals),A=c.fee);let k=Q(i),P=c||l.usesCexForwarding?xn(p,i,l):e,E=Q(P),{transferType:D}=t,V=Z(Y(p,n),d),C=Z(Y(p,A),d),j=Dt(V,s),de=Dt(C,h),te=n.isEqual(A),ae=gt(d,p,l),ge={type:d,value:te?[j]:[de,j]},le=aa(d,D,V),dt={type:d,value:te?V:C},xt=aa(d,D,C),lt;er(V)&&a.chain.isEvmChain()?lt=ms(d,E,k,V,o):lt=tr(d,E,ge.value.length);let En="transfer_assets_using_type_and_then";return new kt.ExtrinsicConfig({module:pe,func:En,getTx:ui=>ui.getUnsafeApi().tx[pe][En]({dest:ae,assets:ge,assets_transfer_type:le,remote_fees_id:dt,fees_transfer_type:xt,custom_xcm_on_dest:lt,weight_limit:{type:"Unlimited"}})})}}),wc=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:a,transact:o}=n,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,d=xn(m,s,c),p=Q(d),{fee:l}=o,h=Z(Y(c,l),i),A=us.big.toBigInt(e.fee,l.decimals);return new kt.ExtrinsicConfig({module:pe,func:t,getTx:k=>k.getUnsafeApi().tx[pe][t]({dest:gt(i,m,c),message:nr(i,p,h,A,o.call,o.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:a,asset:o,sender:i,source:m,destination:c}=n,d="V4",p=m.chain,l=c.chain,h=xn(p,i,l),A=Q(h),k=Q(a),P=Z(Y(l,o),d),{fee:E}=c,D=us.big.toBigInt(e.fee,E.decimals),V=s>E.amount?s-(E.amount+D):s;return new kt.ExtrinsicConfig({module:pe,func:t,getTx:C=>C.getUnsafeApi().tx[pe][t]({dest:gt(d,p,l),message:sr(d,A,P,V,D,k)})})}})}};function Cc(t){let e=n=>({build:async s=>{let a=n(s),o="execute";return new kt.ExtrinsicConfig({module:pe,func:o,getTx:i=>i.getUnsafeApi().tx[pe][o]({message:a,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(yo)}}var oa=()=>({limitedReserveTransferAssets:hc,limitedTeleportAssets:yc,reserveTransferAssets:gc,transferAssets:xc,transferAssetsUsingTypeAndThen:Ac,execute:Cc,send:wc});var rr=require("@galacticcouncil/xc-core"),ir=require("@galacticcouncil/common");var In=require("@galacticcouncil/descriptors"),ar=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:In.XcmV3Junctions.X1(n)}}:{type:t,value:{parents:1,interior:In.XcmV3Junctions.X2([In.XcmV3Junction.Parachain(e.parachainId),n])}};var or="XTokens",kc=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:a,source:o})=>{let i=o.chain,m=s.chain,c="V3",d=m.usesCexForwarding?xn(i,a,m):t,p=Q(d),l=i.getAssetId(n),h=(0,ir.encodeAssetId)(l),A="transfer";return new rr.ExtrinsicConfig({module:or,func:A,getTx:k=>k.getUnsafeApi().tx[or][A]({currency_id:h,amount:e,dest:ar(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),ra=()=>({transfer:kc});function f(){return{assetConversion:Bo,assets:Eo,balances:Io,ethereumXcm:Qs,polkadotXcm:oa,router:Ro,utility:Ho,xTokens:ra}}function Tt(t,e){return{prior:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,...n]).build(s):f().utility().batchAll([...n]).build(s)}}}}var Lt=require("@galacticcouncil/xc-core");var cr=80000n,mr=120000n,ur=1000000n,dr=2000000n,ia=15000000000000n;var ca=require("@galacticcouncil/xc-core");var Tc=999999999999n,vc=[{lowerUsd:0n,upperUsd:100n,numerator:16n,denominator:10000n},{lowerUsd:100n,upperUsd:1000n,numerator:14n,denominator:10000n},{lowerUsd:1000n,upperUsd:10000n,numerator:12n,denominator:10000n},{lowerUsd:10000n,upperUsd:100000n,numerator:10n,denominator:10000n},{lowerUsd:100000n,upperUsd:1000000n,numerator:8n,denominator:10000n},{lowerUsd:1000000n,upperUsd:Tc,numerator:6n,denominator:10000n}];function Bc(t){for(let e of vc)if(t>=e.lowerUsd&&t<e.upperUsd)return{numerator:e.numerator,denominator:e.denominator};return{numerator:6n,denominator:10000n}}var fr=1000000000000000000n;function Pc(t){if(t.txValueUsd<0n)throw new Error("txValueUsd must be >= 0");if(t.ethToUsdNumerator<=0n||t.ethToUsdDenominator<=0n)throw new Error("ethToUsdNumerator and ethToUsdDenominator must be > 0");let{numerator:e,denominator:n}=Bc(t.txValueUsd);return t.txValueUsd*e*fr*t.ethToUsdDenominator/(n*t.ethToUsdNumerator)}var pr=6,ma=10n**BigInt(pr),lr=100n*ma,Ec=fr;async function ua(t,e,n){if(n<=0n)return 0n;try{let[s,{ethToUsdNumerator:a,ethToUsdDenominator:o}]=await Promise.all([Fc(t,e,n),_c(t)]);return Pc({txValueUsd:s,ethToUsdNumerator:a,ethToUsdDenominator:o})}catch(s){return console.warn(`Snowbridge volume tip pricing failed for ${e.key}; defaulting to 0.`,s),0n}}async function Fc(t,e,n){if(e.originSymbol==="USDC"||e.originSymbol==="USDT"){let i=t.chain.getAssetDecimals(e);if(i===void 0)throw new Error(`Snowbridge volume tip: ${e.key} has no decimals on ${t.chain.key}`);return n/10n**BigInt(i)}let s=ca.AssetAmount.fromAsset(x,{amount:lr,decimals:pr}),{amount:a}=await t.getQuote(e,x,s);return n*lr/a/ma}async function _c(t){let e=ca.AssetAmount.fromAsset(S,{amount:Ec,decimals:18}),{amount:n}=await t.getQuote(x,S,e);return{ethToUsdNumerator:n,ethToUsdDenominator:ma}}var ba={};Yt(ba,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>yr,AssethubClient:()=>ve,BaseClient:()=>ct,HydrationClient:()=>be,getAllAssetDepositLimits:()=>fa,getAssetDepositLimit:()=>la,getGlobalWithdrawLimit:()=>pa});var da=require("@galacticcouncil/common"),Xn=require("@galacticcouncil/descriptors"),ct=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??Xn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:o}=s;return BigInt(a)-BigInt(o)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(n);if(!a)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let o=(0,da.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Xn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(i.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let a=this.chain.getAssetXcmLocation(n);if(!a)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let o=(0,da.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Xn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(i.value)}};var Ke=require("@galacticcouncil/descriptors"),br=require("@galacticcouncil/common"),ds=require("@polkadot-api/substrate-bindings"),hr=require("@polkadot-api/utils");var ve=class extends ct{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),a=(0,br.encodeLocation)(s);if(n===0)return!0;let o=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(n));return o&&o.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(s),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let n=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(n)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){let n=new TextEncoder().encode(":BridgeHubEthereumBaseFeeV2:"),s=(0,hr.toHex)((0,ds.Twox128)(n)),a=await this.client._request("state_getStorage",[s]);if(!a)return e.defaultFee;let o=ds.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,n){let s=Ke.XcmVersionedLocation.V5({parents:1,interior:Ke.XcmV5Junctions.X1(Ke.XcmV5Junction.Parachain(n))}),a=Ke.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,Ke.XcmVersionedXcm.V4(e),a);if(!o.success)throw Error("Can't query XCM delivery fee.");let i=o.value.value.find(c=>{let d=c.id;return d&&d.parents&&d.parents===1&&d.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.")}async quoteDotToEther(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(a===void 0)throw Error("Can't quote DOT to Ether conversion.");return a}async quoteEtherForDot(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(a===void 0)throw Error("Can't quote Ether for DOT conversion.");return a}async quoteDotForExactEther(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(a===void 0)throw Error("Can't quote DOT for Ether conversion.");return a}};var xr=require("@galacticcouncil/descriptors");var yr=14400;function gr(t,e,n,s,a,o){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,d=!1,p,l,h;n&&(n.type==="Locked"?(p=n.value,d=a<n.value):(l=n.value[0],h=n.value[1]));let A=s?.type==="Local"?"Local":"External",k=!d&&l!==void 0&&l+yr<=a,P=null;if(i!==null)if(d)P=0n;else if(k)P=i;else{let E=h??o,D=o>E?o-E:0n;P=i>D?i-D:0n}return{assetId:t,symbol:m,decimals:c,limit:i,locked:d,lockedUntilBlock:p,lastResetBlock:l,baselineIssuance:h,currentIssuance:o,headroom:P,category:A,periodExpired:k}}async function la(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,a,o,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"}),n]);return gr(e,s,a,o,i,m)}async function fa(t){let[e,n,s,a,o,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(n.map(l=>[l.keyArgs[0],l.value])),c=new Map(s.map(l=>[l.keyArgs[0],l.value])),d=new Map(i.map(l=>[l.keyArgs[0],l.value])),p=new Map;for(let l of e){let h=l.keyArgs[0],A=l.value;if(A?.xcm_rate_limit==null)continue;let k=h===0?o:d.get(h)??0n,P=gr(h,A,m.get(h),c.get(h),a,k);p.set(h.toString(),P)}return p}async function pa(t){let[e,n,s,a]=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"})]),o=s??void 0,i=o!==void 0&&a<o,[m,c]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:i,lockdownUntilMs:o};let{limit:d,window:p}=e,l=m;if(!i&&p>0n){let A=a>c?a-c:0n;if(A>0n){let k=A>p?p:A,P=m*k/p;l=m>P?m-P:0n}}let h=i||l>=d?0n:d-l;return{configured:!0,limit:d,windowMs:p,used:l,lastUpdateMs:c,headroom:h,lockdown:i,lockdownUntilMs:o}}var be=class extends ct{constructor(e){super(e,xr.hydration)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),a=await this.api().query.AssetRegistry.Assets.getValue(s);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:o}=s;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,n){let s=Number(n),a=await this.api().query.Tokens.Accounts.getValue(e,s),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return la(this.api(),n)}getAllAssetDepositLimits(){return fa(this.api())}getGlobalWithdrawLimit(){return pa(this.api())}};function Ic(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:n})=>{let s=n,a=e,o=Lt.Wormhole.fromChain(s),i=Lt.Wormhole.fromChain(a),m=s.getAssetId(t),c=s.getAssetDecimals(t);return{amount:await s.evmClient.getProvider().readContract({abi:Lt.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Xc(){return{TokenRelayer:Ic}}function Sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,transferAsset:n,destination:s,amount:a})=>{let o=s,i=new be(o),m=new ve(t.hub),c=na(e,o),d=Yo(e,o),p=gn(Ye),l=250000000n,h=ho(Ye,o.parachainId),[A,k,P,E,D]=await Promise.all([i.calculateDestinationFeeV5(d,T),m.calculateDeliveryFee(c,o.parachainId),m.calculateDeliveryFee(c,Ks),m.calculateDestinationFeeV5(h,T),ua(b.dex,n,a??0n)]),V=Ce(A,33n),C=Ce(k,33n),j=Ce(P,33n),te=Ce(E,33n)+C,ae=V,ge=await m.quoteEtherForDot(p,te),le=Ce(ge,30n),dt=le<ia*2n?ia*2n:le,xt=Ce(await m.quoteEtherForDot(p,ae),100n),lt=Ce(await m.quoteDotToEther(p,l+j),30n);return{amount:dt+lt+xt+D,breakdown:{executionFee:dt,relayerFee:lt,remoteEtherFee:xt,hydrationDotFee:ae,volumeTip:D}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:a,amount:o})=>{let i=s,m=a,c=new ve(t.hub),d=gn(Ye),p=$o(e,i),l=na(e,i),[h,A,k,P,E]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(p,Ks),c.calculateDestinationFee(p,n),c.calculateDeliveryFee(l,i.parachainId),c.calculateDestinationFee(l,n)]),D=await m.evmClient.getProvider().getGasPrice(),C=(t.fast?dr:ur)+mr+cr,j=Ce(D*C,33n),de=h+A+Ce(k,25n)+P+Ce(E,25n),te=Ce(await c.quoteDotForExactEther(d,j),20n),ae=new be(i),ge=$s({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:it}),le=Ce(await ae.calculateDestinationFeeV5(ge,T),33n),dt=await ua(b.dex,e,o??0n),xt=j===0n?0n:dt*te/j;return{amount:de+te+le+xt,breakdown:{dotRemoteFee:de,dotToEtherSwapAmount:te,etherFeeAmount:j,sourceExecutionFee:le,volumeTip:xt}}}})}}function Rc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let a=n,o=s,i=t?.reserve;if(zo(e,a,o,i),i){let h=new ct(o),A=new ct(i),k=sa(e,o),P=Qo(e,i,o),[E,D]=await Promise.all([h.calculateDestinationFee(k,e),A.calculateDestinationFee(P,e)]),V=D+E,C=Ce(V,20n),j=C-V;return{amount:C,breakdown:{reserveFee:D,destinationFee:E,margin:j}}}let m=new ct(o),c=Jo(e,o),d=await m.calculateDestinationFee(c,e),p=Ce(d,20n),l=p-d;return{amount:p,breakdown:{totalFee:d,margin:l}}}})}}function Dc(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=Lt.Basejump.fromChain(n),a=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Lt.Abi.Basejump,address:s.getAddress(),args:[a],functionName:"quoteFee"})}}})}}function v(){return{Basejump:Dc,XcmPaymentApi:Rc,Snowbridge:Sc,Wormhole:Xc}}var Lc="0";function Hc(){return{build:async({address:t,chain:e})=>{let s=await new be(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=s?s.toString():Lc,o=e.findAssetById(a);return o?o.asset:oe}}}var Vc=()=>({accountCurrencyMap:Hc});function Sn(){return{multiTransactionPayment:Vc}}var Be=require("@galacticcouncil/xc-core"),ke=require("@solana/spl-token"),mt=require("@solana/web3.js"),ha=require("@wormhole-foundation/sdk-connect"),Ht=require("@wormhole-foundation/sdk-solana-tokenbridge"),Wc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,sender:o,destination:i}=e,m=a.chain,c=m,d=Be.Wormhole.fromChain(m),p=Be.Wormhole.fromChain(t.moonchain),l=Be.Precompile.Bridge,h=await Be.mrl.createPayload(i.chain,n),A=new mt.PublicKey(o),k=new ha.UniversalAddress(l),P=p.getWormholeId(),E=A,D=0,V=mt.Keypair.generate(),C=mt.Keypair.generate(),j=await(0,ke.getMinimumBalanceForRentExemptAccount)(c.connection),de=mt.SystemProgram.createAccount({fromPubkey:E,newAccountPubkey:C.publicKey,lamports:j,space:ke.ACCOUNT_SIZE,programId:ke.TOKEN_PROGRAM_ID}),te=mt.SystemProgram.transfer({fromPubkey:E,lamports:s,toPubkey:C.publicKey}),ae=(0,ke.createInitializeAccountInstruction)(C.publicKey,ke.NATIVE_MINT,E),ge=(0,Ht.createApproveAuthoritySignerInstruction)(d.getTokenBridge(),C.publicKey,E,s),le=(0,Ht.createTransferNativeWithPayloadInstruction)(c.connection,d.getTokenBridge(),d.getCoreBridge(),o,V.publicKey,C.publicKey,ke.NATIVE_MINT,D,s,k.toUint8Array(),P,h.toU8a()),dt=(0,ke.createCloseAccountInstruction)(C.publicKey,E,E);return new Be.ProgramConfig({instructions:[de,te,ae,ge,le,dt],signers:[V,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(j)})}})}),Mc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,d=c,p=Be.Wormhole.fromChain(c),l=Be.Wormhole.fromChain(t.moonchain),h=Be.Precompile.Bridge,A=await Be.mrl.createPayload(m.chain,n),k=new mt.PublicKey(i),P=o.chain.getAssetId(a),E=new mt.PublicKey(P),D=await(0,ke.getAssociatedTokenAddress)(E,k),V=new ha.UniversalAddress(h),C=l.getWormholeId();if(await(0,Ht.getWrappedMeta)(d.connection,p.getTokenBridge(),E).catch(le=>null).then(le=>le!=null))throw new Error("Wrapped assets not supported yet");let de=0,te=mt.Keypair.generate(),ae=(0,Ht.createApproveAuthoritySignerInstruction)(p.getTokenBridge(),D,k,s),ge=(0,Ht.createTransferNativeWithPayloadInstruction)(d.connection,p.getTokenBridge(),p.getCoreBridge(),i,te.publicKey,D,E,de,s,V.toUint8Array(),C,A.toU8a());return new Be.ProgramConfig({instructions:[ae,ge],signers:[te],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ar=()=>({transferNativeWithPayload:Wc,transferTokenWithPayload:Mc});function wr(){return{TokenBridge:Ar}}function Rn(){return{Wormhole:wr}}var vt=require("@galacticcouncil/xc-core"),Cr=require("@mysten/sui/transactions"),ls=require("@mysten/sui/utils"),kr=require("@wormhole-foundation/sdk-connect"),Dn=require("@wormhole-foundation/sdk-sui"),Uc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,sender:o,destination:i}=e,m=a.chain,c=m,d=vt.Wormhole.fromChain(m),p=vt.Wormhole.fromChain(t.moonchain),l=0,h=vt.Precompile.Bridge,A=await vt.mrl.createPayload(i.chain,n),k=new kr.UniversalAddress(h),P=p.getWormholeId(),E=ls.SUI_TYPE_ARG,[D,V]=await Promise.all([(0,Dn.getPackageId)(c.client,d.coreBridge),(0,Dn.getPackageId)(c.client,d.tokenBridge)]),C=new Cr.Transaction,[j]=C.splitCoins(C.gas,[C.pure.u64(s)]),[de]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[te]=C.moveCall({target:`${V}::state::verified_asset`,arguments:[C.object(d.tokenBridge)],typeArguments:[E]}),ae=!1,ge=await(async()=>{let lt=await(0,Dn.getOldestEmitterCapObjectId)(c.client,D,o);if(lt!==null)return C.object(lt);{let[En]=C.moveCall({target:`${D}::emitter::new`,arguments:[C.object(d.coreBridge)]});return ae=!0,En}})(),[le,dt]=C.moveCall({target:`${V}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ge,te,j,C.pure.u16(P),C.pure.vector("u8",k.toUint8Array()),C.pure.vector("u8",A.toU8a()),C.pure.u32(l)],typeArguments:[E]});C.moveCall({target:`${V}::coin_utils::return_nonzero`,arguments:[dt],typeArguments:[E]});let[xt]=C.moveCall({target:`${V}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(d.tokenBridge),le],typeArguments:[E]});return C.moveCall({target:`${D}::publish_message::publish_message`,arguments:[C.object(d.coreBridge),de,xt,C.object(ls.SUI_CLOCK_OBJECT_ID)]}),ae&&C.transferObjects([ge],C.pure.address(o)),new vt.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Tr=()=>({transferNativeWithPayload:Uc});function vr(){return{TokenBridge:Tr}}function ya(){return{Wormhole:vr}}var xa={};Yt(xa,{Tag:()=>Bt});var Bt=(i=>(i.Basejump="Basejump",i.Wormhole="Wormhole",i.Relayer="Relayer",i.Snowbridge="Snowbridge",i.Mrl="Mrl",i.SnowbridgeFast="SnowbridgeFast",i))(Bt||{});function Br(t,e){return new Aa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:0,asset:e}},contract:U().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function Pr(t,e){return new Aa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:v().Basejump().quoteFee(),asset:t}},contract:U().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Oc=[Br(At,ft)],Nc=[Pr(At,ft)],Fr=new Er.ChainRoutes({chain:en,routes:[...Oc,...Nc]});var zt=require("@galacticcouncil/xc-core");var wa=require("@galacticcouncil/xc-core");function wn(t,e){return new wa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:0,asset:e}},contract:U().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function he(t,e){return new wa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:b,asset:e,fee:{amount:v().Snowbridge().calculateInboundFee({hub:F}),asset:S}},contract:U().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}var Gc=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),destinationFee:{asset:S,balance:r().evm().native()}},destination:{chain:b,asset:me,fee:{amount:0,asset:me}},contract:U().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),wn(Xe,fe),wn(bt,Je),wn(x,$e),wn(g,ze),wn(pt,je)],Kc=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),fee:{asset:S,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:b,asset:S,fee:{amount:v().Snowbridge().calculateInboundFee({hub:F}),asset:S}},contract:U().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),he(Ee,Ee),he(Fe,Fe),he(_e,_e),he(Se,Se),he(Ve,Ve),he(Me,Me),he(Ue,Ue),he(De,De),he(Re,Re),he(Le,Le),he(We,We),he(Oe,Oe),he(Ne,Ne),he(x,Et),he(g,Pt)],yb=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),destinationFee:{asset:S,balance:r().evm().erc20()}},destination:{chain:R,asset:me,fee:{amount:0,asset:me}},contract:U().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new zt.AssetRoute({source:{asset:Xe,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:Xe,balance:r().evm().erc20()}},destination:{chain:R,asset:fe,fee:{amount:0,asset:fe}},contract:U().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],_r=new zt.ChainRoutes({chain:B,routes:[...Gc,...Kc]});var Ir=[Fr,_r];var Vt=require("@galacticcouncil/xc-core");var fs=require("@galacticcouncil/xc-core");var $t=0,qc=t=>{let{source:e}=t;return!!e.feeSwap},jc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},Xr=f().assetConversion().swapTokensForExactTokens({slippage:30});function zc(t,e,n){return new fs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().assets().account()},min:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:g}},extrinsic:Tt(jc,Xr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function ps(t,e,n){return new fs.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:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:Tt(qc,Xr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Jt(t,e,n){return new fs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().assets().account()},min:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function bs(t){return zc(t,b,.02)}var $c=[new Vt.AssetRoute({source:{asset:T,balance:r().substrate().system().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().system().account()},min:Xt().assets().asset()},destination:{chain:b,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Vt.AssetRoute({source:{asset:H,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:b,asset:H,fee:{amount:1e-4,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Jt(g,b,.02),Jt(x,b,.02),bs(wt)],Jc=[new Vt.AssetRoute({source:{asset:H,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:Ct,asset:H,fee:{amount:.001,asset:H}},extrinsic:f().polkadotXcm().transferAssets()})],Qc=[Jt(g,R,.25),Jt(x,R,.25)],Yc=[Jt(g,N,.03),Jt(x,N,.03)],Zc=[new Vt.AssetRoute({source:{asset:z,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:_t,asset:z,fee:{amount:2.5,asset:z}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Sr=new Vt.ChainRoutes({chain:Ft,routes:[ps(g,b,.02),ps(x,b,.02),ps(T,b,.001)]}),Rr=new Vt.ChainRoutes({chain:F,routes:[...$c,...Jc,...Qc,...Yc,...Zc]});var et=require("@galacticcouncil/xc-core");var e0=[new et.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:O,fee:{amount:.044306118,asset:O}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new et.AssetRoute({source:{asset:W,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:W,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:_,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:_,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:R}),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:G,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:G,fee:{amount:.01,asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:q,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:q,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:re,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:re,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:g,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new et.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Dr=new et.ChainRoutes({chain:ue,routes:[...e0]});var Pe=require("@galacticcouncil/xc-core");var t0=[new Pe.AssetRoute({source:{asset:W,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:W,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:q,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:q,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:re,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:re,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:T,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:T,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Pe.AssetRoute({source:{asset:O,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:O,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:ue}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:_,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:R}),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:M,fee:{amount:625e-8,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],n0=[new Pe.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:F,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:F,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Lr=new Pe.ChainRoutes({chain:N,routes:[...t0,...n0]});var qe=require("@galacticcouncil/xc-core");var s0="0",I=()=>({build:({address:t,asset:e,chain:n})=>n.getAssetId(e).toString()===s0?r().substrate().system().account().build({address:t,asset:e,chain:n}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:n})}),se=()=>({asset:Sn().multiTransactionPayment().accountCurrencyMap(),balance:I()});var Wt=require("@galacticcouncil/xc-core");var a0=.9,o0=1,r0=1,hs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},ys=f().router().buy({slippage:30});function $(t,e,n){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Cn(t,e,n){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Mt(t,e){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function gs(t){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:F,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function i0(t,e,n="LocalReserve"){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:r0,asset:_}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:n}))})}function Ut(t){return i0(t,R,"DestinationReserve")}function c0(t,e,n,s,a,o){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{asset:t,balance:I()}},destination:{chain:n,asset:e,fee:{amount:s,asset:e}},extrinsic:Tt(hs,ys).priorMulti([f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),f().polkadotXcm().send().transact({fee:a0})]),transact:{chain:R,fee:{amount:o0,asset:_,balance:I()},extrinsic:f().ethereumXcm().transact(a)},tags:o})}function tt(t,e,n){return c0(t,e,n,0,U().Batch().batchAll([U().Erc20().approve(s=>s.getTokenBridge()),U().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function L(t,e,n,s={}){let{fast:a}=s;return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:n,asset:e,fee:{amount:v().Snowbridge().calculateOutboundFee({hub:F,fast:a}),asset:T}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:a?["Snowbridge","SnowbridgeFast"]:["Snowbridge"]})}var m0=[Mt(T,F),Mt(H,F),Mt(g,F),Mt(x,F),gs(wt)],u0=[$(O,ue),$(W,ue,N),$(_,ue,R),new qe.AssetRoute({source:{asset:M,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:ue,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:G,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:ue,asset:G,fee:{amount:.01,asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),$(q,ue,N),$(re,ue,N),$(g,ue,F),$(x,ue,F)],d0=[$(W,N),$(q,N),$(re,N),$(O,N,ue),$(_,N,R),new qe.AssetRoute({source:{asset:M,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:N,asset:M,fee:{amount:5e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),$(g,N,F),$(x,N,F),new qe.AssetRoute({source:{asset:T,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:N,asset:T,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:F}),asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],l0=[Cn(M,Qe,62e-8),Cn(G,Qe,.0019213457),Cn(oe,Qe,.5),Cn(g,Qe,.3),Cn(x,Qe,.3),new qe.AssetRoute({source:{asset:q,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:Qe,asset:q,fee:{amount:.01,asset:T}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:T,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:Qe,asset:T,fee:{amount:.05,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],f0=[$(oe,R),$(_,R),$(g,R,F),$(x,R,F),Ut(fe),Ut(je),Ut($e),Ut(ze),Ut(Je),Ut(me),Ut(J)],p0=[new qe.AssetRoute({source:{asset:z,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:_t,asset:z,fee:{amount:2.5,asset:z}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],b0=[$(at,mn)],h0=[new qe.AssetRoute({source:{asset:Ie,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:sn,asset:Ie,fee:{amount:.04,asset:Ie}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],y0=[new qe.AssetRoute({source:{asset:Te,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:dn,asset:Te,fee:{amount:.02,asset:Te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],g0=[new qe.AssetRoute({source:{asset:He,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:cn,asset:He,fee:{amount:1.1,asset:He}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],x0=[$(st,on)],A0=[$(nt,tn)],w0=[tt(ft,At,en)],C0=[tt(fe,Xe,B),tt(me,S,B),tt(Je,bt,B),tt(ze,g,B),tt($e,x,B),tt(je,pt,B)],k0=[L(S,S,B),L(S,S,B,{fast:!0}),L(Ee,Ee,B),L(Ee,Ee,B,{fast:!0}),L(Fe,Fe,B),L(Fe,Fe,B,{fast:!0}),L(_e,_e,B),L(_e,_e,B,{fast:!0}),L(Se,Se,B),L(Se,Se,B,{fast:!0}),L(Ve,Ve,B),L(Ve,Ve,B,{fast:!0}),L(Me,Me,B),L(Me,Me,B,{fast:!0}),L(Ue,Ue,B),L(Ue,Ue,B,{fast:!0}),L(Oe,Oe,B),L(Oe,Oe,B,{fast:!0}),L(De,De,B),L(De,De,B,{fast:!0}),L(Re,Re,B),L(Re,Re,B,{fast:!0}),L(Le,Le,B),L(Le,Le,B,{fast:!0}),L(We,We,B),L(We,We,B,{fast:!0}),L(Ne,Ne,B),L(Ne,Ne,B,{fast:!0}),L(Et,x,B),L(Et,x,B,{fast:!0}),L(Pt,g,B),L(Pt,g,B,{fast:!0})],T0=[tt(J,J,It),tt(xe,xe,It),tt(Ae,Ae,It)],v0=[tt(we,we,ln)],B0=[Mt(T,Ft),Mt(g,Ft),Mt(x,Ft)],Hr=new qe.ChainRoutes({chain:b,routes:[...A0,...m0,...u0,...w0,...d0,...B0,...h0,...k0,...C0,...l0,...y0,...f0,...p0,...x0,...g0,...T0,...v0,...b0]});var Qt=require("@galacticcouncil/xc-core");var Ca=()=>r().substrate().tokens().accounts();function xs(t,e){return new Qt.AssetRoute({source:{asset:t,balance:Ca(),fee:{asset:G,balance:Ca()},destinationFee:{balance:Ca()}},destination:{chain:b,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var P0=[new Qt.AssetRoute({source:{asset:G,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:G,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().xTokens().transfer()}),new Qt.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),fee:{asset:G,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:M,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().xTokens().transfer()}),new Qt.AssetRoute({source:{asset:oe,balance:r().substrate().tokens().accounts(),fee:{asset:G,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:oe,fee:{amount:.5,asset:oe}},extrinsic:f().xTokens().transfer()}),xs(q,N),xs(g,F),xs(x,F),xs(T,F)],Vr=new Qt.ChainRoutes({chain:Qe,routes:[...P0]});var Nt=require("@galacticcouncil/xc-core");var ka=require("@galacticcouncil/xc-core");function E0(t,e,n){return new ka.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},contract:U().PolkadotXcm().transferAssetsToPara32()})}function F0(t,e,n){return new ka.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:_,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},contract:U().PolkadotXcm().transferAssetsToPara32()})}function Ot(t,e){return E0(t,b,e)}function As(t,e){return F0(t,b,e)}var _0=[new Nt.AssetRoute({source:{asset:_,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:_,fee:{amount:.05,asset:_}},contract:U().PolkadotXcm().transferAssetsToPara32()}),As(oe,.6),As(g,.3),As(x,.3),Ot(fe,.004),Ot(je,.004),Ot($e,.004),Ot(ze,.004),Ot(Je,1e-7),Ot(me,2e-6),Ot(J,2e-5)],I0=[new Nt.AssetRoute({source:{asset:g,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:F,asset:g,fee:{amount:.18,asset:g}},contract:U().PolkadotXcm().transferAssetsToPara32()}),new Nt.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:F,asset:x,fee:{amount:.18,asset:x}},contract:U().PolkadotXcm().transferAssetsToPara32()})],vh=[new Nt.AssetRoute({source:{asset:me,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{asset:me,balance:r().evm().erc20()}},destination:{chain:B,asset:S,fee:{amount:v().Wormhole().TokenRelayer().calculateRelayerFee(),asset:S}},contract:U().Batch().batchAll([U().Erc20().approve(t=>t.getTokenRelayer()),U().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Nt.AssetRoute({source:{asset:fe,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{asset:fe,balance:r().evm().erc20()}},destination:{chain:B,asset:Xe,fee:{amount:v().Wormhole().TokenRelayer().calculateRelayerFee(),asset:Xe}},contract:U().Batch().batchAll([U().Erc20().approve(t=>t.getTokenRelayer()),U().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Wr=new Nt.ChainRoutes({chain:R,routes:[..._0,...I0]});var Ln=require("@galacticcouncil/xc-core");var X0=[new Ln.AssetRoute({source:{asset:z,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:z,fee:{amount:.01,asset:z}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],S0=[new Ln.AssetRoute({source:{asset:z,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:F,asset:z,fee:{amount:.1,asset:z}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Mr=new Ln.ChainRoutes({chain:_t,routes:[...X0,...S0]});var ws=require("@galacticcouncil/xc-core");var R0=[new ws.AssetRoute({source:{asset:at,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:at,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:at}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Ur=new ws.ChainRoutes({chain:mn,routes:[...R0]});var Cs=require("@galacticcouncil/xc-core");var D0=[new Cs.AssetRoute({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:Ie,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Or=new Cs.ChainRoutes({chain:sn,routes:[...D0]});var ks=require("@galacticcouncil/xc-core");var L0=[new ks.AssetRoute({source:{asset:He,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:He,fee:{amount:.2,asset:He}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Nr=new ks.ChainRoutes({chain:cn,routes:[...L0]});var Ts=require("@galacticcouncil/xc-core");var H0=[new Ts.AssetRoute({source:{asset:nt,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:nt,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:nt}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Gr=new Ts.ChainRoutes({chain:tn,routes:[...H0]});var vs=require("@galacticcouncil/xc-core");var V0=[new vs.AssetRoute({source:{asset:Te,balance:r().substrate().system().account(),fee:{asset:Te,balance:r().substrate().system().account(),extra:.030555},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:Te,fee:{amount:.03,asset:Te}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Kr=new vs.ChainRoutes({chain:dn,routes:[...V0]});var Bs=require("@galacticcouncil/xc-core");var W0=[new Bs.AssetRoute({source:{asset:st,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:st,fee:{amount:.205,asset:st}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],qr=new Bs.ChainRoutes({chain:on,routes:[...W0]});var jr=[Gr,Rr,Sr,Dr,Lr,Hr,Vr,Wr,Mr,qr,Ur,Or,Nr,Kr];var kn=require("@galacticcouncil/xc-core");var M0=[new kn.AssetRoute({source:{asset:J,balance:r().solana().native(),destinationFee:{asset:J,balance:r().solana().native()}},destination:{chain:b,asset:J,fee:{amount:0,asset:J}},program:Rn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new kn.AssetRoute({source:{asset:xe,balance:r().solana().token(),fee:{asset:J,balance:r().solana().native()},destinationFee:{asset:xe,balance:r().solana().token()}},destination:{chain:b,asset:xe,fee:{amount:0,asset:xe}},program:Rn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new kn.AssetRoute({source:{asset:Ae,balance:r().solana().token(),fee:{asset:J,balance:r().solana().native()},destinationFee:{asset:Ae,balance:r().solana().token()}},destination:{chain:b,asset:Ae,fee:{amount:0,asset:Ae}},program:Rn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],zr=new kn.ChainRoutes({chain:It,routes:[...M0]});var $r=[zr];var Ps=require("@galacticcouncil/xc-core");var U0=[new Ps.AssetRoute({source:{asset:we,balance:r().sui().native(),destinationFee:{asset:we,balance:r().sui().native()}},destination:{chain:b,asset:we,fee:{amount:0,asset:we}},move:ya().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],Jr=new Ps.ChainRoutes({chain:ln,routes:[...U0]});var Qr=[Jr];var Hn=require("@galacticcouncil/xc-core");var O0=require("@galacticcouncil/xc-core");var Ta=.0015;var N0=new Hn.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),fee:{asset:H,balance:r().substrate().system().account(),extra:Ta},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:F,asset:H,fee:{amount:.002,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),G0=new Hn.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),fee:{asset:H,balance:r().substrate().system().account(),extra:Ta},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:fn,asset:H,fee:{amount:.0012,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Yr=new Hn.ChainRoutes({chain:Ct,routes:[G0,N0]});var Vn=require("@galacticcouncil/xc-core");var K0="0",Tn=()=>({build:({address:t,asset:e,chain:n})=>e.toString()===K0?r().substrate().system().account().build({address:t,asset:e,chain:n}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:n})}),va=()=>({asset:Sn().multiTransactionPayment().accountCurrencyMap(),balance:Tn()});var q0=[new Vn.AssetRoute({source:{asset:g,balance:Tn(),fee:va(),destinationFee:{balance:Tn()}},destination:{chain:Ct,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],j0=[new Vn.AssetRoute({source:{asset:H,balance:Tn(),fee:va(),destinationFee:{balance:Tn()}},destination:{chain:Ct,asset:H,fee:{amount:.0012,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Zr=new Vn.ChainRoutes({chain:fn,routes:[...q0,...j0]});var ei=[Yr,Zr];var z0=[...Ir,...jr,...$r,...Qr,...ei],ti=new Map(z0.map(t=>[t.chain.key,t]));var Ba=require("@galacticcouncil/xc-core");var vn=require("@galacticcouncil/xc-core");var Es=class extends vn.TransferValidation{async validate(e){let{source:n}=e,{chain:s,fee:a,feeBalance:o}=n;if(o.amount<a.amount)throw new vn.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:s.name,error:"fee.insufficientBalance"})}},Fs=class extends vn.TransferValidation{async skipFor(e){let{asset:n,source:s}=e,{enabled:a}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:a,destinationFee:o,destinationFeeBalance:i}=s,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});if(i.amount<c.amount)throw new vn.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:a.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e.key==="assethub")return new ve(e).getAssetMin(n);let a=e.getAssetMin(n)*10**n.decimals;return BigInt(a)}};var Bn=require("@galacticcouncil/xc-core");var _s=class extends Bn.TransferValidation{async skipFor(e){let{asset:n,destination:s}=e,a=s.chain;return await new ve(a).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:a}=e,o=a.chain;if(await new ve(o).getSystemAccountBalance(s)===0n)throw new Bn.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},Is=class extends Bn.TransferValidation{async validate(e){let{asset:n,sender:s,source:a}=e,o=a.chain;if(await new ve(o).checkIfFrozen(s,n))throw new Bn.TransferValidationError("Asset_Frozen",{asset:n.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var ut=require("@galacticcouncil/xc-core");var $0=12,J0=1,Q0=18,Xs=class extends ut.TransferValidation{async skipFor(e){let{destination:n}=e,s=n.chain,a=new be(s),o=n.balance.amount>0n,i=await a.checkIfSufficient(n.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:a}=e,o=a.chain,i=new be(o),m=await i.getFeeAsset(s),c=o.findAssetById(m),d=c.min||J0,p=c.decimals||$0,l=d*Math.pow(10,p),h=await i.getAssetBalance(s,m);if(BigInt(l*1.1)>h)throw new ut.TransferValidationError("Insufficient_Ed",{amount:l,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Ss=class extends ut.TransferValidation{async validate(e){let{amount:n,asset:s,destination:a}=e,o=a.chain,m=await new be(o).getAssetDepositLimit(s);if(m.locked)throw new ut.TransferValidationError("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:o.name,lockedUntilBlock:m.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(m.headroom!==null&&n>m.headroom)throw new ut.TransferValidationError("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:o.name,headroom:m.headroom,limit:m.limit,error:"circuitBreaker.depositLimitExceeded"})}},Rs=class extends ut.TransferValidation{async validate(e){let{source:n}=e,s=n.chain,o=await new be(s).getGlobalWithdrawLimit();if(o.lockdown)throw new ut.TransferValidationError("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:o.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Ds=class extends ut.TransferValidation{async skipFor(e){let{source:n,transact:s}=e,{enabled:a}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:a}=e,o=a.chain,i=new be(o),m=o.getBalanceAssetId(_),c=o.getAssetDecimals(_)||Q0,d=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(s,m.toString())<BigInt(d))throw new ut.TransferValidationError("Insufficient_Ed",{amount:1,asset:_.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var ye={isAny:()=>!0,isHydration:t=>t instanceof Ba.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Ba.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},ni=[new Es(ye.isAny,ye.isAny),new Fs(ye.isAny,ye.isAny),new _s(ye.isAny,ye.isHub),new Is(ye.isHub,ye.isAny),new Xs(ye.isAny,ye.isHydration),new Ds(ye.isHydration,ye.isAny),new Ss(ye.isAny,ye.isHydration),new Rs(ye.isHydration,ye.isAny)];var _a={};Yt(_a,{AssethubDex:()=>Fa,HydrationDex:()=>Pa});var Pn=require("@galacticcouncil/sdk-next"),ai=require("@galacticcouncil/common"),oi=require("polkadot-api");var si=(t,e=new Map)=>n=>{let s;return e.has(n)?e.get(n):(e.set(n,s=t(n)),s)};var{PoolType:Ls}=Pn.pool,{TradeRouteBuilder:Y0,TradeRouter:Z0}=Pn.sor,{TxBuilderFactory:em}=Pn.tx,Pa=class{chain;client;poolCtx;txBuilder;getCtx=si(async e=>{console.log("init swap router",e,"\u2705");let n=new Z0(this.poolCtx);return n.withFilter({useOnly:[Ls.Aave,Ls.Omni,Ls.Stable,Ls.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new be(this.chain),this.txBuilder=new em(n.client,n.evm)}async getCalldata(e,n,s,a,o=0){let i=Number(this.chain.getMetadataAssetId(n)),m=Number(this.chain.getMetadataAssetId(s)),c=a.amount,d=await this.getCtx(1),p=await d.getMostLiquidRoute(i,m),l=await d.getBuy(i,m,c,p),k=await(await this.txBuilder.trade(l).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData();return oi.Binary.toHex(k)}async getQuote(e,n,s,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(n)),m=s.amount,c=await this.getCtx(1);try{let d=await c.getMostLiquidRoute(o,i),p=await c.getBuy(o,i,m,d);return{amount:p.amountIn,route:Y0.build(p.swaps)}}catch(d){if(a)return{amount:await this.getFallbackPrice(e,s.amount)};throw d}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!a)throw new Error(`No price found for asset ${e.key}`);let o=a*n,i=Math.pow(10,ai.RUNTIME_DECIMALS);return o/BigInt(i)}};var Ea=require("@galacticcouncil/common"),Fa=class{chain;client;constructor(e){this.chain=e,this.client=new ve(this.chain)}async getCalldata(e,n,s,a){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let a=this.chain.getAssetXcmLocation(e),o=this.chain.getAssetXcmLocation(n),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Ea.encodeLocation)(a),(0,Ea.encodeLocation)(o),s.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var mi=require("@galacticcouncil/xc-core");var ri=require("@galacticcouncil/xc-core");function Hs(t){let{id:e,origin:n,symbol:s}=t,a=s.toLowerCase();return new ri.Asset({key:[a,n,e].join("_"),originSymbol:s})}function ii(t){let{decimals:e,id:n}=t;return{asset:Hs(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function ci(t){let{decimals:e,id:n,internalId:s,origin:a}=t;return{asset:Hs(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:a},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var Vs=class extends mi.ConfigService{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),a=o=>!!n.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=Hs(o),m=ii(o),c=ci(o);console.log("\u{1F480} Registering "+i.key),s.updateAsset(m),n.updateAsset(c),this.updateAsset(i),this.updateChainRoute(s,bs(i)),this.updateChainRoute(n,gs(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
1
+ "use strict";var Ws=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var li=Object.getOwnPropertyNames;var fi=Object.prototype.hasOwnProperty;var Yt=(t,e)=>{for(var n in e)Ws(t,n,{get:e[n],enumerable:!0})},pi=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of li(e))!fi.call(t,a)&&a!==n&&Ws(t,a,{get:()=>e[a],enumerable:!(s=di(e,a))||s.enumerable});return t};var bi=t=>pi(Ws({},"__esModule",{value:!0}),t);var tm={};Yt(tm,{HydrationConfigService:()=>Vs,assetsMap:()=>Ia,builders:()=>ga,chainsMap:()=>Ga,clients:()=>ba,dex:()=>_a,routesMap:()=>ti,tags:()=>xa,validations:()=>ni});module.exports=bi(tm);var C=require("@galacticcouncil/xc-core"),Ee=new C.Asset({key:"aave",originSymbol:"AAVE"}),at=new C.Asset({key:"ajun",originSymbol:"AJUN"}),Fe=new C.Asset({key:"apyusd",originSymbol:"apyUSD"}),O=new C.Asset({key:"astr",originSymbol:"ASTR"}),W=new C.Asset({key:"bnc",originSymbol:"BNC"}),Ms=new C.Asset({key:"bsx",originSymbol:"BSX"}),_e=new C.Asset({key:"cfg_new",originSymbol:"CFG"}),Ie=new C.Asset({key:"cru",originSymbol:"CRU"}),Xe=new C.Asset({key:"dai",originSymbol:"DAI"}),le=new C.Asset({...Xe,key:"dai_mwh"}),T=new C.Asset({key:"dot",originSymbol:"DOT"}),S=new C.Asset({key:"eth",originSymbol:"ETH"}),Se=new C.Asset({key:"ena",originSymbol:"ENA"}),At=new C.Asset({key:"eurc",originSymbol:"EURC"}),pt=new C.Asset({...At,key:"eurc_mwh"}),_=new C.Asset({key:"glmr",originSymbol:"GLMR"}),oe=new C.Asset({key:"hdx",originSymbol:"HDX"}),M=new C.Asset({key:"ibtc",originSymbol:"IBTC"}),G=new C.Asset({key:"intr",originSymbol:"INTR"}),xe=new C.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),H=new C.Asset({key:"ksm",originSymbol:"KSM"}),Re=new C.Asset({key:"ldo",originSymbol:"LDO"}),De=new C.Asset({key:"lbtc",originSymbol:"LBTC"}),Te=new C.Asset({key:"ewt",originSymbol:"EWT"}),Le=new C.Asset({key:"link",originSymbol:"LINK"}),z=new C.Asset({key:"myth",originSymbol:"MYTH"}),ot=new C.Asset({key:"neuro",originSymbol:"NEURO"}),He=new C.Asset({key:"pen",originSymbol:"PEN"}),Ve=new C.Asset({key:"paxg",originSymbol:"PAXG"}),Ae=new C.Asset({key:"prime",originSymbol:"PRIME"}),We=new C.Asset({key:"sky",originSymbol:"SKY"}),J=new C.Asset({key:"sol",originSymbol:"SOL"}),we=new C.Asset({key:"sui",originSymbol:"SUI"}),Me=new C.Asset({key:"susde",originSymbol:"sUSDe"}),bt=new C.Asset({key:"susds",originSymbol:"sUSDS"}),ze=new C.Asset({...bt,key:"susds_mwh"}),Ue=new C.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new C.Asset({key:"trac",originSymbol:"TRAC"}),rt=new C.Asset({key:"unq",originSymbol:"UNQ"}),g=new C.Asset({key:"usdt",originSymbol:"USDT"}),$e=new C.Asset({...g,key:"usdt_mwh"}),Pt=new C.Asset({...g,key:"usdt_eth"}),x=new C.Asset({key:"usdc",originSymbol:"USDC"}),Je=new C.Asset({...x,key:"usdc_mwh"}),Et=new C.Asset({...x,key:"usdc_eth"}),re=new C.Asset({key:"vastr",originSymbol:"vASTR"}),q=new C.Asset({key:"vdot",originSymbol:"vDOT"}),Zt=new C.Asset({key:"weth",originSymbol:"WETH"}),ue=new C.Asset({...Zt,key:"weth_mwh"}),ht=new C.Asset({key:"wbtc",originSymbol:"WBTC"}),Qe=new C.Asset({...ht,key:"wbtc_mwh"}),Ne=new C.Asset({key:"wsteth",originSymbol:"wstETH"}),wt=new C.Asset({key:"wud",originSymbol:"WUD"}),hi=[Ee,at,Fe,O,Ms,_e,Ie,W,Xe,le,T,Se,At,pt,S,_,oe,M,G,H,Re,De,Te,xe,Le,z,ot,Ve,He,Ae,We,J,we,Me,bt,ze,Oe,Ue,rt,x,Je,Et,g,$e,Pt,re,q,ht,Qe,Zt,ue,Ne,wt],Ia=new Map(hi.map(t=>[t.key,t]));var Wn=require("@galacticcouncil/xc-core");var Xa=require("viem/chains"),en=new Wn.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:S,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:At,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Wn.ChainEcosystem.Ethereum,evmChain:Xa.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 Mn=require("@galacticcouncil/xc-core");var Sa=require("viem/chains"),B=new Mn.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:S,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ee,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Fe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:_e,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Zt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Se,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Me,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:bt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ue,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:ht,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:De,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:g,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Re,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ve,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:We,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ne,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Mn.ChainEcosystem.Ethereum,evmChain:Sa.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 Ra=[en,B];var Un=require("@galacticcouncil/xc-core");var tn=new Un.Parachain({assetsData:[{asset:at,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Un.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Fn=require("@galacticcouncil/xc-core");var Da={assetsData:[{asset:T,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:wt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:z,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:H,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Fn.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"]},E=new Fn.Parachain({...Da,key:"assethub",name:"AssetHub Polkadot"}),Ft=new Fn.Parachain({...Da,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var On=require("@galacticcouncil/xc-core");var de=new On.Parachain({assetsData:[{asset:O,xcmLocation:{parents:0,interior:"Here"}},{asset:T,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:W,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:On.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Nn=require("@galacticcouncil/xc-core");var yi=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],N=new Nn.Parachain({assetsData:[{asset:W,id:{Native:W.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:O,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:_,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Nn.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:yi});var nn=require("@galacticcouncil/xc-core");var sn=new nn.Parachain({assetsData:[{asset:Ie,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:nn.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:nn.XcmVersion.v3});var Kn=require("@galacticcouncil/xc-core"),Ha=require("viem");var La=require("@polkadot-api/substrate-bindings"),gi="ETH\0",Gn=class{async toH160(e){let n=(0,La.getSs58AddressInfo)(e);if(!n.isValid)throw new Error(`Invalid SS58 address: ${e}`);let s=n.publicKey,a=Buffer.from(gi),o=s.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var xi=new Gn,Us=["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"],Os=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.ibp.network"],Ai=(0,Ha.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Us,webSocket:Os},default:{http:Us,webSocket:Os}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),b=new Kn.EvmParachain({assetsData:[{asset:oe,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:Ee,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:at,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:W,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Ie,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:T,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:le,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:S,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Fe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:Se,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:_,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:M,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:xe,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:Te,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Re,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:H,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:De,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ve,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:z,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:ot,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:He,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:We,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:we,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Me,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:bt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ze,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ue,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Oe,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:rt,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:Je,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:pt,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:Et,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:g,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:$e,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Pt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:re,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:q,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ht,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Qe,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Zt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ue,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ne,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:wt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Kn.ChainEcosystem.Polkadot,evmChain:Ai,evmResolver:xi,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Os,rpcs:Us});var an=require("@galacticcouncil/xc-core");var Ye=new an.Parachain({assetsData:[{asset:G,decimals:10,id:{Token:G.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:M,decimals:8,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:T,decimals:10,id:{Token:T.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:g,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:oe,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:q,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:an.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:an.XcmVersion.v3});var qn=require("@galacticcouncil/xc-core"),Va=require("viem");var wi=(0,Va.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}),R=new qn.EvmParachain({assetsData:[{asset:_,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:le,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:pt,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:xe,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:ze,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Je,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:$e,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Qe,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:ue,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:T,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:oe,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:g,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:qn.ChainEcosystem.Polkadot,evmChain:wi,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 jn=require("@galacticcouncil/xc-core");var _t=new jn.Parachain({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:jn.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});var zn=require("@galacticcouncil/xc-core");var on=new zn.Parachain({assetsData:[{asset:ot,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:zn.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 rn=require("@galacticcouncil/xc-core");var cn=new rn.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:rn.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:rn.XcmVersion.v3});var $n=require("@galacticcouncil/xc-core");var Ci={assetsData:[{asset:T,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:$n.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"},Wa=new $n.Parachain({...Ci,key:"polkadot"});var Jn=require("@galacticcouncil/xc-core");var mn=new Jn.Parachain({assetsData:[{asset:rt,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Jn.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var un=require("@galacticcouncil/xc-core");var dn=new un.Parachain({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:un.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:un.XcmVersion.v3});var Ma=[tn,E,Ft,de,N,sn,b,on,Ye,R,_t,cn,Wa,mn,dn];var Qn=require("@galacticcouncil/xc-core");var It=new Qn.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:J,decimals:9},{asset:xe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Ae,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Qn.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 Ua=[It];var Yn=require("@galacticcouncil/xc-core");var ln=new Yn.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:we,decimals:9}],ecosystem:Yn.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Oa=[ln];var Zn=require("@galacticcouncil/xc-core");var Ct=new Zn.Parachain({assetsData:[{asset:H,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Zn.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 es=require("@galacticcouncil/xc-core");var fn=new es.Parachain({assetsData:[{asset:Ms,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:H,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:g,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:es.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 Na=[Ct,fn];var ki=[...Ra,...Ma,...Ua,...Oa,...Na],Ga=new Map(ki.map(t=>[t.key,t]));var Er=require("@galacticcouncil/xc-core");var Aa=require("@galacticcouncil/xc-core");var ga={};Yt(ga,{AssetMinBuilder:()=>Xt,BalanceBuilder:()=>r,ContractBuilder:()=>U,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>Tt,FeeAmountBuilder:()=>v,FeeAssetBuilder:()=>Sn,MoveBuilder:()=>ya,ProgramBuilder:()=>Rn,XcmTransferType:()=>Ge,XcmVersion:()=>yt});var ts=require("@galacticcouncil/xc-core");function Xt(){return{assetRegistry:Ti,assets:vi}}function Ti(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new ts.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async n=>BigInt(n?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new ts.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async n=>BigInt(n?.minimalBalance?.toString()??"0")})})}}function vi(){return{asset:()=>({build:({asset:t})=>new ts.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var _n=require("@galacticcouncil/xc-core");function Ka(){return{erc20:Pi,native:Bi}}function Bi(){return{build:({address:t})=>new _n.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Pi(){return{build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e);if(!s||typeof s!="string")throw new Error(`Invalid contract address: ${e}`);return new _n.ContractConfig({abi:_n.Abi.Erc20,address:s,args:[t],func:"balanceOf",module:"Erc20"})}}}var pn=require("@galacticcouncil/xc-core"),bn=require("@galacticcouncil/common");function qa(){return{assets:Ei,system:_i,tokens:Ii,ormlTokens:Xi,foreignAssets:Fi}}function Ei(){return{account:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Fi(){return{account:()=>({build:({address:t,asset:e,chain:n})=>{let a=n.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let o=(0,bn.encodeLocation)(a);return new pn.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function _i(){return{account:()=>({build:({address:t})=>new pn.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let n=e?.data,s=BigInt(n?.free?.toString()??"0"),a=BigInt((n?.miscFrozen??n?.frozen)?.toString()??"0");return s>=a?s-a:0n}})})}}function Ii(){return{accounts:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Xi(){return{accounts:()=>({build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e),a=(0,bn.encodeAssetId)(s);return new pn.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var Ns=require("@galacticcouncil/xc-core");function ja(){return{native:Si,token:Ri}}function Si(){return{build:({address:t})=>new Ns.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Ri(){return{build:({address:t,asset:e,chain:n})=>{let s=n.getBalanceAssetId(e);if(!s)throw new Error(`Invalid token address: ${e}`);return new Ns.SolanaQueryConfig({address:t,token:s.toString(),func:"getBalance",module:"Token"})}}}var za=require("@galacticcouncil/xc-core");function $a(){return{native:Di}}function Di(){return{build:({address:t})=>new za.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Ka,substrate:qa,solana:ja,sui:$a}}var Gt=require("@galacticcouncil/xc-core"),Ja=require("viem"),Li=t=>({build:async e=>{let n=await Promise.all(t.map(i=>i.build(e))),s=n.map(i=>i.address),a=[0,0],o=n.map(i=>(0,Ja.encodeFunctionData)({abi:Gt.Abi[i.module],functionName:i.func,args:i.args}));return new Gt.ContractConfig({abi:Gt.Abi.Batch,address:Gt.Precompile.Batch,args:[s,a,o,[]],func:"batchAll",module:"Batch"})}}),Qa=()=>({batchAll:Li});var hn=require("@galacticcouncil/xc-core");function Ce(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function it(t){return typeof t=="object"?Object.values(t)[0]:t}function Ya(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:a,transact:o}=e,i=o?o.chain:a.chain,m=hn.Wormhole.fromChain(i),c=i.getAssetId(s);return new hn.ContractConfig({abi:hn.Abi.Erc20,address:it(c).toString(),args:[t(m),n],func:"approve",module:"Erc20"})}})}}var yn=require("@galacticcouncil/xc-core");var Za=require("@galacticcouncil/common"),eo=require("polkadot-api"),to=require("@polkadot-api/utils"),{H160:Hi,isEvmAddress:Vi}=Za.h160;function Wi(t){let e=Vi(t)?Hi.toAccount(t):t;return(0,to.toHex)((0,eo.AccountId)().enc(e))}var Mi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a}=t,o=a.chain,i=yn.Basejump.fromChain(o),m=o.getAssetId(s);return new yn.ContractConfig({abi:yn.Abi.Basejump,address:i.getAddress(),args:[it(m),n,Wi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),no=()=>({bridgeViaWormhole:Mi});var ct=require("@galacticcouncil/xc-core"),ao=require("@galacticcouncil/common"),{Ss58Addr:so}=ct.addr;function Ui(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 Gs(t,e){let n=t.getAssetId(e);return typeof n=="string"?Ui(n):n}function oo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Gs(a.chain,n);return new ct.ContractConfig({abi:ct.Abi.PolkadotXcm,address:ct.Precompile.PolkadotXcm,args:[s.chain.parachainId,so.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Gs(a.chain,n),i=Gs(a.chain,a.destinationFeeBalance),m=ao.big.toBigInt(s.fee.amount,s.fee.decimals);return new ct.ContractConfig({abi:ct.Abi.PolkadotXcm,address:ct.Precompile.PolkadotXcm,args:[s.chain.parachainId,so.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var St=require("@galacticcouncil/xc-core"),Rt=require("@galacticcouncil/descriptors"),go=require("@polkadot-api/substrate-bindings"),as=require("@polkadot-api/utils"),xo=require("viem");var ro=require("@galacticcouncil/xc-core"),ns=null;async function io(){if(ns)return ns;let t=await ro.codec.getHubCodecs();return ns={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},ns}var fo=require("@galacticcouncil/xc-core"),d=require("@galacticcouncil/descriptors"),po=require("@polkadot-api/substrate-bindings"),bo=require("@polkadot-api/utils");var co=require("@galacticcouncil/descriptors"),ie=340282366920938463463374607431768211455n,mt="0x0000000000000000000000000000000000000000000000000000000000000000",te={parents:1,interior:co.XcmV3Junctions.Here()},mo=0,ss=1e3,Ks=1002,Ze=1,Kt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",uo="0x0000000000000000000000000000000000000000000000000000000000000000",lo="0x0000000000000000000000000000000000000000";var qs="0x0000000000000000000000000000000000000000",gn=t=>({parents:2,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.GlobalConsensus(d.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),js=(t,e)=>({parents:2,interior:d.XcmV5Junctions.X2([d.XcmV5Junction.GlobalConsensus(d.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),d.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function ho(t,e){let n=gn(t),s=js(t,"0x"+"00".repeat(20)),a=1000000000000n,o=1000000000n,i=[d.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:d.XcmV3MultiassetFungibility.Fungible(a)},{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(a)}]),d.XcmV5Instruction.ExchangeAsset({give:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(o)}],maximal:!1}),d.XcmV5Instruction.PayFees({asset:{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(o)}})],m=zs({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:a,hydrationDotFee:o,topic:"0x"+"00".repeat(32)});return[...i,...m]}function zs(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:a,tokenAmount:o,hydrationDotFee:i,topic:m}=t,c=gn(e),u=s===qs?c:js(e,s),l=a.length===42&&a.startsWith("0x")?d.XcmV5Junction.AccountKey20({key:a,network:void 0}):d.XcmV5Junction.AccountId32({id:a,network:void 0}),h={parents:0,interior:d.XcmV5Junctions.X1(l)};return[d.XcmV5Instruction.SetAppendix([d.XcmV5Instruction.RefundSurplus(),d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.All()),beneficiary:h})]),d.XcmV5Instruction.ExchangeAsset({give:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllOf({id:c,fun:{type:"Fungible",value:void 0}})),want:[{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}),d.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:d.XcmV5AssetFilter.Definite([{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(i)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:d.XcmV5AssetFilter.Definite([{id:u,fun:d.XcmV3MultiassetFungibility.Fungible(o)}])}],remote_xcm:[d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllCounted(3)),beneficiary:h}),d.XcmV5Instruction.SetTopic(m)]}),d.XcmV5Instruction.RefundSurplus(),d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.All()),beneficiary:h}),d.XcmV5Instruction.SetTopic(m)]}function $s(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:a,sourceExecutionFee:o,dotRemoteFee:i,dotToEtherSwapAmount:m,etherFeeAmount:c,topic:u}=t,p=gn(Ze),l=e===qs?p:js(Ze,e),h={parents:0,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.AccountId32({id:n,network:void 0}))},A={parents:0,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.AccountKey20({key:s,network:void 0}))},k={parents:2,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.GlobalConsensus(d.XcmV5NetworkId.Ethereum({chain_id:BigInt(Ze)})))},P=[d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),d.XcmV5Instruction.SetTopic(u)],F=[d.XcmV5Instruction.SetAppendix([d.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:h}}]}),d.XcmV5Instruction.RefundSurplus(),d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.All()),beneficiary:h})])];F.push(d.XcmV5Instruction.ExchangeAsset({give:d.XcmV5AssetFilter.Definite([{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(m)}]),want:[{id:p,fun:d.XcmV3MultiassetFungibility.Fungible(c)}],maximal:!1}));let D=[{type:"ReserveWithdraw",value:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))}],V=d.XcmV5AssetFilter.Definite([{id:p,fun:d.XcmV3MultiassetFungibility.Fungible(c)}]);F.push(d.XcmV5Instruction.InitiateTransfer({destination:k,remote_fees:{type:"ReserveWithdraw",value:V},preserve_origin:!0,assets:D,remote_xcm:P}),d.XcmV5Instruction.SetTopic(u));let w=o+i+m,j=[{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(w)},{id:l,fun:d.XcmV3MultiassetFungibility.Fungible(a)}],ye=[{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(o)}],ee={type:"ReserveWithdraw",value:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))},ae=[{type:"ReserveWithdraw",value:d.XcmV5AssetFilter.Definite([{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(m)}])},ee];return[d.XcmV5Instruction.WithdrawAsset(j),d.XcmV5Instruction.PayFees({asset:ye[0]}),d.XcmV5Instruction.SetAppendix([d.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:h}}]}),d.XcmV5Instruction.RefundSurplus(),d.XcmV5Instruction.DepositAsset({assets:d.XcmV5AssetFilter.Wild(d.XcmV5WildAsset.All()),beneficiary:h})]),d.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:d.XcmV5Junctions.X1(d.XcmV5Junction.Parachain(ss))},remote_fees:{type:"ReserveWithdraw",value:d.XcmV5AssetFilter.Definite([{id:te,fun:d.XcmV3MultiassetFungibility.Fungible(i)}])},preserve_origin:!0,assets:ae,remote_xcm:F}),d.XcmV5Instruction.SetTopic(u)]}function yo(t){let{address:e,amount:n,asset:s,sender:a,source:o,destination:i,messageId:m}=t,c=o.chain,u=(0,po.getSs58AddressInfo)(a);if(!u.isValid)throw new Error(`Invalid SS58 address: ${a}`);let p=(0,bo.toHex)(u.publicKey),l=c.getAssetXcmLocation(s),h=l?fo.multiloc.findNestedKey(l,"key"):void 0,A=h?h.key:qs,k=i.feeBreakdown,P=k.sourceExecutionFee??0n,F=k.dotRemoteFee??0n,D=k.dotToEtherSwapAmount??0n,V=k.etherFeeAmount??0n,j=$s({tokenAddress:A,senderPubKey:p,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:P,dotRemoteFee:F,dotToEtherSwapAmount:D,etherFeeAmount:V,topic:m??"0x0000000000000000000000000000000000000000000000000000000000000000"});return d.XcmVersionedXcm.V5(j)}var{Ss58Addr:Oi}=St.addr,Ni="0x0000000000000000000000000000000000000000",Gi=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:a,source:o,destination:i}=t,m=o.chain,c=i.chain,u=St.Snowbridge.fromChain(m),p=m.getAssetId(s),l=it(p),h=s.originSymbol==="ETH",A=i.feeBreakdown.executionFee,k=i.feeBreakdown.relayerFee,P=i.feeBreakdown.volumeTip??0n,F=i.feeBreakdown.hydrationDotFee,D=i.fee.amount,V=k+P,w=Oi.getPubKey(e),j=new TextEncoder().encode(`${c.parachainId}${a}${l}${w}${n}${Date.now()}`),ye=(0,as.toHex)((0,go.Blake2256)(j)),ee=zs({ethChainId:Ze,destinationParaId:c.parachainId,tokenAddress:h?Ni:l,beneficiaryHex:w,tokenAmount:n,hydrationDotFee:F,topic:ye}),ae=await io(),ge=(0,as.toHex)(ae.message.enc(Rt.XcmVersionedXcm.V5(ee))),me=[];h||me.push((0,xo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,l,n]));let je=ae.location.enc(Rt.XcmVersionedLocation.V5({parents:0,interior:Rt.XcmV5Junctions.X1(Rt.XcmV5Junction.AccountId32({id:w,network:void 0}))})),st=(0,as.toHex)(je.slice(1));return new St.ContractConfig({abi:St.Abi.Snowbridge,address:u.getGateway(),args:[ge,me,st,A,V],value:h?D+n:D,func:"v2_sendMessage",module:"Snowbridge"})}}),Ao=()=>({v2SendMessage:Gi});var K=require("@galacticcouncil/xc-core"),Js=require("@solana/web3.js"),os=require("@solana/spl-token");var Ki=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,asset:a,source:o,destination:i}=e,m=K.Wormhole.fromChain(o.chain),c=K.Wormhole.fromChain(t.moonchain),u=K.Precompile.Bridge,p=o.chain.getAssetId(a),l=0,h=await K.mrl.createPayload(i.chain,n);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:m.getTokenBridge(),args:[it(p),s,c.getWormholeId(),c.normalizeAddress(u),l,h.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),qi=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,destination:o}=e,i=K.Wormhole.fromChain(a.chain),m=K.Wormhole.fromChain(t.moonchain),c=K.Precompile.Bridge,u=0,p=await K.mrl.createPayload(o.chain,n);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),u,p.toHex()],value:s,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),ji=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,u=K.Wormhole.fromChain(m),p=K.Wormhole.fromChain(c),l=c.getAssetId(s),h=e;if(c.isSolana()){let F=l==="SOL"?os.NATIVE_MINT:new Js.PublicKey(l);h=(await(0,os.getAssociatedTokenAddress)(F,new Js.PublicKey(e))).toBase58()}let A=m.getAssetId(s),k=0,P=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:u.getTokenBridge(),args:[it(A),n,p.getWormholeId(),p.normalizeAddress(h),k,P],func:"transferTokens",module:"TokenBridge"})}}),zi=()=>({build:async t=>{let{address:e,amount:n,source:s,destination:a}=t,o=K.Wormhole.fromChain(s.chain),i=K.Wormhole.fromChain(a.chain),m=0,c=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:n,func:"wrapAndTransferETH",module:"TokenBridge"})}}),wo=()=>({transferTokens:ji,transferTokensWithPayload:Ki,wrapAndTransferETH:zi,wrapAndTransferETHWithPayload:qi});var qt=require("@galacticcouncil/xc-core");var $i=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,u=qt.Wormhole.fromChain(m),p=qt.Wormhole.fromChain(c),l=0,h=0,A=m.getAssetId(s);return new qt.ContractConfig({abi:qt.Abi.TokenRelayer,address:u.getTokenRelayer(),args:[it(A),n,l,p.getWormholeId(),p.normalizeAddress(e),h],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Co=()=>({transferTokensWithRelay:$i});function ko(){return{TokenBridge:wo,TokenRelayer:Co}}function U(){return{Batch:Qa,Erc20:Ya,Basejump:no,PolkadotXcm:oo,Snowbridge:Ao,Wormhole:ko}}var vo=require("@galacticcouncil/xc-core"),To="AssetConversion",Ji=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:a}=s,o=s.destinationFeeSwap||s.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,u=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),l=i.amount+i.amount*BigInt(t.slippage)/100n,h=m.amount;return new vo.ExtrinsicConfig({module:To,func:e,getTx:A=>A.getUnsafeApi().tx[To][e]({path:[u,p],amount_out:h,amount_in_max:l,send_to:n,keep_alive:!0})})}}},Bo=()=>({swapTokensForExactTokens:Ji});var rs=require("@galacticcouncil/descriptors"),Po=require("@galacticcouncil/xc-core"),Qi="Assets",Yi=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:a})=>{let o=a.chain,{fee:i}=a,m=n>i.amount?n-i.amount:n,c=o.getMetadataAssetId(e);return new Po.ExtrinsicConfig({module:Qi,func:t,getTx:u=>u.getTypedApi(rs.hub).tx.Assets.transfer({id:Number(c),target:rs.MultiAddress.Id(s),amount:m})})}}},Eo=()=>({transfer:Yi});var _o=require("@galacticcouncil/xc-core"),Fo="Balances",Zi=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new _o.ExtrinsicConfig({module:Fo,func:e,getTx:s=>s.getUnsafeApi().tx[Fo][e]({dest:n,keep_alive:t})})}},Io=()=>({transferAll:Zi});var Xo=require("@galacticcouncil/descriptors"),So=require("@galacticcouncil/xc-core"),ec="Router",tc=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:a}=n;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=s,u=c.getMetadataAssetId(o),p=c.getMetadataAssetId(i),l=i.amount,h=o.amount+o.amount*BigInt(t.slippage)/100n;return new So.ExtrinsicConfig({module:ec,func:"buy",getTx:A=>A.getTypedApi(Xo.hydration).tx.Router.buy({asset_in:Number(u),asset_out:Number(p),amount_out:l,max_amount_in:h,route:m})})}}),Ro=()=>({buy:tc});var Lo=require("@galacticcouncil/xc-core"),Do="Utility",nc=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(a=>a.build(n)));return new Lo.ExtrinsicConfig({module:Do,func:e,getTx:a=>{let o=s.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Do][e]({calls:o})}})}}},Ho=()=>({batchAll:nc});var is=require("@galacticcouncil/xc-core"),Wo=require("polkadot-api"),Mo=require("viem");var yt=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(yt||{}),Ge=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(Ge||{});var Vo="EthereumXcm",sc=t=>{let e="transact";return{build:async n=>{let s=await t.build(n),a="V1",o=(0,Mo.encodeFunctionData)({abi:is.Abi[s.module],functionName:s.func,args:s.args});return new is.ExtrinsicConfig({module:Vo,func:e,getTx:i=>i.getUnsafeApi().tx[Vo][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:s.address},value:[0n,0n,0n,0n],input:Wo.Binary.fromHex(o),access_list:void 0}}})})}}},Qs=()=>({transact:sc});var kt=require("@galacticcouncil/xc-core"),us=require("@galacticcouncil/common");var An=require("@galacticcouncil/xc-core"),y=require("@galacticcouncil/descriptors");var ce=require("@galacticcouncil/descriptors");var Uo=require("@galacticcouncil/common"),Ys=require("@galacticcouncil/descriptors"),Oo=require("@polkadot-api/substrate-bindings"),No=require("@polkadot-api/utils");function Q(t){if(t.length===42&&t.startsWith("0x"))return Ys.XcmV3Junction.AccountKey20({key:t,network:void 0});let n=(0,Oo.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Ys.XcmV3Junction.AccountId32({id:(0,No.toHex)(n.publicKey),network:void 0})}function xn(t,e,n){return Uo.acc.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}var Zs=require("@galacticcouncil/xc-core");function Go(t,e){let n=Zs.multiloc.findNestedKey(t,"GeneralIndex"),s=Zs.multiloc.findNestedKey(e,"GeneralIndex"),a=n&&n.GeneralIndex,o=s&&s.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function Y(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var cs={};Yt(cs,{ETHER_TOKEN_ADDRESS:()=>ea,erc20Location:()=>oc,erc20LocationReanchored:()=>rc,ethereumLocation:()=>qo,parachainLocation:()=>ac});var et=require("@galacticcouncil/descriptors"),ea="0x0000000000000000000000000000000000000000",Ko=t=>et.XcmV3Junction.GlobalConsensus(et.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function qo(t){return{parents:2,interior:et.XcmV3Junctions.X1(Ko(t))}}function ac(t){return{parents:1,interior:et.XcmV3Junctions.X1(et.XcmV3Junction.Parachain(t))}}function oc(t,e){return e===ea?qo(t):{parents:2,interior:et.XcmV3Junctions.X2([Ko(t),et.XcmV3Junction.AccountKey20({key:e})])}}function rc(t){return t===ea?{parents:0,interior:{type:"Here"}}:{parents:0,interior:et.XcmV3Junctions.X1(et.XcmV3Junction.AccountKey20({key:t}))}}var ta=require("@galacticcouncil/common"),jo=require("@galacticcouncil/xc-core");function Z(t,e){return ic(e)>=4?(0,ta.encodeLocation)(t):cc(t)}function ic(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function cc(t){return{type:"Concrete",value:(0,ta.encodeLocation)(t)}}var mc=1e3;function uc(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(a=>a&&typeof a=="object"&&"GlobalConsensus"in a):!1}function dc(t){if(t)return uc(t)?mc:jo.multiloc.findParachain(t)}function zo(t,e,n,s){let a=e.getAssetXcmLocation(t),o=dc(a),i=s?.parachainId??n.parachainId;if(o&&i!==o)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${s.name} (${s.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function na(t,e){let n="V4",s=Z(Y(e,t),n),a=mt;return[ce.XcmV4Instruction.ReserveAssetDeposited([{id:te,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)},{id:s,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)}]),ce.XcmV4Instruction.ClearOrigin(),ce.XcmV4Instruction.BuyExecution({fees:{id:te,fun:ce.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:ce.XcmV3WeightLimit.Unlimited()}),ce.XcmV4Instruction.DepositAsset({assets:ce.XcmV4AssetAssetFilter.Wild(ce.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ce.XcmV3Junctions.X1(Q(Kt))}}),ce.XcmV4Instruction.SetTopic(a)]}var gt=require("@galacticcouncil/descriptors");function $o(t,e){let n="V4",s=Z(Y(e,t),n),a=ms("V4",Q(lo),Q(Kt),s,mt);return[gt.XcmV4Instruction.WithdrawAsset([{id:te,fun:gt.XcmV3MultiassetFungibility.Fungible(ie)},{id:s,fun:gt.XcmV3MultiassetFungibility.Fungible(ie)}]),gt.XcmV4Instruction.ClearOrigin(),gt.XcmV4Instruction.BuyExecution({fees:{id:te,fun:gt.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:gt.XcmV3WeightLimit.Unlimited()}),...a.value]}var X=require("@galacticcouncil/descriptors");function Jo(t,e){let n="V4",s=Z(Y(e,t),n),a=mt;return[X.XcmV4Instruction.WithdrawAsset([{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(Q(Kt))}}),X.XcmV4Instruction.SetTopic(a)]}function sa(t,e){let n="V4",s=Z(Y(e,t),n);return[X.XcmV4Instruction.BuyExecution({fees:{id:s,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(Q(Kt))}})]}function Qo(t,e,n){let s="V4",a=Z(Y(e,t),s),o=mt,i=sa(t,n);return[X.XcmV4Instruction.WithdrawAsset([{id:a,fun:X.XcmV3MultiassetFungibility.Fungible(ie)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:a,fun:X.XcmV3MultiassetFungibility.Fungible(ie)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositReserveAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:X.XcmV3Junctions.X1(X.XcmV3Junction.Parachain(n.parachainId))},xcm:i}),X.XcmV4Instruction.SetTopic(o)]}var ne=require("@galacticcouncil/descriptors");function Yo(t,e){let n="V5",s=Z(Y(e,t),n),a={parents:0,interior:ne.XcmV5Junctions.X1(ne.XcmV5Junction.AccountId32({id:uo,network:void 0}))};return[ne.XcmV5Instruction.ReserveAssetDeposited([{id:te,fun:ne.XcmV3MultiassetFungibility.Fungible(ie)}]),ne.XcmV5Instruction.PayFees({asset:{id:te,fun:ne.XcmV3MultiassetFungibility.Fungible(ie)}}),ne.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:ne.XcmV3MultiassetFungibility.Fungible(ie)}]),ne.XcmV5Instruction.ClearOrigin(),ne.XcmV5Instruction.DepositAsset({assets:ne.XcmV5AssetFilter.Wild(ne.XcmV5WildAsset.AllCounted(3)),beneficiary:a}),ne.XcmV5Instruction.SetTopic(mt)]}var Zo=[An.ChainEcosystem.Polkadot,An.ChainEcosystem.Kusama],lc={parents:1,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.Parachain(1e3))},fc=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},pc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Zo.includes(t.ecosystem)&&Zo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,er=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 n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},xt=(t,e,n)=>{if(pc(e,n)){let a=n.ecosystem===An.ChainEcosystem.Polkadot?y.XcmV3JunctionNetworkId.Polkadot():y.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:y.XcmV3Junctions.X2([y.XcmV3Junction.GlobalConsensus(a),y.XcmV3Junction.Parachain(n.parachainId)])}}}if(n.parachainId===mo)return{type:t,value:{parents:1,interior:y.XcmV3Junctions.Here()}};let s=n.key==="ethereum"?ss:n.parachainId;return{type:t,value:{parents:1,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.Parachain(s))}}},jt=(t,e)=>({type:t,value:{parents:0,interior:y.XcmV3Junctions.X1(e)}}),aa=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:fc(n)?lc:n}}:{type:e},Dt=(t,e)=>({id:t,fun:y.XcmV3MultiassetFungibility.Fungible(e)}),tr=(t,e,n)=>({type:t,value:[y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(n)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]});var ms=(t,e,n,s,a)=>{let o=a;return{type:t,value:[y.XcmV4Instruction.SetAppendix([y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(n)}})]),y.XcmV4Instruction.InitiateReserveWithdraw({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllOf({id:s,fun:y.XcmV2MultiassetWildFungibility.Fungible()})),reserve:cs.ethereumLocation(Ze),xcm:[y.XcmV4Instruction.BuyExecution({fees:{id:bc(s),fun:y.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}}),y.XcmV4Instruction.SetTopic(o)]}),y.XcmV4Instruction.SetTopic(o)]}},bc=t=>{let e=An.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:y.XcmV3Junctions.X1(y.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:y.XcmV3Junctions.Here()}},nr=(t,e,n,s,a,o)=>({type:t,value:[y.XcmV4Instruction.WithdrawAsset([{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)}]),y.XcmV4Instruction.BuyExecution({fees:{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.Transact({origin_kind:y.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:a}),y.XcmV4Instruction.RefundSurplus(),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]}),sr=(t,e,n,s,a,o)=>({type:t,value:[y.XcmV4Instruction.WithdrawAsset([{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(a)}]),y.XcmV4Instruction.BuyExecution({fees:{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:y.XcmV3WeightLimit.Unlimited()}),y.XcmV4Instruction.TransferAsset({assets:[{id:n,fun:y.XcmV3MultiassetFungibility.Fungible(s)}],beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(o)}}),y.XcmV4Instruction.RefundSurplus(),y.XcmV4Instruction.DepositAsset({assets:y.XcmV4AssetAssetFilter.Wild(y.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:y.XcmV3Junctions.X1(e)}})]});var fe="PolkadotXcm",hc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",u=Z(Y(i,n),c),p=Z(Y(i,s.fee),c),l=Dt(u,e),h=Dt(p,s.fee.amount),A="limited_reserve_transfer_assets";return new kt.ExtrinsicConfig({module:fe,func:A,getTx:k=>{let P=k.getUnsafeApi().tx[fe][A];return n.key===s.fee.key?P({dest:xt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[l]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Go(u,p)?P({dest:xt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[h,l]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):P({dest:xt(c,i,m),beneficiary:jt(c,o),assets:{type:c,value:[l,h]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),yc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",u=Z(Y(i,n),c),p=Dt(u,e),l=xt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="limited_teleport_assets";return new kt.ExtrinsicConfig({module:fe,func:k,getTx:P=>P.getUnsafeApi().tx[fe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c=i.xcmVersion??"V4",u=Z(Y(i,n),c),p=Dt(u,e),l=xt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="reserve_transfer_assets";return new kt.ExtrinsicConfig({module:fe,func:k,getTx:P=>P.getUnsafeApi().tx[fe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0})})}}),xc=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:a})=>{let o=Q(t),i=a.chain,m=s.chain,c="V4",u=Z(Y(i,n),c),p=Dt(u,e),l=xt(c,i,m),h=jt(c,o),A={type:c,value:[p]},k="transfer_assets";return new kt.ExtrinsicConfig({module:fe,func:k,getTx:P=>P.getUnsafeApi().tx[fe][k]({dest:l,beneficiary:h,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ac=t=>({build:async({address:e,asset:n,amount:s,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let u="V4",p=m.chain,l=a.chain,h=a.fee.amount,A=a.fee;c&&(l=c.chain,h=us.big.toBigInt(c.fee.amount,c.fee.decimals),A=c.fee);let k=Q(i),P=c||l.usesCexForwarding?xn(p,i,l):e,F=Q(P),{transferType:D}=t,V=Z(Y(p,n),u),w=Z(Y(p,A),u),j=Dt(V,s),ye=Dt(w,h),ee=n.isEqual(A),ae=xt(u,p,l),ge={type:u,value:ee?[j]:[ye,j]},me=aa(u,D,V),je={type:u,value:ee?V:w},st=aa(u,D,w),ft;er(V)&&a.chain.isEvmChain()?ft=ms(u,F,k,V,o):ft=tr(u,F,ge.value.length);let En="transfer_assets_using_type_and_then";return new kt.ExtrinsicConfig({module:fe,func:En,getTx:ui=>ui.getUnsafeApi().tx[fe][En]({dest:ae,assets:ge,assets_transfer_type:me,remote_fees_id:je,fees_transfer_type:st,custom_xcm_on_dest:ft,weight_limit:{type:"Unlimited"}})})}}),wc=()=>{let t="send";return{transact:e=>({build:async n=>{let{sender:s,source:a,transact:o}=n,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,u=xn(m,s,c),p=Q(u),{fee:l}=o,h=Z(Y(c,l),i),A=us.big.toBigInt(e.fee,l.decimals);return new kt.ExtrinsicConfig({module:fe,func:t,getTx:k=>k.getUnsafeApi().tx[fe][t]({dest:xt(i,m,c),message:nr(i,p,h,A,o.call,o.weight)})})}}),transferAsset:e=>({build:async n=>{let{amount:s,address:a,asset:o,sender:i,source:m,destination:c}=n,u="V4",p=m.chain,l=c.chain,h=xn(p,i,l),A=Q(h),k=Q(a),P=Z(Y(l,o),u),{fee:F}=c,D=us.big.toBigInt(e.fee,F.decimals),V=s>F.amount?s-(F.amount+D):s;return new kt.ExtrinsicConfig({module:fe,func:t,getTx:w=>w.getUnsafeApi().tx[fe][t]({dest:xt(u,p,l),message:sr(u,A,P,V,D,k)})})}})}};function Cc(t){let e=n=>({build:async s=>{let a=n(s),o="execute";return new kt.ExtrinsicConfig({module:fe,func:o,getTx:i=>i.getUnsafeApi().tx[fe][o]({message:a,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(yo)}}var oa=()=>({limitedReserveTransferAssets:hc,limitedTeleportAssets:yc,reserveTransferAssets:gc,transferAssets:xc,transferAssetsUsingTypeAndThen:Ac,execute:Cc,send:wc});var rr=require("@galacticcouncil/xc-core"),ir=require("@galacticcouncil/common");var In=require("@galacticcouncil/descriptors"),ar=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:In.XcmV3Junctions.X1(n)}}:{type:t,value:{parents:1,interior:In.XcmV3Junctions.X2([In.XcmV3Junction.Parachain(e.parachainId),n])}};var or="XTokens",kc=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:a,source:o})=>{let i=o.chain,m=s.chain,c="V3",u=m.usesCexForwarding?xn(i,a,m):t,p=Q(u),l=i.getAssetId(n),h=(0,ir.encodeAssetId)(l),A="transfer";return new rr.ExtrinsicConfig({module:or,func:A,getTx:k=>k.getUnsafeApi().tx[or][A]({currency_id:h,amount:e,dest:ar(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),ra=()=>({transfer:kc});function f(){return{assetConversion:Bo,assets:Eo,balances:Io,ethereumXcm:Qs,polkadotXcm:oa,router:Ro,utility:Ho,xTokens:ra}}function Tt(t,e){return{prior:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,...n]).build(s):f().utility().batchAll([...n]).build(s)}}}}var Lt=require("@galacticcouncil/xc-core");var cr=80000n,mr=120000n,ur=1000000n,dr=2000000n,ia=15000000000000n;var ca=require("@galacticcouncil/xc-core");var Tc=999999999999n,vc=[{lowerUsd:0n,upperUsd:100n,numerator:16n,denominator:10000n},{lowerUsd:100n,upperUsd:1000n,numerator:14n,denominator:10000n},{lowerUsd:1000n,upperUsd:10000n,numerator:12n,denominator:10000n},{lowerUsd:10000n,upperUsd:100000n,numerator:10n,denominator:10000n},{lowerUsd:100000n,upperUsd:1000000n,numerator:8n,denominator:10000n},{lowerUsd:1000000n,upperUsd:Tc,numerator:6n,denominator:10000n}];function Bc(t){for(let e of vc)if(t>=e.lowerUsd&&t<e.upperUsd)return{numerator:e.numerator,denominator:e.denominator};return{numerator:6n,denominator:10000n}}var fr=1000000000000000000n;function Pc(t){if(t.txValueUsd<0n)throw new Error("txValueUsd must be >= 0");if(t.ethToUsdNumerator<=0n||t.ethToUsdDenominator<=0n)throw new Error("ethToUsdNumerator and ethToUsdDenominator must be > 0");let{numerator:e,denominator:n}=Bc(t.txValueUsd);return t.txValueUsd*e*fr*t.ethToUsdDenominator/(n*t.ethToUsdNumerator)}var pr=6,ma=10n**BigInt(pr),lr=100n*ma,Ec=fr;async function ua(t,e,n){if(n<=0n)return 0n;try{let[s,{ethToUsdNumerator:a,ethToUsdDenominator:o}]=await Promise.all([Fc(t,e,n),_c(t)]);return Pc({txValueUsd:s,ethToUsdNumerator:a,ethToUsdDenominator:o})}catch(s){return console.warn(`Snowbridge volume tip pricing failed for ${e.key}; defaulting to 0.`,s),0n}}async function Fc(t,e,n){if(e.originSymbol==="USDC"||e.originSymbol==="USDT"){let i=t.chain.getAssetDecimals(e);if(i===void 0)throw new Error(`Snowbridge volume tip: ${e.key} has no decimals on ${t.chain.key}`);return n/10n**BigInt(i)}let s=ca.AssetAmount.fromAsset(x,{amount:lr,decimals:pr}),{amount:a}=await t.getQuote(e,x,s);return n*lr/a/ma}async function _c(t){let e=ca.AssetAmount.fromAsset(S,{amount:Ec,decimals:18}),{amount:n}=await t.getQuote(x,S,e);return{ethToUsdNumerator:n,ethToUsdDenominator:ma}}var ba={};Yt(ba,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>yr,AssethubClient:()=>ve,BaseClient:()=>ut,HydrationClient:()=>pe,getAllAssetDepositLimits:()=>fa,getAssetDepositLimit:()=>la,getGlobalWithdrawLimit:()=>pa});var da=require("@galacticcouncil/common"),Xn=require("@galacticcouncil/descriptors"),ut=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??Xn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:o}=s;return BigInt(a)-BigInt(o)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(n);if(!a)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let o=(0,da.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Xn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(i.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let a=this.chain.getAssetXcmLocation(n);if(!a)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let o=(0,da.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Xn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(i.value)}};var Ke=require("@galacticcouncil/descriptors"),br=require("@galacticcouncil/common"),ds=require("@polkadot-api/substrate-bindings"),hr=require("@polkadot-api/utils");var ve=class extends ut{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),a=(0,br.encodeLocation)(s);if(n===0)return!0;let o=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(n));return o&&o.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(s),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let n=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(n)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){let n=new TextEncoder().encode(":BridgeHubEthereumBaseFeeV2:"),s=(0,hr.toHex)((0,ds.Twox128)(n)),a=await this.client._request("state_getStorage",[s]);if(!a)return e.defaultFee;let o=ds.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,n){let s=Ke.XcmVersionedLocation.V5({parents:1,interior:Ke.XcmV5Junctions.X1(Ke.XcmV5Junction.Parachain(n))}),a=Ke.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,Ke.XcmVersionedXcm.V4(e),a);if(!o.success)throw Error("Can't query XCM delivery fee.");let i=o.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.")}async quoteDotToEther(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(a===void 0)throw Error("Can't quote DOT to Ether conversion.");return a}async quoteEtherForDot(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(a===void 0)throw Error("Can't quote Ether for DOT conversion.");return a}async quoteDotForExactEther(e,n){let s={parents:1,interior:Ke.XcmV5Junctions.Here()},a=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(a===void 0)throw Error("Can't quote DOT for Ether conversion.");return a}};var xr=require("@galacticcouncil/descriptors");var yr=14400;function gr(t,e,n,s,a,o){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,l,h;n&&(n.type==="Locked"?(p=n.value,u=a<n.value):(l=n.value[0],h=n.value[1]));let A=s?.type==="Local"?"Local":"External",k=!u&&l!==void 0&&l+yr<=a,P=null;if(i!==null)if(u)P=0n;else if(k)P=i;else{let F=h??o,D=o>F?o-F:0n;P=i>D?i-D:0n}return{assetId:t,symbol:m,decimals:c,limit:i,locked:u,lockedUntilBlock:p,lastResetBlock:l,baselineIssuance:h,currentIssuance:o,headroom:P,category:A,periodExpired:k}}async function la(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,a,o,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"}),n]);return gr(e,s,a,o,i,m)}async function fa(t){let[e,n,s,a,o,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(n.map(l=>[l.keyArgs[0],l.value])),c=new Map(s.map(l=>[l.keyArgs[0],l.value])),u=new Map(i.map(l=>[l.keyArgs[0],l.value])),p=new Map;for(let l of e){let h=l.keyArgs[0],A=l.value;if(A?.xcm_rate_limit==null)continue;let k=h===0?o:u.get(h)??0n,P=gr(h,A,m.get(h),c.get(h),a,k);p.set(h.toString(),P)}return p}async function pa(t){let[e,n,s,a]=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"})]),o=s??void 0,i=o!==void 0&&a<o,[m,c]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:i,lockdownUntilMs:o};let{limit:u,window:p}=e,l=m;if(!i&&p>0n){let A=a>c?a-c:0n;if(A>0n){let k=A>p?p:A,P=m*k/p;l=m>P?m-P:0n}}let h=i||l>=u?0n:u-l;return{configured:!0,limit:u,windowMs:p,used:l,lastUpdateMs:c,headroom:h,lockdown:i,lockdownUntilMs:o}}var pe=class extends ut{constructor(e){super(e,xr.hydration)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),a=await this.api().query.AssetRegistry.Assets.getValue(s);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:o}=s;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,n){let s=Number(n),a=await this.api().query.Tokens.Accounts.getValue(e,s),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return la(this.api(),n)}getAllAssetDepositLimits(){return fa(this.api())}getGlobalWithdrawLimit(){return pa(this.api())}};function Ic(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:n})=>{let s=n,a=e,o=Lt.Wormhole.fromChain(s),i=Lt.Wormhole.fromChain(a),m=s.getAssetId(t),c=s.getAssetDecimals(t);return{amount:await s.evmClient.getProvider().readContract({abi:Lt.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Xc(){return{TokenRelayer:Ic}}function Sc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,transferAsset:n,destination:s,amount:a})=>{let o=s,i=new pe(o),m=new ve(t.hub),c=na(e,o),u=Yo(e,o),p=gn(Ze),l=250000000n,h=ho(Ze,o.parachainId),[A,k,P,F,D]=await Promise.all([i.calculateDestinationFeeV5(u,T),m.calculateDeliveryFee(c,o.parachainId),m.calculateDeliveryFee(c,Ks),m.calculateDestinationFeeV5(h,T),ua(b.dex,n,a??0n)]),V=Ce(A,33n),w=Ce(k,33n),j=Ce(P,33n),ee=Ce(F,33n)+w,ae=V,ge=await m.quoteEtherForDot(p,ee),me=Ce(ge,30n),je=me<ia*2n?ia*2n:me,st=Ce(await m.quoteEtherForDot(p,ae),100n),ft=Ce(await m.quoteDotToEther(p,l+j),30n);return{amount:je+ft+st+D,breakdown:{executionFee:je,relayerFee:ft,remoteEtherFee:st,hydrationDotFee:ae,volumeTip:D}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:a,amount:o})=>{let i=s,m=a,c=new ve(t.hub),u=gn(Ze),p=$o(e,i),l=na(e,i),[h,A,k,P,F]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(p,Ks),c.calculateDestinationFee(p,n),c.calculateDeliveryFee(l,i.parachainId),c.calculateDestinationFee(l,n)]),D=await m.evmClient.getProvider().getGasPrice(),w=(t.fast?dr:ur)+mr+cr,j=Ce(D*w,33n),ye=h+A+Ce(k,25n)+P+Ce(F,25n),ee=Ce(await c.quoteDotForExactEther(u,j),20n),ae=new pe(i),ge=$s({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:mt}),me=Ce(await ae.calculateDestinationFeeV5(ge,T),33n),je=await ua(b.dex,e,o??0n),st=j===0n?0n:je*ee/j;return{amount:ye+ee+me+st,breakdown:{dotRemoteFee:ye,dotToEtherSwapAmount:ee,etherFeeAmount:j,sourceExecutionFee:me,volumeTip:st}}}})}}function Rc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let a=n,o=s,i=t?.reserve;if(zo(e,a,o,i),i){let h=new ut(o),A=new ut(i),k=sa(e,o),P=Qo(e,i,o),[F,D]=await Promise.all([h.calculateDestinationFee(k,e),A.calculateDestinationFee(P,e)]),V=D+F,w=Ce(V,20n),j=w-V;return{amount:w,breakdown:{reserveFee:D,destinationFee:F,margin:j}}}let m=new ut(o),c=Jo(e,o),u=await m.calculateDestinationFee(c,e),p=Ce(u,20n),l=p-u;return{amount:p,breakdown:{totalFee:u,margin:l}}}})}}function Dc(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=Lt.Basejump.fromChain(n),a=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Lt.Abi.Basejump,address:s.getAddress(),args:[a],functionName:"quoteFee"})}}})}}function v(){return{Basejump:Dc,XcmPaymentApi:Rc,Snowbridge:Sc,Wormhole:Xc}}var Lc="0";function Hc(){return{build:async({address:t,chain:e})=>{let s=await new pe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=s?s.toString():Lc,o=e.findAssetById(a);return o?o.asset:oe}}}var Vc=()=>({accountCurrencyMap:Hc});function Sn(){return{multiTransactionPayment:Vc}}var Be=require("@galacticcouncil/xc-core"),ke=require("@solana/spl-token"),dt=require("@solana/web3.js"),ha=require("@wormhole-foundation/sdk-connect"),Ht=require("@wormhole-foundation/sdk-solana-tokenbridge"),Wc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,sender:o,destination:i}=e,m=a.chain,c=m,u=Be.Wormhole.fromChain(m),p=Be.Wormhole.fromChain(t.moonchain),l=Be.Precompile.Bridge,h=await Be.mrl.createPayload(i.chain,n),A=new dt.PublicKey(o),k=new ha.UniversalAddress(l),P=p.getWormholeId(),F=A,D=0,V=dt.Keypair.generate(),w=dt.Keypair.generate(),j=await(0,ke.getMinimumBalanceForRentExemptAccount)(c.connection),ye=dt.SystemProgram.createAccount({fromPubkey:F,newAccountPubkey:w.publicKey,lamports:j,space:ke.ACCOUNT_SIZE,programId:ke.TOKEN_PROGRAM_ID}),ee=dt.SystemProgram.transfer({fromPubkey:F,lamports:s,toPubkey:w.publicKey}),ae=(0,ke.createInitializeAccountInstruction)(w.publicKey,ke.NATIVE_MINT,F),ge=(0,Ht.createApproveAuthoritySignerInstruction)(u.getTokenBridge(),w.publicKey,F,s),me=(0,Ht.createTransferNativeWithPayloadInstruction)(c.connection,u.getTokenBridge(),u.getCoreBridge(),o,V.publicKey,w.publicKey,ke.NATIVE_MINT,D,s,k.toUint8Array(),P,h.toU8a()),je=(0,ke.createCloseAccountInstruction)(w.publicKey,F,F);return new Be.ProgramConfig({instructions:[ye,ee,ae,ge,me,je],signers:[V,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(j)})}})}),Mc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,u=c,p=Be.Wormhole.fromChain(c),l=Be.Wormhole.fromChain(t.moonchain),h=Be.Precompile.Bridge,A=await Be.mrl.createPayload(m.chain,n),k=new dt.PublicKey(i),P=o.chain.getAssetId(a),F=new dt.PublicKey(P),D=await(0,ke.getAssociatedTokenAddress)(F,k),V=new ha.UniversalAddress(h),w=l.getWormholeId();if(await(0,Ht.getWrappedMeta)(u.connection,p.getTokenBridge(),F).catch(me=>null).then(me=>me!=null))throw new Error("Wrapped assets not supported yet");let ye=0,ee=dt.Keypair.generate(),ae=(0,Ht.createApproveAuthoritySignerInstruction)(p.getTokenBridge(),D,k,s),ge=(0,Ht.createTransferNativeWithPayloadInstruction)(u.connection,p.getTokenBridge(),p.getCoreBridge(),i,ee.publicKey,D,F,ye,s,V.toUint8Array(),w,A.toU8a());return new Be.ProgramConfig({instructions:[ae,ge],signers:[ee],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ar=()=>({transferNativeWithPayload:Wc,transferTokenWithPayload:Mc});function wr(){return{TokenBridge:Ar}}function Rn(){return{Wormhole:wr}}var vt=require("@galacticcouncil/xc-core"),Cr=require("@mysten/sui/transactions"),ls=require("@mysten/sui/utils"),kr=require("@wormhole-foundation/sdk-connect"),Dn=require("@wormhole-foundation/sdk-sui"),Uc=()=>({viaMrl:t=>({build:async e=>{let{address:n,amount:s,source:a,sender:o,destination:i}=e,m=a.chain,c=m,u=vt.Wormhole.fromChain(m),p=vt.Wormhole.fromChain(t.moonchain),l=0,h=vt.Precompile.Bridge,A=await vt.mrl.createPayload(i.chain,n),k=new kr.UniversalAddress(h),P=p.getWormholeId(),F=ls.SUI_TYPE_ARG,[D,V]=await Promise.all([(0,Dn.getPackageId)(c.client,u.coreBridge),(0,Dn.getPackageId)(c.client,u.tokenBridge)]),w=new Cr.Transaction,[j]=w.splitCoins(w.gas,[w.pure.u64(s)]),[ye]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[ee]=w.moveCall({target:`${V}::state::verified_asset`,arguments:[w.object(u.tokenBridge)],typeArguments:[F]}),ae=!1,ge=await(async()=>{let ft=await(0,Dn.getOldestEmitterCapObjectId)(c.client,D,o);if(ft!==null)return w.object(ft);{let[En]=w.moveCall({target:`${D}::emitter::new`,arguments:[w.object(u.coreBridge)]});return ae=!0,En}})(),[me,je]=w.moveCall({target:`${V}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ge,ee,j,w.pure.u16(P),w.pure.vector("u8",k.toUint8Array()),w.pure.vector("u8",A.toU8a()),w.pure.u32(l)],typeArguments:[F]});w.moveCall({target:`${V}::coin_utils::return_nonzero`,arguments:[je],typeArguments:[F]});let[st]=w.moveCall({target:`${V}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(u.tokenBridge),me],typeArguments:[F]});return w.moveCall({target:`${D}::publish_message::publish_message`,arguments:[w.object(u.coreBridge),ye,st,w.object(ls.SUI_CLOCK_OBJECT_ID)]}),ae&&w.transferObjects([ge],w.pure.address(o)),new vt.MoveConfig({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Tr=()=>({transferNativeWithPayload:Uc});function vr(){return{TokenBridge:Tr}}function ya(){return{Wormhole:vr}}var xa={};Yt(xa,{Tag:()=>Bt});var Bt=(i=>(i.Basejump="Basejump",i.Wormhole="Wormhole",i.Relayer="Relayer",i.Snowbridge="Snowbridge",i.Mrl="Mrl",i.SnowbridgeFast="SnowbridgeFast",i))(Bt||{});function Br(t,e){return new Aa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:0,asset:e}},contract:U().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function Pr(t,e){return new Aa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:v().Basejump().quoteFee(),asset:t}},contract:U().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Oc=[Br(At,pt)],Nc=[Pr(At,pt)],Fr=new Er.ChainRoutes({chain:en,routes:[...Oc,...Nc]});var zt=require("@galacticcouncil/xc-core");var wa=require("@galacticcouncil/xc-core");function wn(t,e){return new wa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:b,asset:e,fee:{amount:0,asset:e}},contract:U().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function be(t,e){return new wa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:b,asset:e,fee:{amount:v().Snowbridge().calculateInboundFee({hub:E}),asset:S}},contract:U().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}var Gc=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),destinationFee:{asset:S,balance:r().evm().native()}},destination:{chain:b,asset:ue,fee:{amount:0,asset:ue}},contract:U().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),wn(Xe,le),wn(ht,Qe),wn(x,Je),wn(g,$e),wn(bt,ze)],Kc=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),fee:{asset:S,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:b,asset:S,fee:{amount:v().Snowbridge().calculateInboundFee({hub:E}),asset:S}},contract:U().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),be(Ee,Ee),be(Fe,Fe),be(_e,_e),be(Se,Se),be(Ve,Ve),be(Me,Me),be(Ue,Ue),be(De,De),be(Re,Re),be(Le,Le),be(We,We),be(Oe,Oe),be(Ne,Ne),be(x,Et),be(g,Pt)],yb=[new zt.AssetRoute({source:{asset:S,balance:r().evm().native(),destinationFee:{asset:S,balance:r().evm().erc20()}},destination:{chain:R,asset:ue,fee:{amount:0,asset:ue}},contract:U().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new zt.AssetRoute({source:{asset:Xe,balance:r().evm().erc20(),fee:{asset:S,balance:r().evm().native()},destinationFee:{asset:Xe,balance:r().evm().erc20()}},destination:{chain:R,asset:le,fee:{amount:0,asset:le}},contract:U().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],_r=new zt.ChainRoutes({chain:B,routes:[...Gc,...Kc]});var Ir=[Fr,_r];var Vt=require("@galacticcouncil/xc-core");var fs=require("@galacticcouncil/xc-core");var $t=0,qc=t=>{let{source:e}=t;return!!e.feeSwap},jc=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},Xr=f().assetConversion().swapTokensForExactTokens({slippage:30});function zc(t,e,n){return new fs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().assets().account()},min:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:g}},extrinsic:Tt(jc,Xr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function ps(t,e,n){return new fs.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:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:Tt(qc,Xr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Jt(t,e,n){return new fs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().assets().account()},min:Xt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function bs(t){return zc(t,b,.02)}var $c=[new Vt.AssetRoute({source:{asset:T,balance:r().substrate().system().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().system().account()},min:Xt().assets().asset()},destination:{chain:b,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Vt.AssetRoute({source:{asset:H,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:b,asset:H,fee:{amount:1e-4,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Jt(g,b,.02),Jt(x,b,.02),bs(wt)],Jc=[new Vt.AssetRoute({source:{asset:H,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:Ct,asset:H,fee:{amount:.001,asset:H}},extrinsic:f().polkadotXcm().transferAssets()})],Qc=[Jt(g,R,.25),Jt(x,R,.25)],Yc=[Jt(g,N,.03),Jt(x,N,.03)],Zc=[new Vt.AssetRoute({source:{asset:z,balance:r().substrate().foreignAssets().account(),fee:{asset:T,balance:r().substrate().system().account(),extra:$t},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:_t,asset:z,fee:{amount:2.5,asset:z}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Sr=new Vt.ChainRoutes({chain:Ft,routes:[ps(g,b,.02),ps(x,b,.02),ps(T,b,.001)]}),Rr=new Vt.ChainRoutes({chain:E,routes:[...$c,...Jc,...Qc,...Yc,...Zc]});var tt=require("@galacticcouncil/xc-core");var e0=[new tt.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:O,fee:{amount:.044306118,asset:O}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new tt.AssetRoute({source:{asset:W,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:W,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:_,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:_,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:R}),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:G,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:G,fee:{amount:.01,asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:q,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:q,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:re,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:re,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:N}),asset:re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:g,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new tt.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:O,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:b,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Dr=new tt.ChainRoutes({chain:de,routes:[...e0]});var Pe=require("@galacticcouncil/xc-core");var t0=[new Pe.AssetRoute({source:{asset:W,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:W,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:q,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:q,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:re,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:re,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:T,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:T,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Pe.AssetRoute({source:{asset:O,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:O,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:de}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:_,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:_,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:R}),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:M,fee:{amount:625e-8,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],n0=[new Pe.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:E,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:W,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:E,asset:x,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Lr=new Pe.ChainRoutes({chain:N,routes:[...t0,...n0]});var qe=require("@galacticcouncil/xc-core");var s0="0",I=()=>({build:({address:t,asset:e,chain:n})=>n.getAssetId(e).toString()===s0?r().substrate().system().account().build({address:t,asset:e,chain:n}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:n})}),se=()=>({asset:Sn().multiTransactionPayment().accountCurrencyMap(),balance:I()});var Wt=require("@galacticcouncil/xc-core");var a0=.9,o0=1,r0=1,hs=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},ys=f().router().buy({slippage:30});function $(t,e,n){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Cn(t,e,n){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Mt(t,e){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function gs(t){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:E,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function i0(t,e,n="LocalReserve"){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:e,asset:t,fee:{amount:r0,asset:_}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:n}))})}function Ut(t){return i0(t,R,"DestinationReserve")}function c0(t,e,n,s,a,o){return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{asset:t,balance:I()}},destination:{chain:n,asset:e,fee:{amount:s,asset:e}},extrinsic:Tt(hs,ys).priorMulti([f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),f().polkadotXcm().send().transact({fee:a0})]),transact:{chain:R,fee:{amount:o0,asset:_,balance:I()},extrinsic:f().ethereumXcm().transact(a)},tags:o})}function nt(t,e,n){return c0(t,e,n,0,U().Batch().batchAll([U().Erc20().approve(s=>s.getTokenBridge()),U().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function L(t,e,n,s={}){let{fast:a}=s;return new Wt.AssetRoute({source:{asset:t,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:n,asset:e,fee:{amount:v().Snowbridge().calculateOutboundFee({hub:E,fast:a}),asset:T}},extrinsic:Tt(hs,ys).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:a?["Snowbridge","SnowbridgeFast"]:["Snowbridge"]})}var m0=[Mt(T,E),Mt(H,E),Mt(g,E),Mt(x,E),gs(wt)],u0=[$(O,de),$(W,de,N),$(_,de,R),new qe.AssetRoute({source:{asset:M,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:de,asset:M,fee:{amount:2e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:G,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:de,asset:G,fee:{amount:.01,asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),$(q,de,N),$(re,de,N),$(g,de,E),$(x,de,E)],d0=[$(W,N),$(q,N),$(re,N),$(O,N,de),$(_,N,R),new qe.AssetRoute({source:{asset:M,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:N,asset:M,fee:{amount:5e-6,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),$(g,N,E),$(x,N,E),new qe.AssetRoute({source:{asset:T,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:N,asset:T,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:E}),asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],l0=[Cn(M,Ye,62e-8),Cn(G,Ye,.0019213457),Cn(oe,Ye,.5),Cn(g,Ye,.3),Cn(x,Ye,.3),new qe.AssetRoute({source:{asset:q,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:Ye,asset:q,fee:{amount:.01,asset:T}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:T,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:Ye,asset:T,fee:{amount:.05,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],f0=[$(oe,R),$(_,R),$(g,R,E),$(x,R,E),Ut(le),Ut(ze),Ut(Je),Ut($e),Ut(Qe),Ut(ue),Ut(J)],p0=[new qe.AssetRoute({source:{asset:z,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:_t,asset:z,fee:{amount:2.5,asset:z}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],b0=[$(rt,mn)],h0=[new qe.AssetRoute({source:{asset:Ie,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:sn,asset:Ie,fee:{amount:.04,asset:Ie}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],y0=[new qe.AssetRoute({source:{asset:Te,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:dn,asset:Te,fee:{amount:.02,asset:Te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],g0=[new qe.AssetRoute({source:{asset:He,balance:I(),fee:se(),destinationFee:{balance:I()}},destination:{chain:cn,asset:He,fee:{amount:1.1,asset:He}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],x0=[$(ot,on)],A0=[$(at,tn)],w0=[nt(pt,At,en)],C0=[nt(le,Xe,B),nt(ue,S,B),nt(Qe,ht,B),nt($e,g,B),nt(Je,x,B),nt(ze,bt,B)],k0=[L(S,S,B),L(S,S,B,{fast:!0}),L(Ee,Ee,B),L(Ee,Ee,B,{fast:!0}),L(Fe,Fe,B),L(Fe,Fe,B,{fast:!0}),L(_e,_e,B),L(_e,_e,B,{fast:!0}),L(Se,Se,B),L(Se,Se,B,{fast:!0}),L(Ve,Ve,B),L(Ve,Ve,B,{fast:!0}),L(Me,Me,B),L(Me,Me,B,{fast:!0}),L(Ue,Ue,B),L(Ue,Ue,B,{fast:!0}),L(Oe,Oe,B),L(Oe,Oe,B,{fast:!0}),L(De,De,B),L(De,De,B,{fast:!0}),L(Re,Re,B),L(Re,Re,B,{fast:!0}),L(Le,Le,B),L(Le,Le,B,{fast:!0}),L(We,We,B),L(We,We,B,{fast:!0}),L(Ne,Ne,B),L(Ne,Ne,B,{fast:!0}),L(Et,x,B),L(Et,x,B,{fast:!0}),L(Pt,g,B),L(Pt,g,B,{fast:!0})],T0=[nt(J,J,It),nt(xe,xe,It),nt(Ae,Ae,It)],v0=[nt(we,we,ln)],B0=[Mt(T,Ft),Mt(g,Ft),Mt(x,Ft)],Hr=new qe.ChainRoutes({chain:b,routes:[...A0,...m0,...u0,...w0,...d0,...B0,...h0,...k0,...C0,...l0,...y0,...f0,...p0,...x0,...g0,...T0,...v0,...b0]});var Qt=require("@galacticcouncil/xc-core");var Ca=()=>r().substrate().tokens().accounts();function xs(t,e){return new Qt.AssetRoute({source:{asset:t,balance:Ca(),fee:{asset:G,balance:Ca()},destinationFee:{balance:Ca()}},destination:{chain:b,asset:t,fee:{amount:v().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var P0=[new Qt.AssetRoute({source:{asset:G,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:G,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().xTokens().transfer()}),new Qt.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),fee:{asset:G,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:M,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().xTokens().transfer()}),new Qt.AssetRoute({source:{asset:oe,balance:r().substrate().tokens().accounts(),fee:{asset:G,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:b,asset:oe,fee:{amount:.5,asset:oe}},extrinsic:f().xTokens().transfer()}),xs(q,N),xs(g,E),xs(x,E),xs(T,E)],Vr=new Qt.ChainRoutes({chain:Ye,routes:[...P0]});var Nt=require("@galacticcouncil/xc-core");var ka=require("@galacticcouncil/xc-core");function E0(t,e,n){return new ka.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},contract:U().PolkadotXcm().transferAssetsToPara32()})}function F0(t,e,n){return new ka.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:_,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},contract:U().PolkadotXcm().transferAssetsToPara32()})}function Ot(t,e){return E0(t,b,e)}function As(t,e){return F0(t,b,e)}var _0=[new Nt.AssetRoute({source:{asset:_,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:_,fee:{amount:.05,asset:_}},contract:U().PolkadotXcm().transferAssetsToPara32()}),As(oe,.6),As(g,.3),As(x,.3),Ot(le,.004),Ot(ze,.004),Ot(Je,.004),Ot($e,.004),Ot(Qe,1e-7),Ot(ue,2e-6),Ot(J,2e-5)],I0=[new Nt.AssetRoute({source:{asset:g,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:E,asset:g,fee:{amount:.18,asset:g}},contract:U().PolkadotXcm().transferAssetsToPara32()}),new Nt.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:E,asset:x,fee:{amount:.18,asset:x}},contract:U().PolkadotXcm().transferAssetsToPara32()})],vh=[new Nt.AssetRoute({source:{asset:ue,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{asset:ue,balance:r().evm().erc20()}},destination:{chain:B,asset:S,fee:{amount:v().Wormhole().TokenRelayer().calculateRelayerFee(),asset:S}},contract:U().Batch().batchAll([U().Erc20().approve(t=>t.getTokenRelayer()),U().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Nt.AssetRoute({source:{asset:le,balance:r().evm().erc20(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{asset:le,balance:r().evm().erc20()}},destination:{chain:B,asset:Xe,fee:{amount:v().Wormhole().TokenRelayer().calculateRelayerFee(),asset:Xe}},contract:U().Batch().batchAll([U().Erc20().approve(t=>t.getTokenRelayer()),U().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Wr=new Nt.ChainRoutes({chain:R,routes:[..._0,...I0]});var Ln=require("@galacticcouncil/xc-core");var X0=[new Ln.AssetRoute({source:{asset:z,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:z,fee:{amount:.01,asset:z}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],S0=[new Ln.AssetRoute({source:{asset:z,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:E,asset:z,fee:{amount:.1,asset:z}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Mr=new Ln.ChainRoutes({chain:_t,routes:[...X0,...S0]});var ws=require("@galacticcouncil/xc-core");var R0=[new ws.AssetRoute({source:{asset:rt,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:rt,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:rt}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Ur=new ws.ChainRoutes({chain:mn,routes:[...R0]});var Cs=require("@galacticcouncil/xc-core");var D0=[new Cs.AssetRoute({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:Ie,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Or=new Cs.ChainRoutes({chain:sn,routes:[...D0]});var ks=require("@galacticcouncil/xc-core");var L0=[new ks.AssetRoute({source:{asset:He,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:He,fee:{amount:.2,asset:He}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Nr=new ks.ChainRoutes({chain:cn,routes:[...L0]});var Ts=require("@galacticcouncil/xc-core");var H0=[new Ts.AssetRoute({source:{asset:at,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:at,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:at}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Gr=new Ts.ChainRoutes({chain:tn,routes:[...H0]});var vs=require("@galacticcouncil/xc-core");var V0=[new vs.AssetRoute({source:{asset:Te,balance:r().substrate().system().account(),fee:{asset:Te,balance:r().substrate().system().account(),extra:.030555},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:Te,fee:{amount:.03,asset:Te}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Kr=new vs.ChainRoutes({chain:dn,routes:[...V0]});var Bs=require("@galacticcouncil/xc-core");var W0=[new Bs.AssetRoute({source:{asset:ot,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:b,asset:ot,fee:{amount:.205,asset:ot}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],qr=new Bs.ChainRoutes({chain:on,routes:[...W0]});var jr=[Gr,Rr,Sr,Dr,Lr,Hr,Vr,Wr,Mr,qr,Ur,Or,Nr,Kr];var kn=require("@galacticcouncil/xc-core");var M0=[new kn.AssetRoute({source:{asset:J,balance:r().solana().native(),destinationFee:{asset:J,balance:r().solana().native()}},destination:{chain:b,asset:J,fee:{amount:0,asset:J}},program:Rn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new kn.AssetRoute({source:{asset:xe,balance:r().solana().token(),fee:{asset:J,balance:r().solana().native()},destinationFee:{asset:xe,balance:r().solana().token()}},destination:{chain:b,asset:xe,fee:{amount:0,asset:xe}},program:Rn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new kn.AssetRoute({source:{asset:Ae,balance:r().solana().token(),fee:{asset:J,balance:r().solana().native()},destinationFee:{asset:Ae,balance:r().solana().token()}},destination:{chain:b,asset:Ae,fee:{amount:0,asset:Ae}},program:Rn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],zr=new kn.ChainRoutes({chain:It,routes:[...M0]});var $r=[zr];var Ps=require("@galacticcouncil/xc-core");var U0=[new Ps.AssetRoute({source:{asset:we,balance:r().sui().native(),destinationFee:{asset:we,balance:r().sui().native()}},destination:{chain:b,asset:we,fee:{amount:0,asset:we}},move:ya().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],Jr=new Ps.ChainRoutes({chain:ln,routes:[...U0]});var Qr=[Jr];var Hn=require("@galacticcouncil/xc-core");var O0=require("@galacticcouncil/xc-core");var Ta=.0015;var N0=new Hn.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),fee:{asset:H,balance:r().substrate().system().account(),extra:Ta},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:E,asset:H,fee:{amount:.002,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),G0=new Hn.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),fee:{asset:H,balance:r().substrate().system().account(),extra:Ta},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:fn,asset:H,fee:{amount:.0012,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Yr=new Hn.ChainRoutes({chain:Ct,routes:[G0,N0]});var Vn=require("@galacticcouncil/xc-core");var K0="0",Tn=()=>({build:({address:t,asset:e,chain:n})=>e.toString()===K0?r().substrate().system().account().build({address:t,asset:e,chain:n}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:n})}),va=()=>({asset:Sn().multiTransactionPayment().accountCurrencyMap(),balance:Tn()});var q0=[new Vn.AssetRoute({source:{asset:g,balance:Tn(),fee:va(),destinationFee:{balance:Tn()}},destination:{chain:Ct,asset:g,fee:{amount:v().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],j0=[new Vn.AssetRoute({source:{asset:H,balance:Tn(),fee:va(),destinationFee:{balance:Tn()}},destination:{chain:Ct,asset:H,fee:{amount:.0012,asset:H}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Zr=new Vn.ChainRoutes({chain:fn,routes:[...q0,...j0]});var ei=[Yr,Zr];var z0=[...Ir,...jr,...$r,...Qr,...ei],ti=new Map(z0.map(t=>[t.chain.key,t]));var Ba=require("@galacticcouncil/xc-core");var vn=require("@galacticcouncil/xc-core");var Es=class extends vn.TransferValidation{async validate(e){let{source:n}=e,{chain:s,fee:a,feeBalance:o}=n;if(o.amount<a.amount)throw new vn.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:s.name,error:"fee.insufficientBalance"})}},Fs=class extends vn.TransferValidation{async skipFor(e){let{asset:n,source:s}=e,{enabled:a}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:a,destinationFee:o,destinationFeeBalance:i}=s,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});if(i.amount<c.amount)throw new vn.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:a.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e.key==="assethub")return new ve(e).getAssetMin(n);let a=e.getAssetMin(n)*10**n.decimals;return BigInt(a)}};var Bn=require("@galacticcouncil/xc-core");var _s=class extends Bn.TransferValidation{async skipFor(e){let{asset:n,destination:s}=e,a=s.chain;return await new ve(a).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:a}=e,o=a.chain;if(await new ve(o).getSystemAccountBalance(s)===0n)throw new Bn.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},Is=class extends Bn.TransferValidation{async validate(e){let{asset:n,sender:s,source:a}=e,o=a.chain;if(await new ve(o).checkIfFrozen(s,n))throw new Bn.TransferValidationError("Asset_Frozen",{asset:n.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var lt=require("@galacticcouncil/xc-core");var $0=12,J0=1,Q0=18,Xs=class extends lt.TransferValidation{async skipFor(e){let{destination:n}=e,s=n.chain,a=new pe(s),o=n.balance.amount>0n,i=await a.checkIfSufficient(n.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:a}=e,o=a.chain,i=new pe(o),m=await i.getFeeAsset(s),c=o.findAssetById(m),u=c.min||J0,p=c.decimals||$0,l=u*Math.pow(10,p),h=await i.getAssetBalance(s,m);if(BigInt(l*1.1)>h)throw new lt.TransferValidationError("Insufficient_Ed",{amount:l,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Ss=class extends lt.TransferValidation{async validate(e){let{amount:n,asset:s,destination:a}=e,o=a.chain,m=await new pe(o).getAssetDepositLimit(s);if(m.locked)throw new lt.TransferValidationError("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:o.name,lockedUntilBlock:m.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(m.headroom!==null&&n>m.headroom)throw new lt.TransferValidationError("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:o.name,headroom:m.headroom,limit:m.limit,error:"circuitBreaker.depositLimitExceeded"})}},Rs=class extends lt.TransferValidation{async validate(e){let{source:n}=e,s=n.chain,o=await new pe(s).getGlobalWithdrawLimit();if(o.lockdown)throw new lt.TransferValidationError("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:o.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Ds=class extends lt.TransferValidation{async skipFor(e){let{source:n,transact:s}=e,{enabled:a}=n.destinationFeeSwap||{};return!(!!s&&s.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:s,source:a}=e,o=a.chain,i=new pe(o),m=o.getBalanceAssetId(_),c=o.getAssetDecimals(_)||Q0,u=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(s,m.toString())<BigInt(u))throw new lt.TransferValidationError("Insufficient_Ed",{amount:1,asset:_.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var he={isAny:()=>!0,isHydration:t=>t instanceof Ba.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Ba.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},ni=[new Es(he.isAny,he.isAny),new Fs(he.isAny,he.isAny),new _s(he.isAny,he.isHub),new Is(he.isHub,he.isAny),new Xs(he.isAny,he.isHydration),new Ds(he.isHydration,he.isAny),new Ss(he.isAny,he.isHydration),new Rs(he.isHydration,he.isAny)];var _a={};Yt(_a,{AssethubDex:()=>Fa,HydrationDex:()=>Pa});var Pn=require("@galacticcouncil/sdk-next"),ai=require("@galacticcouncil/common"),oi=require("polkadot-api");var si=(t,e=new Map)=>n=>{let s;return e.has(n)?e.get(n):(e.set(n,s=t(n)),s)};var{PoolType:Ls}=Pn.pool,{TradeRouteBuilder:Y0,TradeRouter:Z0}=Pn.sor,{TxBuilderFactory:em}=Pn.tx,Pa=class{chain;client;poolCtx;txBuilder;getCtx=si(async e=>{console.log("init swap router",e,"\u2705");let n=new Z0(this.poolCtx);return n.withFilter({useOnly:[Ls.Aave,Ls.Omni,Ls.Stable,Ls.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new pe(this.chain),this.txBuilder=new em(n.client,n.evm)}async getCalldata(e,n,s,a,o=0){let i=Number(this.chain.getMetadataAssetId(n)),m=Number(this.chain.getMetadataAssetId(s)),c=a.amount,u=await this.getCtx(1),p=await u.getMostLiquidRoute(i,m),l=await u.getBuy(i,m,c,p),k=await(await this.txBuilder.trade(l).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData();return oi.Binary.toHex(k)}async getQuote(e,n,s,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(n)),m=s.amount,c=await this.getCtx(1);try{let u=await c.getMostLiquidRoute(o,i),p=await c.getBuy(o,i,m,u);return{amount:p.amountIn,route:Y0.build(p.swaps)}}catch(u){if(a)return{amount:await this.getFallbackPrice(e,s.amount)};throw u}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!a)throw new Error(`No price found for asset ${e.key}`);let o=a*n,i=Math.pow(10,ai.RUNTIME_DECIMALS);return o/BigInt(i)}};var Ea=require("@galacticcouncil/common"),Fa=class{chain;client;constructor(e){this.chain=e,this.client=new ve(this.chain)}async getCalldata(e,n,s,a){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let a=this.chain.getAssetXcmLocation(e),o=this.chain.getAssetXcmLocation(n),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Ea.encodeLocation)(a),(0,Ea.encodeLocation)(o),s.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var mi=require("@galacticcouncil/xc-core");var ri=require("@galacticcouncil/xc-core");function Hs(t){let{id:e,origin:n,symbol:s}=t,a=s.toLowerCase();return new ri.Asset({key:[a,n,e].join("_"),originSymbol:s})}function ii(t){let{decimals:e,id:n}=t;return{asset:Hs(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function ci(t){let{decimals:e,id:n,internalId:s,origin:a}=t;return{asset:Hs(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:a},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var Vs=class extends mi.ConfigService{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),a=o=>!!n.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=Hs(o),m=ii(o),c=ci(o);console.log("\u{1F480} Registering "+i.key),s.updateAsset(m),n.updateAsset(c),this.updateAsset(i),this.updateChainRoute(s,bs(i)),this.updateChainRoute(n,gs(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});