@galacticcouncil/xc-cfg 1.3.0 → 1.4.0

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