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