@galacticcouncil/xc-cfg 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Pn=Object.defineProperty;var Tr=Object.getOwnPropertyDescriptor;var vr=Object.getOwnPropertyNames;var Pr=Object.prototype.hasOwnProperty;var Ot=(t,e)=>{for(var s in e)Pn(t,s,{get:e[s],enumerable:!0})},Br=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of vr(e))!Pr.call(t,a)&&a!==s&&Pn(t,a,{get:()=>e[a],enumerable:!(n=Tr(e,a))||n.enumerable});return t};var Fr=t=>Br(Pn({},"__esModule",{value:!0}),t);var Qc={};Ot(Qc,{HydrationConfigService:()=>Tn,assetsMap:()=>ca,builders:()=>Jn,chainsMap:()=>Ca,clients:()=>jn,dex:()=>ia,routesMap:()=>hr,tags:()=>Qn,validations:()=>br});module.exports=Fr(Qc);var g=require("@galacticcouncil/xc-core"),Ee=new g.Asset({key:"aave",originSymbol:"AAVE"}),Ie=new g.Asset({key:"ajun",originSymbol:"AJUN"}),W=new g.Asset({key:"astr",originSymbol:"ASTR"}),R=new g.Asset({key:"bnc",originSymbol:"BNC"}),Bn=new g.Asset({key:"bsx",originSymbol:"BSX"}),Re=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),ye=new g.Asset({key:"cru",originSymbol:"CRU"}),xe=new g.Asset({key:"dai",originSymbol:"DAI"}),oe=new g.Asset({...xe,key:"dai_mwh"}),nt=new g.Asset({key:"ded",originSymbol:"DED"}),A=new g.Asset({key:"dot",originSymbol:"DOT"}),at=new g.Asset({key:"dota",originSymbol:"DOTA"}),M=new g.Asset({key:"eth",originSymbol:"ETH"}),_e=new g.Asset({key:"ena",originSymbol:"ENA"}),P=new g.Asset({key:"glmr",originSymbol:"GLMR"}),Q=new g.Asset({key:"hdx",originSymbol:"HDX"}),_=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),D=new g.Asset({key:"intr",originSymbol:"INTR"}),ie=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),F=new g.Asset({key:"ksm",originSymbol:"KSM"}),Se=new g.Asset({key:"ldo",originSymbol:"LDO"}),De=new g.Asset({key:"laos",originSymbol:"LAOS"}),Le=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),ge=new g.Asset({key:"ewt",originSymbol:"EWT"}),He=new g.Asset({key:"link",originSymbol:"LINK"}),N=new g.Asset({key:"myth",originSymbol:"MYTH"}),We=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Ae=new g.Asset({key:"pen",originSymbol:"PEN"}),Me=new g.Asset({key:"paxg",originSymbol:"PAXG"}),te=new g.Asset({key:"pink",originSymbol:"PINK"}),Ve=new g.Asset({key:"sky",originSymbol:"SKY"}),J=new g.Asset({key:"sol",originSymbol:"SOL"}),ce=new g.Asset({key:"sui",originSymbol:"SUI"}),Ue=new g.Asset({key:"susde",originSymbol:"sUSDe"}),$e=new g.Asset({key:"susds",originSymbol:"sUSDS"}),we=new g.Asset({...$e,key:"susds_mwh"}),Oe=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),Ke=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ne=new g.Asset({key:"unq",originSymbol:"UNQ"}),p=new g.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new g.Asset({...p,key:"usdt_mwh"}),Bt=new g.Asset({...p,key:"usdt_eth"}),b=new g.Asset({key:"usdc",originSymbol:"USDC"}),ke=new g.Asset({...b,key:"usdc_mwh"}),Ft=new g.Asset({...b,key:"usdc_eth"}),Y=new g.Asset({key:"vastr",originSymbol:"vASTR"}),V=new g.Asset({key:"vdot",originSymbol:"vDOT"}),Kt=new g.Asset({key:"weth",originSymbol:"WETH"}),se=new g.Asset({...Kt,key:"weth_mwh"}),Je=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new g.Asset({...Je,key:"wbtc_mwh"}),Ge=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),ot=new g.Asset({key:"wud",originSymbol:"WUD"}),Xr=[Ee,Ie,W,Bn,Re,ye,R,xe,oe,nt,A,at,_e,M,P,Q,_,D,F,Se,De,Le,ge,ie,He,N,We,Me,Ae,te,Ve,J,ce,Ue,$e,we,Ke,Oe,Ne,b,ke,Ft,p,Ce,Bt,Y,V,Je,Te,Kt,se,Ge,ot],ca=new Map(Xr.map(t=>[t.key,t]));var Fs=require("@galacticcouncil/xc-core");var ma=require("viem/chains"),S=new Fs.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:M,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ee,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Kt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ue,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:$e,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Oe,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Je,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Se,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:He,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Me,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ve,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ke,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Fs.ChainEcosystem.Ethereum,evmChain:ma.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",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var ua=[S];var Xs=require("@galacticcouncil/xc-core");var Nt=new Xs.Parachain({assetsData:[{asset:Ie,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Xs.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var xs=require("@galacticcouncil/xc-core");var la={assetsData:[{asset:A,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:nt,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:at,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:ot,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:F,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:xs.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"]},C=new xs.Parachain({...la,key:"assethub",name:"AssetHub Polkadot"}),Gt=new xs.Parachain({...la,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});var Es=require("@galacticcouncil/xc-core");var ne=new Es.Parachain({assetsData:[{asset:W,xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:p,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:P,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Es.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Is=require("@galacticcouncil/xc-core");var Er=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],U=new Is.Parachain({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,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:p,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:W,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:P,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Is.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Er});var qt=require("@galacticcouncil/xc-core");var jt=new qt.Parachain({assetsData:[{asset:ye,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesSdkCompat:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:qt.XcmVersion.v3});var _s=require("@galacticcouncil/xc-core"),fa=require("viem");var da=require("@polkadot-api/substrate-bindings"),Ir="ETH\0",Rs=class{async toH160(e){let s=(0,da.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Ir),r=n.slice(a.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var Rr=new Rs,Fn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://rpc.helikon.io/hydradx","https://hydration.ibp.network","https://rpc.cay.hydration.cloud","https://rpc.parm.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Xn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],_r=(0,fa.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Fn,webSocket:Xn},default:{http:Fn,webSocket:Xn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new _s.EvmParachain({assetsData:[{asset:Q,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Ee,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Ie,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:R,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Re,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:ye,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:nt,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:A,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:at,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:oe,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:M,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:_e,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:P,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ie,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ge,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Se,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:F,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:De,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Le,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:He,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Me,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:We,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:Ae,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:te,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:Ve,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:J,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ce,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ue,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:$e,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:we,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Oe,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ke,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:b,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ke,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ft,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:p,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Ce,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Y,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Je,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Te,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Kt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:se,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ge,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ot,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:_s.ChainEcosystem.Polkadot,evmChain:_r,evmResolver:Rr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Xn,rpcs:Fn});var Ss=require("@galacticcouncil/xc-core");var ve=new Ss.Parachain({assetsData:[{asset:D,decimals:10,id:{Token:D.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:A,decimals:10,id:{Token:A.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Q,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:V,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ss.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});var Ds=require("@galacticcouncil/xc-core");var zt=new Ds.Parachain({assetsData:[{asset:De,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ds.ChainEcosystem.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});var Ls=require("@galacticcouncil/xc-core"),pa=require("viem");var Sr=(0,pa.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}),X=new Ls.EvmParachain({assetsData:[{asset:P,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:oe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:J,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ie,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:we,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ce,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ke,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Ce,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Te,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:se,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:Q,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:te,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ls.ChainEcosystem.Polkadot,evmChain:Sr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});var Hs=require("@galacticcouncil/xc-core");var pt=new Hs.Parachain({assetsData:[{asset:N,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Hs.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});var Ws=require("@galacticcouncil/xc-core");var $t=new Ws.Parachain({assetsData:[{asset:We,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Ws.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 Jt=require("@galacticcouncil/xc-core");var Qt=new Jt.Parachain({assetsData:[{asset:Ae,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Jt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesSdkCompat:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Jt.XcmVersion.v3});var gs=require("@galacticcouncil/xc-core");var ha={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:gs.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"},ba=new gs.Parachain({...ha,key:"polkadot"}),ya=new gs.Parachain({...ha,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});var Ms=require("@galacticcouncil/xc-core");var Yt=new Ms.Parachain({assetsData:[{asset:Ne,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ms.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var Zt=require("@galacticcouncil/xc-core");var es=new Zt.Parachain({assetsData:[{asset:ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Zt.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesSdkCompat:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Zt.XcmVersion.v3});var xa=[Nt,C,Gt,ne,U,jt,d,zt,$t,ve,X,pt,Qt,ba,ya,Yt,es];var Vs=require("@galacticcouncil/xc-core");var Xt=new Vs.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:J,decimals:9},{asset:ie,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:Vs.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 ga=[Xt];var Us=require("@galacticcouncil/xc-core");var ts=new Us.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ce,decimals:9}],ecosystem:Us.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Aa=[ts];var Os=require("@galacticcouncil/xc-core");var rt=new Os.Parachain({assetsData:[{asset:F,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem: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 Ks=require("@galacticcouncil/xc-core");var ss=new Ks.Parachain({assetsData:[{asset:Bn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:F,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ks.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 wa=[rt,ss];var Dr=[...ua,...xa,...ga,...Aa,...wa],Ca=new Map(Dr.map(t=>[t.key,t]));var Dt=require("@galacticcouncil/xc-core");var Jn={};Ot(Jn,{AssetMinBuilder:()=>ht,BalanceBuilder:()=>o,ContractBuilder:()=>E,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>mt,FeeAmountBuilder:()=>x,FeeAssetBuilder:()=>ws,MoveBuilder:()=>$n,ProgramBuilder:()=>Zs,XcmTransferType:()=>le,XcmVersion:()=>ct});var Ns=require("@galacticcouncil/xc-core");function ht(){return{assetRegistry:Lr,assets:Hr}}function Lr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Ns.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Ns.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Hr(){return{asset:()=>({build:({asset:t})=>new Ns.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var As=require("@galacticcouncil/xc-core");function ka(){return{erc20:Mr,native:Wr}}function Wr(){return{build:({address:t})=>new As.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Mr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new As.ContractConfig({abi:As.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var ns=require("@galacticcouncil/xc-core"),as=require("@galacticcouncil/common");function Ta(){return{assets:Vr,system:Or,tokens:Kr,ormlTokens:Nr,foreignAssets:Ur}}function Vr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,as.encodeAssetId)(n);return new ns.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Ur(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let r=(0,as.encodeLocation)(a);return new ns.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Or(){return{account:()=>({build:({address:t})=>new ns.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),a=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=a?n-a:0n}})})}}function Kr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,as.encodeAssetId)(n);return new ns.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Nr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,as.encodeAssetId)(n);return new ns.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}var En=require("@galacticcouncil/xc-core");function va(){return{native:Gr,token:qr}}function Gr(){return{build:({address:t})=>new En.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function qr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new En.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var Pa=require("@galacticcouncil/xc-core");function Ba(){return{native:jr}}function jr(){return{build:({address:t})=>new Pa.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:ka,substrate:Ta,solana:va,sui:Ba}}var Et=require("@galacticcouncil/xc-core"),Fa=require("viem"),zr=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],r=s.map(i=>(0,Fa.encodeFunctionData)({abi:Et.Abi[i.module],functionName:i.func,args:i.args}));return new Et.ContractConfig({abi:Et.Abi.Batch,address:Et.Precompile.Batch,args:[n,a,r,[]],func:"batchAll",module:"Batch"})}}),Xa=()=>({batchAll:zr});var rs=require("@galacticcouncil/xc-core");function os(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function it(t){return typeof t=="object"?Object.values(t)[0]:t}function Ea(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:r}=e,i=r?r.chain:a.chain,u=rs.Wormhole.fromChain(i),c=i.getAssetId(n);return new rs.ContractConfig({abi:rs.Abi.Erc20,address:it(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}var qe=require("@galacticcouncil/xc-core"),Ra=require("@galacticcouncil/common"),{Ss58Addr:Ia}=qe.addr;function $r(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 In(t,e){let s=t.getAssetId(e);return typeof s=="string"?$r(s):s}function _a(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=In(a.chain,s);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ia.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=In(a.chain,s),i=In(a.chain,a.destinationFeeBalance),u=Ra.big.toBigInt(n.fee.amount,n.fee.decimals);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ia.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:u}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var bt=require("@galacticcouncil/xc-core");var{Ss58Addr:Jr}=bt.addr,Qr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r}=t,i=a.chain,u=r.chain,c=bt.Snowbridge.fromChain(i),l=i.getAssetId(n),h=it(l),y=n.originSymbol==="ETH",w=r.feeBreakdown.bridgeFeeInDot,v=r.fee.amount;return new bt.ContractConfig({abi:bt.Abi.Snowbridge,address:c.getGateway(),args:[h,u.parachainId,[1,Jr.getPubKey(e)],w,s],value:y?v+s:v,func:"sendToken",module:"Snowbridge"})}}),Sa=()=>({sendToken:Qr});var O=require("@galacticcouncil/xc-core"),Rn=require("@solana/web3.js"),Da=require("@solana/spl-token");var Yr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,destination:i}=e,u=O.Wormhole.fromChain(r.chain),c=O.Wormhole.fromChain(t.moonchain),l=O.Precompile.Bridge,h=r.chain.getAssetId(a),y=0,w=await O.mrl.createPayload(i.chain,s);return new O.ContractConfig({abi:O.Abi.TokenBridge,address:u.getTokenBridge(),args:[it(h),n,c.getWormholeId(),c.normalizeAddress(l),y,w.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Zr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:r}=e,i=O.Wormhole.fromChain(a.chain),u=O.Wormhole.fromChain(t.moonchain),c=O.Precompile.Bridge,l=0,h=await O.mrl.createPayload(r.chain,s);return new O.ContractConfig({abi:O.Abi.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),l,h.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),ei=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,u=i?i.chain:a.chain,c=r.chain,l=O.Wormhole.fromChain(u),h=O.Wormhole.fromChain(c),y=e;if(c.isSolana()){let K=c.getAssetId(n);y=(await(0,Da.getAssociatedTokenAddress)(new Rn.PublicKey(K),new Rn.PublicKey(e))).toBase58()}let w=u.getAssetId(n),v=0,I=0;return new O.ContractConfig({abi:O.Abi.TokenBridge,address:l.getTokenBridge(),args:[it(w),s,h.getWormholeId(),h.normalizeAddress(y),v,I],func:"transferTokens",module:"TokenBridge"})}}),ti=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,r=O.Wormhole.fromChain(n.chain),i=O.Wormhole.fromChain(a.chain),u=0,c=0;return new O.ContractConfig({abi:O.Abi.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),La=()=>({transferTokens:ei,transferTokensWithPayload:Yr,wrapAndTransferETH:ti,wrapAndTransferETHWithPayload:Zr});var It=require("@galacticcouncil/xc-core");var si=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,u=i?i.chain:a.chain,c=r.chain,l=It.Wormhole.fromChain(u),h=It.Wormhole.fromChain(c),y=0,w=0,v=u.getAssetId(n);return new It.ContractConfig({abi:It.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[it(v),s,y,h.getWormholeId(),h.normalizeAddress(e),w],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ha=()=>({transferTokensWithRelay:si});function Wa(){return{TokenBridge:La,TokenRelayer:Ha}}function E(){return{Batch:Xa,Erc20:Ea,PolkadotXcm:_a,Snowbridge:Sa,Wormhole:Wa}}var Va=require("@galacticcouncil/xc-core"),Ma="AssetConversion",ni=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(u),y=i.amount+i.amount*BigInt(t.slippage)/100n,w=u.amount;return new Va.ExtrinsicConfig({module:Ma,func:e,getTx:v=>v.getUnsafeApi().tx[Ma][e]({path:[l,h],amount_out:w,amount_in_max:y,send_to:s,keep_alive:!0})})}}},Ua=()=>({swapTokensForExactTokens:ni});var Gs=require("@galacticcouncil/descriptors"),Oa=require("@galacticcouncil/xc-core"),ai="Assets",oi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let r=a.chain,{fee:i}=a,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Oa.ExtrinsicConfig({module:ai,func:t,getTx:l=>l.getTypedApi(Gs.hub).tx.Assets.transfer({id:Number(c),target:Gs.MultiAddress.Id(n),amount:u})})}}},Ka=()=>({transfer:oi});var Ga=require("@galacticcouncil/xc-core"),Na="Balances",ri=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Ga.ExtrinsicConfig({module:Na,func:e,getTx:n=>n.getUnsafeApi().tx[Na][e]({dest:s,keep_alive:t})})}},qa=()=>({transferAll:ri});var ja=require("@galacticcouncil/descriptors"),za=require("@galacticcouncil/xc-core"),ii="Router",ci=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=a,c=n,l=c.getMetadataAssetId(r),h=c.getMetadataAssetId(i),y=i.amount,w=r.amount+r.amount*BigInt(t.slippage)/100n;return new za.ExtrinsicConfig({module:ii,func:"buy",getTx:v=>v.getTypedApi(ja.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:y,max_amount_in:w,route:u})})}}),$a=()=>({buy:ci});var Qa=require("@galacticcouncil/xc-core"),Ja="Utility",mi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Qa.ExtrinsicConfig({module:Ja,func:e,getTx:a=>{let r=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Ja][e]({calls:r})}})}}},Ya=()=>({batchAll:mi});var qs=require("@galacticcouncil/xc-core"),_n=require("polkadot-api"),eo=require("viem");var ct=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(ct||{}),le=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(le||{});var Za="EthereumXcm",ui=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",r=(0,eo.encodeFunctionData)({abi:qs.Abi[n.module],functionName:n.func,args:n.args});return new qs.ExtrinsicConfig({module:Za,func:e,getTx:i=>i.getUnsafeApi().tx[Za][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:_n.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:_n.Binary.fromHex(r),access_list:void 0}}})})}}},Sn=()=>({transact:ui});var xt=require("@galacticcouncil/xc-core"),Js=require("@galacticcouncil/common");var cs=require("@galacticcouncil/xc-core"),wo=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var to=require("@galacticcouncil/descriptors"),de=340282366920938463463374607431768211455n,Rt="0x0000000000000000000000000000000000000000000000000000000000000000",is={parents:1,interior:to.XcmV3Junctions.Here()},so=0,no=1e3,ao=1002,oo=1,_t="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var ro="0x0000000000000000000000000000000000000000";var Z=require("@galacticcouncil/descriptors"),bo=require("polkadot-api");var io=require("@galacticcouncil/xc-core"),Dn=require("@galacticcouncil/descriptors"),Ln=require("polkadot-api"),co=require("@polkadot-api/substrate-bindings"),mo=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Dn.XcmV3Junction.AccountKey20({key:Ln.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,co.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Dn.XcmV3Junction.AccountId32({id:Ln.FixedSizeBinary.fromHex((0,mo.toHex)(s.publicKey)),network:void 0})}function js(t,e,s){return io.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Hn=require("@galacticcouncil/xc-core");function uo(t,e){let s=Hn.multiloc.findNestedKey(t,"GeneralIndex"),n=Hn.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(r)?!1:Number(a)>Number(r)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var zs={};Ot(zs,{ETHER_TOKEN_ADDRESS:()=>Mn,erc20Location:()=>di,erc20LocationReanchored:()=>fi,ethereumLocation:()=>fo,parachainLocation:()=>li});var Pe=require("@galacticcouncil/descriptors"),Wn=require("polkadot-api"),Mn="0x0000000000000000000000000000000000000000",lo=t=>Pe.XcmV3Junction.GlobalConsensus(Pe.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function fo(t){return{parents:2,interior:Pe.XcmV3Junctions.X1(lo(t))}}function li(t){return{parents:1,interior:Pe.XcmV3Junctions.X1(Pe.XcmV3Junction.Parachain(t))}}function di(t,e){return e===Mn?fo(t):{parents:2,interior:Pe.XcmV3Junctions.X2([lo(t),Pe.XcmV3Junction.AccountKey20({key:Wn.Binary.fromHex(e)})])}}function fi(t){return t===Mn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Pe.XcmV3Junctions.X1(Pe.XcmV3Junction.AccountKey20({key:Wn.Binary.fromHex(t)}))}}var Vn=require("@galacticcouncil/common"),po=require("@galacticcouncil/xc-core");function $(t,e){return pi(e)>=4?(0,Vn.encodeLocation)(t):hi(t)}function pi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function hi(t){return{type:"Concrete",value:(0,Vn.encodeLocation)(t)}}var bi=1e3;function yi(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(a=>a&&typeof a=="object"&&"GlobalConsensus"in a):!1}function xi(t){if(t)return yi(t)?bi:po.multiloc.findParachain(t)}function ho(t,e,s,n){let a=e.getAssetXcmLocation(t),r=xi(a),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function Un(t,e){let s="V4",n=$(z(e,t),s),a=bo.Binary.fromHex(Rt);return[Z.XcmV4Instruction.ReserveAssetDeposited([{id:is,fun:Z.XcmV3MultiassetFungibility.Fungible(de)},{id:n,fun:Z.XcmV3MultiassetFungibility.Fungible(de)}]),Z.XcmV4Instruction.ClearOrigin(),Z.XcmV4Instruction.BuyExecution({fees:{id:is,fun:Z.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:Z.XcmV3WeightLimit.Unlimited()}),Z.XcmV4Instruction.DepositAsset({assets:Z.XcmV4AssetAssetFilter.Wild(Z.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:Z.XcmV3Junctions.X1(j(_t))}}),Z.XcmV4Instruction.SetTopic(a)]}var Qe=require("@galacticcouncil/descriptors");function yo(t,e){let s="V4",n=$(z(e,t),s),a=$s("V4",j(ro),j(_t),n,Rt);return[Qe.XcmV4Instruction.WithdrawAsset([{id:is,fun:Qe.XcmV3MultiassetFungibility.Fungible(de)},{id:n,fun:Qe.XcmV3MultiassetFungibility.Fungible(de)}]),Qe.XcmV4Instruction.ClearOrigin(),Qe.XcmV4Instruction.BuyExecution({fees:{id:is,fun:Qe.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:Qe.XcmV3WeightLimit.Unlimited()}),...a.value]}var B=require("@galacticcouncil/descriptors"),On=require("polkadot-api");function xo(t,e){let s="V4",n=$(z(e,t),s),a=On.Binary.fromHex(Rt);return[B.XcmV4Instruction.WithdrawAsset([{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(de)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(j(_t))}}),B.XcmV4Instruction.SetTopic(a)]}function Kn(t,e){let s="V4",n=$(z(e,t),s);return[B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(j(_t))}})]}function go(t,e,s){let n="V4",a=$(z(e,t),n),r=On.Binary.fromHex(Rt),i=Kn(t,s);return[B.XcmV4Instruction.WithdrawAsset([{id:a,fun:B.XcmV3MultiassetFungibility.Fungible(de)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:a,fun:B.XcmV3MultiassetFungibility.Fungible(de)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositReserveAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:B.XcmV3Junctions.X1(B.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),B.XcmV4Instruction.SetTopic(r)]}var Ao=[cs.ChainEcosystem.Polkadot,cs.ChainEcosystem.Kusama],gi={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},Ai=t=>t.parents===1&&t.interior==="Here",wi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Ao.includes(t.ecosystem)&&Ao.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Co=t=>{let{interior:e}=t;return e.type==="X1"&&e.value.type==="GlobalConsensus"?e.value.value.type==="Ethereum":!1},Ye=(t,e,s)=>{if(wi(e,s)){let a=s.ecosystem===cs.ChainEcosystem.Polkadot?f.XcmV3JunctionNetworkId.Polkadot():f.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:f.XcmV3Junctions.X2([f.XcmV3Junction.GlobalConsensus(a),f.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===so)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?no:s.parachainId;return{type:t,value:{parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(n))}}},St=(t,e)=>({type:t,value:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),Nn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Ai(s)?gi:s}}:{type:e},yt=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),ko=(t,e,s)=>({type:t,value:[f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var $s=(t,e,s,n,a)=>{let r=wo.Binary.fromHex(a);return{type:t,value:[f.XcmV4Instruction.SetAppendix([f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(s)}})]),f.XcmV4Instruction.InitiateReserveWithdraw({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllOf({id:n,fun:f.XcmV2MultiassetWildFungibility.Fungible()})),reserve:zs.ethereumLocation(oo),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:Ci(n),fun:f.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),f.XcmV4Instruction.SetTopic(r)]}),f.XcmV4Instruction.SetTopic(r)]}},Ci=t=>{let e=cs.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},To=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.Transact({origin_kind:f.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:a}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]}),vo=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(r)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var fe="PolkadotXcm",ki=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,u=n.chain,c="V4",l=$(z(i,s),c),h=$(z(i,n.fee),c),y=yt(l,e),w=yt(h,n.fee.amount),v="limited_reserve_transfer_assets";return new xt.ExtrinsicConfig({module:fe,func:v,getTx:I=>{let K=I.getUnsafeApi().tx[fe][v];return s.key===n.fee.key?K({dest:Ye(c,i,u),beneficiary:St(c,r),assets:{type:c,value:[y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):uo(l,h)?K({dest:Ye(c,i,u),beneficiary:St(c,r),assets:{type:c,value:[w,y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):K({dest:Ye(c,i,u),beneficiary:St(c,r),assets:{type:c,value:[y,w]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Ti=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,u=n.chain,c="V4",l=$(z(i,s),c),h=yt(l,e),y=Ye(c,i,u),w=St(c,r),v={type:c,value:[h]},I="limited_teleport_assets";return new xt.ExtrinsicConfig({module:fe,func:I,getTx:K=>K.getUnsafeApi().tx[fe][I]({dest:y,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),vi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,u=n.chain,c=i.xcmVersion??"V4",l=$(z(i,s),c),h=yt(l,e),y=Ye(c,i,u),w=St(c,r),v={type:c,value:[h]},I="reserve_transfer_assets";return new xt.ExtrinsicConfig({module:fe,func:I,getTx:K=>K.getUnsafeApi().tx[fe][I]({dest:y,beneficiary:w,assets:v,fee_asset_item:0})})}}),Pi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,u=n.chain,c="V4",l=$(z(i,s),c),h=yt(l,e),y=Ye(c,i,u),w=St(c,r),v={type:c,value:[h]},I="transfer_assets";return new xt.ExtrinsicConfig({module:fe,func:I,getTx:K=>K.getUnsafeApi().tx[fe][I]({dest:y,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Bi=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:r,sender:i,source:u,transact:c})=>{let l="V4",h=u.chain,y=a.chain,w=a.fee.amount,v=a.fee;c&&(y=c.chain,w=Js.big.toBigInt(c.fee.amount,c.fee.decimals),v=c.fee);let I=j(i),K=c||y.usesCexForwarding?js(h,i,y):e,H=j(K),{transferType:ee}=t,q=$(z(h,s),l),k=$(z(h,v),l),et=yt(q,n),Pt=yt(k,w),tt=s.isEqual(v),dt=Ye(l,h,y),st={type:l,value:tt?[et]:[Pt,et]},ft=Nn(l,ee,q),ys={type:l,value:tt?q:k},vn=Nn(l,ee,k),Ut;Co(q)?Ut=$s(l,H,I,q,r):Ut=ko(l,H,st.value.length);let Bs="transfer_assets_using_type_and_then";return new xt.ExtrinsicConfig({module:fe,func:Bs,getTx:kr=>kr.getUnsafeApi().tx[fe][Bs]({dest:dt,assets:st,assets_transfer_type:ft,remote_fees_id:ys,fees_transfer_type:vn,custom_xcm_on_dest:Ut,weight_limit:{type:"Unlimited"}})})}}),Fi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=a.chain,c=r.chain,l=js(u,n,c),h=j(l),{fee:y}=r,w=$(z(c,y),i),v=Js.big.toBigInt(e.fee,y.decimals);return new xt.ExtrinsicConfig({module:fe,func:t,getTx:I=>I.getUnsafeApi().tx[fe][t]({dest:Ye(i,u,c),message:To(i,h,w,v,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:r,sender:i,source:u,destination:c}=s,l="V4",h=u.chain,y=c.chain,w=js(h,i,y),v=j(w),I=j(a),K=$(z(y,r),l),{fee:H}=c,ee=Js.big.toBigInt(e.fee,H.decimals),q=n>H.amount?n-(H.amount+ee):n;return new xt.ExtrinsicConfig({module:fe,func:t,getTx:k=>k.getUnsafeApi().tx[fe][t]({dest:Ye(l,h,y),message:vo(l,v,K,q,ee,I)})})}})}},Gn=()=>({limitedReserveTransferAssets:ki,limitedTeleportAssets:Ti,reserveTransferAssets:vi,transferAssets:Pi,transferAssetsUsingTypeAndThen:Bi,send:Fi});var Xo=require("@galacticcouncil/xc-core");var ms=require("@galacticcouncil/descriptors"),Po=(t,e)=>({parents:1,interior:ms.XcmV3Junctions.X2([ms.XcmV3Junction.Parachain(t.parachainId),e])}),Bo=(t,e)=>({id:t,fun:ms.XcmV3MultiassetFungibility.Fungible(e)});var Fo="XTransfer",Xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r="V3",i=j(t),u=a.chain,c=n.chain,l=$(z(u,s),r),h=Bo(l,e),y=Po(c,i),w="transfer";return new Xo.ExtrinsicConfig({module:Fo,func:w,getTx:v=>v.getUnsafeApi().tx[Fo][w]([h,y,{refTime:5e9,proofSize:0}])})}}),qn=()=>({transfer:Xi});function m(){return{assetConversion:Ua,assets:Ka,balances:qa,ethereumXcm:Sn,polkadotXcm:Gn,router:$a,utility:Ya,xTransfer:qn}}function mt(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}var gt=require("@galacticcouncil/xc-core");var jn={};Ot(jn,{AssethubClient:()=>pe,BaseClient:()=>Be,HydrationClient:()=>je});var Eo=require("@galacticcouncil/common"),Qs=require("@galacticcouncil/descriptors"),Be=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Qs.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(s);if(!a)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=(0,Eo.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Qs.XcmVersionedAssetId.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var us=require("@galacticcouncil/descriptors"),Io=require("@galacticcouncil/common"),Ys=require("@polkadot-api/substrate-bindings"),Ro=require("@polkadot-api/utils");var pe=class extends Be{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=(0,Io.encodeLocation)(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(n),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,Ro.toHex)((0,Ys.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let r=Ys.u128.dec(a);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=us.XcmVersionedLocation.V5({parents:1,interior:us.XcmV5Junctions.X1(us.XcmV5Junction.Parachain(s))}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var _o=require("@galacticcouncil/descriptors");var je=class extends Be{constructor(e){super(e,_o.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),a=await this.api().query.AssetRegistry.Assets.getValue(n);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=a;return BigInt(r)-BigInt(i)}};function Ei(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,r=gt.Wormhole.fromChain(n),i=gt.Wormhole.fromChain(a),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:gt.Abi.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function Ii(){return{TokenRelayer:Ei}}function Ri(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,r=s,i=gt.Snowbridge.fromChain(a),u=new Be(r),c=new pe(t.hub),l=Un(e,r),[h,y]=await Promise.all([u.calculateDestinationFee(l,A),c.calculateDeliveryFee(l,r.parachainId)]),w=y+os(h,25n),v=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:gt.Abi.Snowbridge,address:i.getGateway(),args:[v,r.parachainId,w],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:w}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,r=new pe(t.hub),i=yo(e,a),u=Un(e,a),[c,l,h,y,w]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,ao),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,a.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+l+os(h,25n)+y+os(w,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:y,returnToSenderDestinationFee:w}}}})}}function _i(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,r=n,i=t?.reserve;if(ho(e,a,r,i),i){let w=new Be(r),v=new Be(i),I=Kn(e,r),K=go(e,i,r),[H,ee]=await Promise.all([w.calculateDestinationFee(I,e),v.calculateDestinationFee(K,e)]),q=ee+H,k=os(q,20n),et=k-q;return{amount:k,breakdown:{reserveFee:ee,destinationFee:H,margin:et}}}let u=new Be(r),c=xo(e,r),l=await u.calculateDestinationFee(c,e),h=os(l,20n),y=h-l;return{amount:h,breakdown:{totalFee:l,margin:y}}}})}}function x(){return{XcmPaymentApi:_i,Snowbridge:Ri,Wormhole:Ii}}var Si="0";function Di(){return{build:async({address:t,chain:e})=>{let n=await new je(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Si,r=e.findAssetById(a);return r?r.asset:Q}}}var Li=()=>({accountCurrencyMap:Di});function ws(){return{multiTransactionPayment:Li}}var he=require("@galacticcouncil/xc-core"),me=require("@solana/spl-token"),ze=require("@solana/web3.js"),zn=require("@wormhole-foundation/sdk-connect"),At=require("@wormhole-foundation/sdk-solana-tokenbridge"),Hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,u=a.chain,c=u,l=he.Wormhole.fromChain(u),h=he.Wormhole.fromChain(t.moonchain),y=he.Precompile.Bridge,w=await he.mrl.createPayload(i.chain,s),v=new ze.PublicKey(r),I=new zn.UniversalAddress(y),K=h.getWormholeId(),H=v,ee=0,q=ze.Keypair.generate(),k=ze.Keypair.generate(),et=await(0,me.getMinimumBalanceForRentExemptAccount)(c.connection),Pt=ze.SystemProgram.createAccount({fromPubkey:H,newAccountPubkey:k.publicKey,lamports:et,space:me.ACCOUNT_SIZE,programId:me.TOKEN_PROGRAM_ID}),tt=ze.SystemProgram.transfer({fromPubkey:H,lamports:n,toPubkey:k.publicKey}),dt=(0,me.createInitializeAccountInstruction)(k.publicKey,me.NATIVE_MINT,H),st=(0,At.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),k.publicKey,H,n),ft=(0,At.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,q.publicKey,k.publicKey,me.NATIVE_MINT,ee,n,I.toUint8Array(),K,w.toU8a()),ys=(0,me.createCloseAccountInstruction)(k.publicKey,H,H);return new he.ProgramConfig({instructions:[Pt,tt,dt,st,ft,ys],signers:[q,k],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Wi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,sender:i,destination:u}=e,c=r.chain,l=c,h=he.Wormhole.fromChain(c),y=he.Wormhole.fromChain(t.moonchain),w=he.Precompile.Bridge,v=await he.mrl.createPayload(u.chain,s),I=new ze.PublicKey(i),K=r.chain.getAssetId(a),H=new ze.PublicKey(K),ee=await(0,me.getAssociatedTokenAddress)(H,I),q=new zn.UniversalAddress(w),k=y.getWormholeId();if(await(0,At.getWrappedMeta)(l.connection,h.getTokenBridge(),H).catch(ft=>null).then(ft=>ft!=null))throw new Error("Wrapped assets not supported yet");let Pt=0,tt=ze.Keypair.generate(),dt=(0,At.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),ee,I,n),st=(0,At.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,tt.publicKey,ee,H,Pt,n,q.toUint8Array(),k,v.toU8a());return new he.ProgramConfig({instructions:[dt,st],signers:[tt],func:"TransferWithPayload",module:"TokenBridge"})}})}),So=()=>({transferNativeWithPayload:Hi,transferTokenWithPayload:Wi});function Do(){return{TokenBridge:So}}function Zs(){return{Wormhole:Do}}var ut=require("@galacticcouncil/xc-core"),Lo=require("@mysten/sui/transactions"),en=require("@mysten/sui/utils"),Ho=require("@wormhole-foundation/sdk-connect"),Cs=require("@wormhole-foundation/sdk-sui"),Mi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,u=a.chain,c=u,l=ut.Wormhole.fromChain(u),h=ut.Wormhole.fromChain(t.moonchain),y=0,w=ut.Precompile.Bridge,v=await ut.mrl.createPayload(i.chain,s),I=new Ho.UniversalAddress(w),K=h.getWormholeId(),H=en.SUI_TYPE_ARG,[ee,q]=await Promise.all([(0,Cs.getPackageId)(c.client,l.coreBridge),(0,Cs.getPackageId)(c.client,l.tokenBridge)]),k=new Lo.Transaction,[et]=k.splitCoins(k.gas,[k.pure.u64(n)]),[Pt]=k.splitCoins(k.gas,[k.pure.u64(i.fee.amount)]),[tt]=k.moveCall({target:`${q}::state::verified_asset`,arguments:[k.object(l.tokenBridge)],typeArguments:[H]}),dt=!1,st=await(async()=>{let Ut=await(0,Cs.getOldestEmitterCapObjectId)(c.client,ee,r);if(Ut!==null)return k.object(Ut);{let[Bs]=k.moveCall({target:`${ee}::emitter::new`,arguments:[k.object(l.coreBridge)]});return dt=!0,Bs}})(),[ft,ys]=k.moveCall({target:`${q}::transfer_tokens_with_payload::prepare_transfer`,arguments:[st,tt,et,k.pure.u16(K),k.pure.vector("u8",I.toUint8Array()),k.pure.vector("u8",v.toU8a()),k.pure.u32(y)],typeArguments:[H]});k.moveCall({target:`${q}::coin_utils::return_nonzero`,arguments:[ys],typeArguments:[H]});let[vn]=k.moveCall({target:`${q}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[k.object(l.tokenBridge),ft],typeArguments:[H]});return k.moveCall({target:`${ee}::publish_message::publish_message`,arguments:[k.object(l.coreBridge),Pt,vn,k.object(en.SUI_CLOCK_OBJECT_ID)]}),dt&&k.transferObjects([st],k.pure.address(r)),new ut.MoveConfig({transaction:k,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Wo=()=>({transferNativeWithPayload:Mi});function Mo(){return{TokenBridge:Wo}}function $n(){return{Wormhole:Mo}}var Qn={};Ot(Qn,{Tag:()=>wt});var wt=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(wt||{});var Yn=require("@galacticcouncil/xc-core");function ls(t,e){return new Yn.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:E().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:X}),tags:["Mrl","Wormhole"]})}function ue(t,e){return new Yn.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:x().Snowbridge().calculateInboundFee({hub:C}),asset:M}},contract:E().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Vi=[new Dt.AssetRoute({source:{asset:M,balance:o().evm().native(),destinationFee:{asset:M,balance:o().evm().native()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},contract:E().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:X}),tags:["Mrl","Wormhole"]}),ls(xe,oe),ls(Je,Te),ls(b,ke),ls(p,Ce),ls($e,we)],Ui=[new Dt.AssetRoute({source:{asset:M,balance:o().evm().native(),fee:{asset:M,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:M,fee:{amount:x().Snowbridge().calculateInboundFee({hub:C}),asset:M}},contract:E().Snowbridge().sendToken(),tags:["Snowbridge"]}),ue(Ee,Ee),ue(Re,Re),ue(_e,_e),ue(Me,Me),ue(Ue,Ue),ue(Oe,Oe),ue(Le,Le),ue(Se,Se),ue(He,He),ue(Ve,Ve),ue(Ke,Ke),ue(Ge,Ge),ue(b,Ft),ue(p,Bt)],bf=[new Dt.AssetRoute({source:{asset:M,balance:o().evm().native(),destinationFee:{asset:M,balance:o().evm().erc20()}},destination:{chain:X,asset:se,fee:{amount:0,asset:se}},contract:E().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Dt.AssetRoute({source:{asset:xe,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{asset:xe,balance:o().evm().erc20()}},destination:{chain:X,asset:oe,fee:{amount:0,asset:oe}},contract:E().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Vo=new Dt.ChainRoutes({chain:S,routes:[...Vi,...Ui]});var Uo=[Vo];var Ct=require("@galacticcouncil/xc-core");var tn=require("@galacticcouncil/xc-core");var Lt=0,Oi=t=>{let{source:e}=t;return!!e.feeSwap},Ki=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Oo=m().assetConversion().swapTokensForExactTokens({slippage:30});function Ko(t,e,s){return new tn.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().assets().account()},min:ht().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:mt(Ki,Oo).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function sn(t,e,s){return new tn.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:ht().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:mt(Oi,Oo).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ht(t,e,s){return new tn.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().assets().account()},min:ht().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Wt(t){return Ko(t,d,.02)}function No(t){return Ko(t,X,.25)}var Ni=[new Ct.AssetRoute({source:{asset:A,balance:o().substrate().system().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().system().account()},min:ht().assets().asset()},destination:{chain:d,asset:A,fee:{amount:.001,asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Ct.AssetRoute({source:{asset:F,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ht(p,d,.02),Ht(b,d,.02),Wt(te),Wt(nt),Wt(at),Wt(ot)],Gi=[new Ct.AssetRoute({source:{asset:F,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:rt,asset:F,fee:{amount:.001,asset:F}},extrinsic:m().polkadotXcm().transferAssets()})],qi=[Ht(p,X,.25),Ht(b,X,.25),No(te)],ji=[Ht(p,U,.03),Ht(b,U,.03)],zi=[new Ct.AssetRoute({source:{asset:N,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Lt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:pt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Go=new Ct.ChainRoutes({chain:C,routes:[...Ni,...Gi,...qi,...ji,...zi]}),qo=new Ct.ChainRoutes({chain:Gt,routes:[sn(p,d,.02),sn(b,d,.02),sn(A,d,.001)]});var Fe=require("@galacticcouncil/xc-core");var $i=[new Fe.AssetRoute({source:{asset:W,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:W,fee:{amount:.044306118,asset:W}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new Fe.AssetRoute({source:{asset:R,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:U}),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:P,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:P,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:X}),asset:P}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:_,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:D,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:D,fee:{amount:.01,asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:V,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:U}),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:Y,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:Y,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:U}),asset:Y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:p,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Fe.AssetRoute({source:{asset:b,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],jo=new Fe.ChainRoutes({chain:ne,routes:[...$i]});var be=require("@galacticcouncil/xc-core");var Ji=[new be.AssetRoute({source:{asset:R,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:R,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:V,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:Y,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:Y,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:A,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new be.AssetRoute({source:{asset:W,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:ne}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:P,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:P,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:X}),asset:P}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:_,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Qi=[new be.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new be.AssetRoute({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],zo=new be.ChainRoutes({chain:U,routes:[...Ji,...Qi]});var ae=require("@galacticcouncil/xc-core");var Yi="0",T=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Yi?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:T()});var Mt=require("@galacticcouncil/xc-core");var Zi=.9,ec=1,tc=1,sc=.03,nn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},an=m().router().buy({slippage:30});function L(t,e,s){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:e,asset:t,fee:{amount:x().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function Vt(t){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:C,asset:t,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:mt(nn,an).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function on(t,e,s){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:Gt,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:sc})])})}function nc(t,e,s="LocalReserve"){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:e,asset:t,fee:{amount:tc,asset:P}},extrinsic:mt(nn,an).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function kt(t){return nc(t,X,"DestinationReserve")}function $o(t,e,s,n,a,r){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{asset:t,balance:T()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:mt(nn,an).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:Zi})]),transact:{chain:X,fee:{amount:ec,asset:P,balance:T()},extrinsic:m().ethereumXcm().transact(a)},tags:r})}function Zn(t,e,s){return $o(t,e,s,0,E().Batch().batchAll([E().Erc20().approve(n=>n.getTokenBridge()),E().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Tt(t,e,s){return $o(t,e,s,x().Wormhole().TokenRelayer().calculateRelayerFee(),E().Batch().batchAll([E().Erc20().approve(n=>n.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function re(t,e,s){return new Mt.AssetRoute({source:{asset:t,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:s,asset:e,fee:{amount:x().Snowbridge().calculateOutboundFee({hub:C}),asset:A}},extrinsic:mt(nn,an).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var ac=[new ae.AssetRoute({source:{asset:A,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:C,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ae.AssetRoute({source:{asset:F,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:C,asset:F,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ae.AssetRoute({source:{asset:p,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:C,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ae.AssetRoute({source:{asset:b,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:C,asset:b,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),Vt(te),Vt(nt),Vt(at),Vt(ot)],oc=[L(W,ne),L(R,ne,U),L(P,ne,X),new ae.AssetRoute({source:{asset:_,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:ne,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ae.AssetRoute({source:{asset:D,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:ne,asset:D,fee:{amount:.01,asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),L(V,ne,U),L(Y,ne,U),L(p,ne,C),L(b,ne,C)],rc=[L(R,U),L(V,U),L(Y,U),L(W,U,ne),L(P,U,X),new ae.AssetRoute({source:{asset:_,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:U,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),L(p,U,C),L(b,U,C),new ae.AssetRoute({source:{asset:A,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:U,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],ic=[L(_,ve),L(D,ve),L(Q,ve),L(p,ve,C),L(b,ve,C),new ae.AssetRoute({source:{asset:V,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:ve,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ae.AssetRoute({source:{asset:A,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:ve,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],cc=[L(Q,X),L(P,X),L(p,X,C),L(b,X,C),kt(oe),kt(we),kt(ke),kt(Ce),kt(Te),kt(se),kt(J)],mc=[new ae.AssetRoute({source:{asset:N,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:pt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],uc=[L(Ne,Yt)],lc=[new ae.AssetRoute({source:{asset:ye,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:jt,asset:ye,fee:{amount:.04,asset:ye}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],dc=[L(De,zt)],fc=[new ae.AssetRoute({source:{asset:ge,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:es,asset:ge,fee:{amount:.02,asset:ge}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],pc=[new ae.AssetRoute({source:{asset:Ae,balance:T(),fee:G(),destinationFee:{balance:T()}},destination:{chain:Qt,asset:Ae,fee:{amount:1.1,asset:Ae}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],hc=[L(We,$t)],bc=[L(Ie,Nt)],yc=[Tt(oe,xe,S),Tt(se,M,S),Tt(Te,Je,S),Tt(Ce,p,S),Tt(ke,b,S),Zn(we,$e,S)],xc=[re(M,M,S),re(Ee,Ee,S),re(Re,Re,S),re(_e,_e,S),re(Me,Me,S),re(Ue,Ue,S),re(Oe,Oe,S),re(Ke,Ke,S),re(Le,Le,S),re(Se,Se,S),re(He,He,S),re(Ve,Ve,S),re(Ge,Ge,S),re(Ft,b,S),re(Bt,p,S)],gc=[Tt(J,J,Xt),Zn(ie,ie,Xt)],Ac=[Tt(ce,ce,ts)],wc=[on(p,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),on(b,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),on(A,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Jo=new ae.ChainRoutes({chain:d,routes:[...bc,...ac,...oc,...rc,...wc,...lc,...xc,...yc,...ic,...dc,...fc,...cc,...mc,...hc,...pc,...gc,...Ac,...uc]});var Ze=require("@galacticcouncil/xc-core");var Cc=[new Ze.AssetRoute({source:{asset:D,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:D,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:_,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:Q,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:Q,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:V,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:U}),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:A,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Qo=new Ze.ChainRoutes({chain:ve,routes:[...Cc]});var lt=require("@galacticcouncil/xc-core");var ea=require("@galacticcouncil/xc-core");function kc(t,e,s){return new ea.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:E().PolkadotXcm().transferAssetsToPara32()})}function Tc(t,e,s){return new ea.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:P,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:E().PolkadotXcm().transferAssetsToPara32()})}function vt(t,e){return kc(t,d,e)}function rn(t,e){return Tc(t,d,e)}var vc=[new lt.AssetRoute({source:{asset:P,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:P,fee:{amount:.05,asset:P}},contract:E().PolkadotXcm().transferAssetsToPara32()}),rn(Q,.6),rn(p,.3),rn(b,.3),vt(oe,.004),vt(we,.004),vt(ke,.004),vt(Ce,.004),vt(Te,1e-7),vt(se,2e-6),vt(J,2e-5)],Pc=[new lt.AssetRoute({source:{asset:te,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:te,fee:{amount:.18,asset:p}},contract:E().PolkadotXcm().transferAssetsToPara32WithFee()}),new lt.AssetRoute({source:{asset:p,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:p,fee:{amount:.18,asset:p}},contract:E().PolkadotXcm().transferAssetsToPara32()}),new lt.AssetRoute({source:{asset:b,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:E().PolkadotXcm().transferAssetsToPara32()})],kp=[new lt.AssetRoute({source:{asset:se,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{asset:se,balance:o().evm().erc20()}},destination:{chain:S,asset:M,fee:{amount:x().Wormhole().TokenRelayer().calculateRelayerFee(),asset:M}},contract:E().Batch().batchAll([E().Erc20().approve(t=>t.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new lt.AssetRoute({source:{asset:oe,balance:o().evm().erc20(),fee:{asset:P,balance:o().substrate().system().account()},destinationFee:{asset:oe,balance:o().evm().erc20()}},destination:{chain:S,asset:xe,fee:{amount:x().Wormhole().TokenRelayer().calculateRelayerFee(),asset:xe}},contract:E().Batch().batchAll([E().Erc20().approve(t=>t.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Yo=new lt.ChainRoutes({chain:X,routes:[...vc,...Pc]});var ks=require("@galacticcouncil/xc-core");var Bc=[new ks.AssetRoute({source:{asset:N,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:N,fee:{amount:.01,asset:N}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Fc=[new ks.AssetRoute({source:{asset:N,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:N,fee:{amount:.1,asset:N}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Zo=new ks.ChainRoutes({chain:pt,routes:[...Bc,...Fc]});var cn=require("@galacticcouncil/xc-core");var Xc=[new cn.AssetRoute({source:{asset:Ne,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ne,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],er=new cn.ChainRoutes({chain:Yt,routes:[...Xc]});var mn=require("@galacticcouncil/xc-core");var Ec=[new mn.AssetRoute({source:{asset:ye,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ye,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:ye}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],tr=new mn.ChainRoutes({chain:jt,routes:[...Ec]});var un=require("@galacticcouncil/xc-core");var Ic=[new un.AssetRoute({source:{asset:Ae,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ae,fee:{amount:.2,asset:Ae}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],sr=new un.ChainRoutes({chain:Qt,routes:[...Ic]});var ln=require("@galacticcouncil/xc-core");var Rc=[new ln.AssetRoute({source:{asset:Ie,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ie,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],nr=new ln.ChainRoutes({chain:Nt,routes:[...Rc]});var dn=require("@galacticcouncil/xc-core");var _c=[new dn.AssetRoute({source:{asset:De,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:De,fee:{amount:2,asset:De}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],ar=new dn.ChainRoutes({chain:zt,routes:[..._c]});var fn=require("@galacticcouncil/xc-core");var Sc=[new fn.AssetRoute({source:{asset:ge,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.03,asset:ge}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],or=new fn.ChainRoutes({chain:es,routes:[...Sc]});var pn=require("@galacticcouncil/xc-core");var Dc=[new pn.AssetRoute({source:{asset:We,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:.205,asset:We}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],rr=new pn.ChainRoutes({chain:$t,routes:[...Dc]});var ir=[nr,Go,qo,jo,zo,Jo,Qo,Yo,Zo,rr,er,tr,sr,ar,or];var Ts=require("@galacticcouncil/xc-core");var Lc=[new Ts.AssetRoute({source:{asset:J,balance:o().solana().native(),destinationFee:{asset:J,balance:o().solana().native()}},destination:{chain:d,asset:J,fee:{amount:0,asset:J}},program:Zs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:X}),tags:["Mrl","Wormhole"]}),new Ts.AssetRoute({source:{asset:ie,balance:o().solana().token(),fee:{asset:J,balance:o().solana().native()},destinationFee:{asset:ie,balance:o().solana().token()}},destination:{chain:d,asset:ie,fee:{amount:0,asset:ie}},program:Zs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:X}),tags:["Mrl","Wormhole"]})],cr=new Ts.ChainRoutes({chain:Xt,routes:[...Lc]});var mr=[cr];var hn=require("@galacticcouncil/xc-core");var Hc=[new hn.AssetRoute({source:{asset:ce,balance:o().sui().native(),destinationFee:{asset:ce,balance:o().sui().native()}},destination:{chain:d,asset:ce,fee:{amount:0,asset:ce}},move:$n().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:X}),tags:["Mrl","Wormhole"]})],ur=new hn.ChainRoutes({chain:ts,routes:[...Hc]});var lr=[ur];var vs=require("@galacticcouncil/xc-core");var Wc=require("@galacticcouncil/xc-core");var ta=0;var Mc=new vs.AssetRoute({source:{asset:F,balance:o().substrate().system().account(),fee:{asset:F,balance:o().substrate().system().account(),extra:ta},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:F,fee:{amount:.002,asset:F}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Vc=new vs.AssetRoute({source:{asset:F,balance:o().substrate().system().account(),fee:{asset:F,balance:o().substrate().system().account(),extra:ta},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:ss,asset:F,fee:{amount:.0012,asset:F}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),dr=new vs.ChainRoutes({chain:rt,routes:[Vc,Mc]});var Ps=require("@galacticcouncil/xc-core");var Uc="0",ds=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Uc?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),sa=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:ds()});var Oc=[new Ps.AssetRoute({source:{asset:p,balance:ds(),fee:sa(),destinationFee:{balance:ds()}},destination:{chain:rt,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Kc=[new Ps.AssetRoute({source:{asset:F,balance:ds(),fee:sa(),destinationFee:{balance:ds()}},destination:{chain:rt,asset:F,fee:{amount:.0012,asset:F}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],fr=new Ps.ChainRoutes({chain:ss,routes:[...Oc,...Kc]});var pr=[dr,fr];var Nc=[...Uo,...ir,...mr,...lr,...pr],hr=new Map(Nc.map(t=>[t.chain.key,t]));var na=require("@galacticcouncil/xc-core");var fs=require("@galacticcouncil/xc-core");var bn=class extends fs.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:r}=s;if(r.amount<a.amount)throw new fs.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},yn=class extends fs.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:a}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:a,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(a,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new fs.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:a.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new pe(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};var ps=require("@galacticcouncil/xc-core");var xn=class extends ps.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new pe(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain;if(await new pe(r).getSystemAccountBalance(n)===0n)throw new ps.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},gn=class extends ps.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,r=a.chain;if(await new pe(r).checkIfFrozen(n,s))throw new ps.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var hs=require("@galacticcouncil/xc-core");var Gc=12,qc=1,jc=18,An=class extends hs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new je(n),r=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain,i=new je(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),l=c.min||qc,h=c.decimals||Gc,y=l*Math.pow(10,h),w=await i.getAssetBalance(n,u);if(BigInt(y*1.1)>w)throw new hs.TransferValidationError("Insufficient_Ed",{amount:y,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},wn=class extends hs.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:a}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:a}=e,r=a.chain,i=new je(r),u=r.getBalanceAssetId(P),c=r.getAssetDecimals(P)||jc,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(l))throw new hs.TransferValidationError("Insufficient_Ed",{amount:1,asset:P.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var Xe={isAny:()=>!0,isHydration:t=>t instanceof na.Parachain&&t.parachainId===2034,isHub:t=>t instanceof na.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},br=[new bn(Xe.isAny,Xe.isAny),new yn(Xe.isAny,Xe.isAny),new xn(Xe.isAny,Xe.isHub),new gn(Xe.isHub,Xe.isAny),new An(Xe.isAny,Xe.isHydration),new wn(Xe.isHydration,Xe.isAny)];var ia={};Ot(ia,{AssethubDex:()=>ra,HydrationDex:()=>aa});var bs=require("@galacticcouncil/sdk-next"),xr=require("@galacticcouncil/common");var yr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:Cn}=bs.pool,{TradeRouteBuilder:zc,TradeRouter:$c}=bs.sor,{TxBuilderFactory:Jc}=bs.tx,aa=class{chain;client;poolCtx;txBuilder;getCtx=yr(async e=>{console.log("init swap router",e,"\u2705");let s=new $c(this.poolCtx);return s.withFilter({useOnly:[Cn.Aave,Cn.Omni,Cn.Stable,Cn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new je(this.chain),this.txBuilder=new Jc(s.client,s.evm)}async getCalldata(e,s,n,a,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),h=await l.getMostLiquidRoute(i,u),y=await l.getBuy(i,u,c,h);return(await(await this.txBuilder.trade(y).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(r,i),h=await c.getBuy(r,i,u,l);return{amount:h.amountIn,route:zc.build(h.swaps)}}catch(l){if(a)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!a)throw new Error(`No price found for asset ${e}`);let r=a*s,i=Math.pow(10,xr.RUNTIME_DECIMALS);return r/BigInt(i)}};var oa=require("@galacticcouncil/common"),ra=class{chain;client;constructor(e){this.chain=e,this.client=new pe(this.chain)}async getCalldata(e,s,n,a){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let a=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,oa.encodeLocation)(a),(0,oa.encodeLocation)(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var Cr=require("@galacticcouncil/xc-core");var gr=require("@galacticcouncil/xc-core");function kn(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new gr.Asset({key:[a,s,e].join("_"),originSymbol:n})}function Ar(t){let{decimals:e,id:s}=t;return{asset:kn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function wr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:kn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:a},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Tn=class extends Cr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!a(r)&&r.origin===1e3).forEach(r=>{let i=kn(r),u=Ar(r),c=wr(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,Wt(i)),this.updateChainRoute(s,Vt(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
1
+ "use strict";var kn=Object.defineProperty;var yr=Object.getOwnPropertyDescriptor;var xr=Object.getOwnPropertyNames;var gr=Object.prototype.hasOwnProperty;var Mt=(t,e)=>{for(var s in e)kn(t,s,{get:e[s],enumerable:!0})},Ar=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of xr(e))!gr.call(t,a)&&a!==s&&kn(t,a,{get:()=>e[a],enumerable:!(n=yr(e,a))||n.enumerable});return t};var wr=t=>Ar(kn({},"__esModule",{value:!0}),t);var Gc={};Mt(Gc,{HydrationConfigService:()=>wn,assetsMap:()=>oa,builders:()=>jn,chainsMap:()=>ya,clients:()=>Nn,dex:()=>aa,routesMap:()=>cr,tags:()=>zn,validations:()=>mr});module.exports=wr(Gc);var g=require("@galacticcouncil/xc-core"),Xe=new g.Asset({key:"aave",originSymbol:"AAVE"}),Ee=new g.Asset({key:"ajun",originSymbol:"AJUN"}),W=new g.Asset({key:"astr",originSymbol:"ASTR"}),I=new g.Asset({key:"bnc",originSymbol:"BNC"}),Tn=new g.Asset({key:"bsx",originSymbol:"BSX"}),Ie=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),he=new g.Asset({key:"cru",originSymbol:"CRU"}),be=new g.Asset({key:"dai",originSymbol:"DAI"}),ne=new g.Asset({...be,key:"dai_mwh"}),A=new g.Asset({key:"dot",originSymbol:"DOT"}),M=new g.Asset({key:"eth",originSymbol:"ETH"}),Re=new g.Asset({key:"ena",originSymbol:"ENA"}),v=new g.Asset({key:"glmr",originSymbol:"GLMR"}),J=new g.Asset({key:"hdx",originSymbol:"HDX"}),R=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),D=new g.Asset({key:"intr",originSymbol:"INTR"}),oe=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),X=new g.Asset({key:"ksm",originSymbol:"KSM"}),_e=new g.Asset({key:"ldo",originSymbol:"LDO"}),Se=new g.Asset({key:"laos",originSymbol:"LAOS"}),De=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),ye=new g.Asset({key:"ewt",originSymbol:"EWT"}),Le=new g.Asset({key:"link",originSymbol:"LINK"}),N=new g.Asset({key:"myth",originSymbol:"MYTH"}),He=new g.Asset({key:"neuro",originSymbol:"NEURO"}),xe=new g.Asset({key:"pen",originSymbol:"PEN"}),We=new g.Asset({key:"paxg",originSymbol:"PAXG"}),Me=new g.Asset({key:"sky",originSymbol:"SKY"}),$=new g.Asset({key:"sol",originSymbol:"SOL"}),re=new g.Asset({key:"sui",originSymbol:"SUI"}),Ve=new g.Asset({key:"susde",originSymbol:"sUSDe"}),$e=new g.Asset({key:"susds",originSymbol:"sUSDS"}),Ae=new g.Asset({...$e,key:"susds_mwh"}),Oe=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),Ke=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ue=new g.Asset({key:"unq",originSymbol:"UNQ"}),p=new g.Asset({key:"usdt",originSymbol:"USDT"}),we=new g.Asset({...p,key:"usdt_mwh"}),Bt=new g.Asset({...p,key:"usdt_eth"}),y=new g.Asset({key:"usdc",originSymbol:"USDC"}),Ce=new g.Asset({...y,key:"usdc_mwh"}),Pt=new g.Asset({...y,key:"usdc_eth"}),Q=new g.Asset({key:"vastr",originSymbol:"vASTR"}),V=new g.Asset({key:"vdot",originSymbol:"vDOT"}),Vt=new g.Asset({key:"weth",originSymbol:"WETH"}),te=new g.Asset({...Vt,key:"weth_mwh"}),Je=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),ke=new g.Asset({...Je,key:"wbtc_mwh"}),Ne=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),st=new g.Asset({key:"wud",originSymbol:"WUD"}),Cr=[Xe,Ee,W,Tn,Ie,he,I,be,ne,A,Re,M,v,J,R,D,X,_e,Se,De,ye,oe,Le,N,He,We,xe,Me,$,re,Ve,$e,Ae,Ke,Oe,Ue,y,Ce,Pt,p,we,Bt,Q,V,Je,ke,Vt,te,Ne,st],oa=new Map(Cr.map(t=>[t.key,t]));var ks=require("@galacticcouncil/xc-core");var ra=require("viem/chains"),_=new ks.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:M,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Xe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Ie,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Vt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:be,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Re,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ve,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:$e,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Oe,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Je,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:De,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:y,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:_e,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Le,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:We,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Me,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ke,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ne,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:ks.ChainEcosystem.Ethereum,evmChain:ra.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",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var ia=[_];var Ts=require("@galacticcouncil/xc-core");var Ot=new Ts.Parachain({assetsData:[{asset:Ee,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ts.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var ps=require("@galacticcouncil/xc-core");var ca={assetsData:[{asset:A,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:st,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:X,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:ps.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"]},C=new ps.Parachain({...ca,key:"assethub",name:"AssetHub Polkadot"}),ut=new ps.Parachain({...ca,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var vs=require("@galacticcouncil/xc-core");var se=new vs.Parachain({assetsData:[{asset:W,xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:p,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:vs.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Bs=require("@galacticcouncil/xc-core");var kr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],O=new Bs.Parachain({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:p,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,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:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Bs.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:kr});var Kt=require("@galacticcouncil/xc-core");var Ut=new Kt.Parachain({assetsData:[{asset:he,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Kt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesSdkCompat:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:Kt.XcmVersion.v3});var Fs=require("@galacticcouncil/xc-core"),ua=require("viem");var ma=require("@polkadot-api/substrate-bindings"),Tr="ETH\0",Ps=class{async toH160(e){let s=(0,ma.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Tr),r=n.slice(a.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var vr=new Ps,vn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://rpc.helikon.io/hydradx","https://hydration.ibp.network","https://rpc.cay.hydration.cloud","https://rpc.parm.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Bn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Br=(0,ua.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:vn,webSocket:Bn},default:{http:vn,webSocket:Bn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Fs.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Xe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Ee,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:I,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ie,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:he,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:ne,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:M,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Re,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:oe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ye,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:_e,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:X,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Se,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:De,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Le,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:We,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:He,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:xe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Me,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:$,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:re,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ve,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:$e,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ae,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Oe,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ke,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ue,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:y,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Ce,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Pt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:p,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:we,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Je,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ke,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Vt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:te,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ne,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:st,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Fs.ChainEcosystem.Polkadot,evmChain:Br,evmResolver:vr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Bn,rpcs:vn});var Xs=require("@galacticcouncil/xc-core");var Te=new Xs.Parachain({assetsData:[{asset:D,decimals:10,id:{Token:D.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:R,decimals:8,id:{Token:R.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:p,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:y,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:V,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Xs.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});var Es=require("@galacticcouncil/xc-core");var Nt=new Es.Parachain({assetsData:[{asset:Se,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Es.ChainEcosystem.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});var Is=require("@galacticcouncil/xc-core"),la=require("viem");var Pr=(0,la.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),F=new Is.EvmParachain({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ne,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:$,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:oe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Ae,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:re,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ce,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:we,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ke,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:te,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:A,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:y,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Is.ChainEcosystem.Polkadot,evmChain:Pr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});var Rs=require("@galacticcouncil/xc-core");var lt=new Rs.Parachain({assetsData:[{asset:N,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Rs.ChainEcosystem.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});var _s=require("@galacticcouncil/xc-core");var Gt=new _s.Parachain({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:_s.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 qt=require("@galacticcouncil/xc-core");var jt=new qt.Parachain({assetsData:[{asset:xe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesSdkCompat:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:qt.XcmVersion.v3});var Ss=require("@galacticcouncil/xc-core");var Fr={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ss.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"},da=new Ss.Parachain({...Fr,key:"polkadot"});var Ds=require("@galacticcouncil/xc-core");var zt=new Ds.Parachain({assetsData:[{asset:Ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ds.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var $t=require("@galacticcouncil/xc-core");var Jt=new $t.Parachain({assetsData:[{asset:ye,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:$t.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesSdkCompat:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:$t.XcmVersion.v3});var fa=[Ot,C,ut,se,O,Ut,d,Nt,Gt,Te,F,lt,jt,da,zt,Jt];var Ls=require("@galacticcouncil/xc-core");var Ft=new Ls.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:$,decimals:9},{asset:oe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:Ls.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 pa=[Ft];var Hs=require("@galacticcouncil/xc-core");var Qt=new Hs.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:re,decimals:9}],ecosystem:Hs.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var ha=[Qt];var Ws=require("@galacticcouncil/xc-core");var nt=new Ws.Parachain({assetsData:[{asset:X,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ws.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 Ms=require("@galacticcouncil/xc-core");var Yt=new Ms.Parachain({assetsData:[{asset:Tn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:X,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:p,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ms.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 ba=[nt,Yt];var Xr=[...ia,...fa,...pa,...ha,...ba],ya=new Map(Xr.map(t=>[t.key,t]));var St=require("@galacticcouncil/xc-core");var jn={};Mt(jn,{AssetMinBuilder:()=>dt,BalanceBuilder:()=>o,ContractBuilder:()=>S,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>rt,FeeAmountBuilder:()=>x,FeeAssetBuilder:()=>bs,MoveBuilder:()=>qn,ProgramBuilder:()=>$s,XcmTransferType:()=>me,XcmVersion:()=>ot});var Vs=require("@galacticcouncil/xc-core");function dt(){return{assetRegistry:Er,assets:Ir}}function Er(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Vs.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Vs.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Ir(){return{asset:()=>({build:({asset:t})=>new Vs.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var hs=require("@galacticcouncil/xc-core");function xa(){return{erc20:_r,native:Rr}}function Rr(){return{build:({address:t})=>new hs.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function _r(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new hs.ContractConfig({abi:hs.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var Zt=require("@galacticcouncil/xc-core"),es=require("@galacticcouncil/common");function ga(){return{assets:Sr,system:Lr,tokens:Hr,ormlTokens:Wr,foreignAssets:Dr}}function Sr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,es.encodeAssetId)(n);return new Zt.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Dr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let r=(0,es.encodeLocation)(a);return new Zt.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Lr(){return{account:()=>({build:({address:t})=>new Zt.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),a=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=a?n-a:0n}})})}}function Hr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,es.encodeAssetId)(n);return new Zt.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Wr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,es.encodeAssetId)(n);return new Zt.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}var Pn=require("@galacticcouncil/xc-core");function Aa(){return{native:Mr,token:Vr}}function Mr(){return{build:({address:t})=>new Pn.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Vr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Pn.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var wa=require("@galacticcouncil/xc-core");function Ca(){return{native:Or}}function Or(){return{build:({address:t})=>new wa.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:xa,substrate:ga,solana:Aa,sui:Ca}}var Xt=require("@galacticcouncil/xc-core"),ka=require("viem"),Kr=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],r=s.map(i=>(0,ka.encodeFunctionData)({abi:Xt.Abi[i.module],functionName:i.func,args:i.args}));return new Xt.ContractConfig({abi:Xt.Abi.Batch,address:Xt.Precompile.Batch,args:[n,a,r,[]],func:"batchAll",module:"Batch"})}}),Ta=()=>({batchAll:Kr});var ss=require("@galacticcouncil/xc-core");function ts(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function at(t){return typeof t=="object"?Object.values(t)[0]:t}function va(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:r}=e,i=r?r.chain:a.chain,u=ss.Wormhole.fromChain(i),c=i.getAssetId(n);return new ss.ContractConfig({abi:ss.Abi.Erc20,address:at(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}var Ge=require("@galacticcouncil/xc-core"),Pa=require("@galacticcouncil/common"),{Ss58Addr:Ba}=Ge.addr;function Ur(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 Fn(t,e){let s=t.getAssetId(e);return typeof s=="string"?Ur(s):s}function Fa(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Fn(a.chain,s);return new Ge.ContractConfig({abi:Ge.Abi.PolkadotXcm,address:Ge.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ba.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Fn(a.chain,s),i=Fn(a.chain,a.destinationFeeBalance),u=Pa.big.toBigInt(n.fee.amount,n.fee.decimals);return new Ge.ContractConfig({abi:Ge.Abi.PolkadotXcm,address:Ge.Precompile.PolkadotXcm,args:[n.chain.parachainId,Ba.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:u}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var ft=require("@galacticcouncil/xc-core");var{Ss58Addr:Nr}=ft.addr,Gr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r}=t,i=a.chain,u=r.chain,c=ft.Snowbridge.fromChain(i),l=i.getAssetId(n),h=at(l),b=n.originSymbol==="ETH",w=r.feeBreakdown.bridgeFeeInDot,T=r.fee.amount;return new ft.ContractConfig({abi:ft.Abi.Snowbridge,address:c.getGateway(),args:[h,u.parachainId,[1,Nr.getPubKey(e)],w,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),Xa=()=>({sendToken:Gr});var K=require("@galacticcouncil/xc-core"),Xn=require("@solana/web3.js"),Ea=require("@solana/spl-token");var qr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,destination:i}=e,u=K.Wormhole.fromChain(r.chain),c=K.Wormhole.fromChain(t.moonchain),l=K.Precompile.Bridge,h=r.chain.getAssetId(a),b=0,w=await K.mrl.createPayload(i.chain,s);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:u.getTokenBridge(),args:[at(h),n,c.getWormholeId(),c.normalizeAddress(l),b,w.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),jr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:r}=e,i=K.Wormhole.fromChain(a.chain),u=K.Wormhole.fromChain(t.moonchain),c=K.Precompile.Bridge,l=0,h=await K.mrl.createPayload(r.chain,s);return new K.ContractConfig({abi:K.Abi.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),l,h.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),zr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,u=i?i.chain:a.chain,c=r.chain,l=K.Wormhole.fromChain(u),h=K.Wormhole.fromChain(c),b=e;if(c.isSolana()){let U=c.getAssetId(n);b=(await(0,Ea.getAssociatedTokenAddress)(new Xn.PublicKey(U),new Xn.PublicKey(e))).toBase58()}let w=u.getAssetId(n),T=0,E=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:l.getTokenBridge(),args:[at(w),s,h.getWormholeId(),h.normalizeAddress(b),T,E],func:"transferTokens",module:"TokenBridge"})}}),$r=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,r=K.Wormhole.fromChain(n.chain),i=K.Wormhole.fromChain(a.chain),u=0,c=0;return new K.ContractConfig({abi:K.Abi.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Ia=()=>({transferTokens:zr,transferTokensWithPayload:qr,wrapAndTransferETH:$r,wrapAndTransferETHWithPayload:jr});var Et=require("@galacticcouncil/xc-core");var Jr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,u=i?i.chain:a.chain,c=r.chain,l=Et.Wormhole.fromChain(u),h=Et.Wormhole.fromChain(c),b=0,w=0,T=u.getAssetId(n);return new Et.ContractConfig({abi:Et.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[at(T),s,b,h.getWormholeId(),h.normalizeAddress(e),w],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ra=()=>({transferTokensWithRelay:Jr});function _a(){return{TokenBridge:Ia,TokenRelayer:Ra}}function S(){return{Batch:Ta,Erc20:va,PolkadotXcm:Fa,Snowbridge:Xa,Wormhole:_a}}var Da=require("@galacticcouncil/xc-core"),Sa="AssetConversion",Qr=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(u),b=i.amount+i.amount*BigInt(t.slippage)/100n,w=u.amount;return new Da.ExtrinsicConfig({module:Sa,func:e,getTx:T=>T.getUnsafeApi().tx[Sa][e]({path:[l,h],amount_out:w,amount_in_max:b,send_to:s,keep_alive:!0})})}}},La=()=>({swapTokensForExactTokens:Qr});var Os=require("@galacticcouncil/descriptors"),Ha=require("@galacticcouncil/xc-core"),Yr="Assets",Zr=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let r=a.chain,{fee:i}=a,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Ha.ExtrinsicConfig({module:Yr,func:t,getTx:l=>l.getTypedApi(Os.hub).tx.Assets.transfer({id:Number(c),target:Os.MultiAddress.Id(n),amount:u})})}}},Wa=()=>({transfer:Zr});var Va=require("@galacticcouncil/xc-core"),Ma="Balances",ei=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Va.ExtrinsicConfig({module:Ma,func:e,getTx:n=>n.getUnsafeApi().tx[Ma][e]({dest:s,keep_alive:t})})}},Oa=()=>({transferAll:ei});var Ka=require("@galacticcouncil/descriptors"),Ua=require("@galacticcouncil/xc-core"),ti="Router",si=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=a,c=n,l=c.getMetadataAssetId(r),h=c.getMetadataAssetId(i),b=i.amount,w=r.amount+r.amount*BigInt(t.slippage)/100n;return new Ua.ExtrinsicConfig({module:ti,func:"buy",getTx:T=>T.getTypedApi(Ka.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:b,max_amount_in:w,route:u})})}}),Na=()=>({buy:si});var qa=require("@galacticcouncil/xc-core"),Ga="Utility",ni=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new qa.ExtrinsicConfig({module:Ga,func:e,getTx:a=>{let r=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Ga][e]({calls:r})}})}}},ja=()=>({batchAll:ni});var Ks=require("@galacticcouncil/xc-core"),En=require("polkadot-api"),$a=require("viem");var ot=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(ot||{}),me=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(me||{});var za="EthereumXcm",ai=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",r=(0,$a.encodeFunctionData)({abi:Ks.Abi[n.module],functionName:n.func,args:n.args});return new Ks.ExtrinsicConfig({module:za,func:e,getTx:i=>i.getUnsafeApi().tx[za][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:En.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:En.Binary.fromHex(r),access_list:void 0}}})})}}},In=()=>({transact:ai});var ht=require("@galacticcouncil/xc-core"),qs=require("@galacticcouncil/common");var as=require("@galacticcouncil/xc-core"),bo=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var Ja=require("@galacticcouncil/descriptors"),ue=340282366920938463463374607431768211455n,It="0x0000000000000000000000000000000000000000000000000000000000000000",ns={parents:1,interior:Ja.XcmV3Junctions.Here()},Qa=0,Ya=1e3,Za=1002,eo=1,Rt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var to="0x0000000000000000000000000000000000000000";var Y=require("@galacticcouncil/descriptors"),uo=require("polkadot-api");var so=require("@galacticcouncil/xc-core"),Rn=require("@galacticcouncil/descriptors"),_n=require("polkadot-api"),no=require("@polkadot-api/substrate-bindings"),ao=require("@polkadot-api/utils");function q(t){if(t.length===42&&t.startsWith("0x"))return Rn.XcmV3Junction.AccountKey20({key:_n.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,no.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Rn.XcmV3Junction.AccountId32({id:_n.FixedSizeBinary.fromHex((0,ao.toHex)(s.publicKey)),network:void 0})}function Us(t,e,s){return so.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Sn=require("@galacticcouncil/xc-core");function oo(t,e){let s=Sn.multiloc.findNestedKey(t,"GeneralIndex"),n=Sn.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(r)?!1:Number(a)>Number(r)}function j(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Ns={};Mt(Ns,{ETHER_TOKEN_ADDRESS:()=>Ln,erc20Location:()=>ri,erc20LocationReanchored:()=>ii,ethereumLocation:()=>io,parachainLocation:()=>oi});var ve=require("@galacticcouncil/descriptors"),Dn=require("polkadot-api"),Ln="0x0000000000000000000000000000000000000000",ro=t=>ve.XcmV3Junction.GlobalConsensus(ve.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function io(t){return{parents:2,interior:ve.XcmV3Junctions.X1(ro(t))}}function oi(t){return{parents:1,interior:ve.XcmV3Junctions.X1(ve.XcmV3Junction.Parachain(t))}}function ri(t,e){return e===Ln?io(t):{parents:2,interior:ve.XcmV3Junctions.X2([ro(t),ve.XcmV3Junction.AccountKey20({key:Dn.Binary.fromHex(e)})])}}function ii(t){return t===Ln?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ve.XcmV3Junctions.X1(ve.XcmV3Junction.AccountKey20({key:Dn.Binary.fromHex(t)}))}}var Hn=require("@galacticcouncil/common"),co=require("@galacticcouncil/xc-core");function z(t,e){return ci(e)>=4?(0,Hn.encodeLocation)(t):mi(t)}function ci(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function mi(t){return{type:"Concrete",value:(0,Hn.encodeLocation)(t)}}var ui=1e3;function li(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(a=>a&&typeof a=="object"&&"GlobalConsensus"in a):!1}function di(t){if(t)return li(t)?ui:co.multiloc.findParachain(t)}function mo(t,e,s,n){let a=e.getAssetXcmLocation(t),r=di(a),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function Wn(t,e){let s="V4",n=z(j(e,t),s),a=uo.Binary.fromHex(It);return[Y.XcmV4Instruction.ReserveAssetDeposited([{id:ns,fun:Y.XcmV3MultiassetFungibility.Fungible(ue)},{id:n,fun:Y.XcmV3MultiassetFungibility.Fungible(ue)}]),Y.XcmV4Instruction.ClearOrigin(),Y.XcmV4Instruction.BuyExecution({fees:{id:ns,fun:Y.XcmV3MultiassetFungibility.Fungible(ue)},weight_limit:Y.XcmV3WeightLimit.Unlimited()}),Y.XcmV4Instruction.DepositAsset({assets:Y.XcmV4AssetAssetFilter.Wild(Y.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:Y.XcmV3Junctions.X1(q(Rt))}}),Y.XcmV4Instruction.SetTopic(a)]}var Qe=require("@galacticcouncil/descriptors");function lo(t,e){let s="V4",n=z(j(e,t),s),a=Gs("V4",q(to),q(Rt),n,It);return[Qe.XcmV4Instruction.WithdrawAsset([{id:ns,fun:Qe.XcmV3MultiassetFungibility.Fungible(ue)},{id:n,fun:Qe.XcmV3MultiassetFungibility.Fungible(ue)}]),Qe.XcmV4Instruction.ClearOrigin(),Qe.XcmV4Instruction.BuyExecution({fees:{id:ns,fun:Qe.XcmV3MultiassetFungibility.Fungible(ue)},weight_limit:Qe.XcmV3WeightLimit.Unlimited()}),...a.value]}var B=require("@galacticcouncil/descriptors"),Mn=require("polkadot-api");function fo(t,e){let s="V4",n=z(j(e,t),s),a=Mn.Binary.fromHex(It);return[B.XcmV4Instruction.WithdrawAsset([{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(ue)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(ue)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(q(Rt))}}),B.XcmV4Instruction.SetTopic(a)]}function Vn(t,e){let s="V4",n=z(j(e,t),s);return[B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(ue)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(q(Rt))}})]}function po(t,e,s){let n="V4",a=z(j(e,t),n),r=Mn.Binary.fromHex(It),i=Vn(t,s);return[B.XcmV4Instruction.WithdrawAsset([{id:a,fun:B.XcmV3MultiassetFungibility.Fungible(ue)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:a,fun:B.XcmV3MultiassetFungibility.Fungible(ue)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositReserveAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:B.XcmV3Junctions.X1(B.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),B.XcmV4Instruction.SetTopic(r)]}var ho=[as.ChainEcosystem.Polkadot,as.ChainEcosystem.Kusama],fi={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},pi=t=>t.parents===1&&t.interior==="Here",hi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:ho.includes(t.ecosystem)&&ho.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,yo=t=>{let{interior:e}=t;return e.type==="X1"&&e.value.type==="GlobalConsensus"?e.value.value.type==="Ethereum":!1},Ye=(t,e,s)=>{if(hi(e,s)){let a=s.ecosystem===as.ChainEcosystem.Polkadot?f.XcmV3JunctionNetworkId.Polkadot():f.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:f.XcmV3Junctions.X2([f.XcmV3Junction.GlobalConsensus(a),f.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===Qa)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Ya:s.parachainId;return{type:t,value:{parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(n))}}},_t=(t,e)=>({type:t,value:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),On=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:pi(s)?fi:s}}:{type:e},pt=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),xo=(t,e,s)=>({type:t,value:[f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var Gs=(t,e,s,n,a)=>{let r=bo.Binary.fromHex(a);return{type:t,value:[f.XcmV4Instruction.SetAppendix([f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(s)}})]),f.XcmV4Instruction.InitiateReserveWithdraw({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllOf({id:n,fun:f.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Ns.ethereumLocation(eo),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:bi(n),fun:f.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),f.XcmV4Instruction.SetTopic(r)]}),f.XcmV4Instruction.SetTopic(r)]}},bi=t=>{let e=as.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},go=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.Transact({origin_kind:f.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:a}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]}),Ao=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(r)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var le="PolkadotXcm",yi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=q(t),i=a.chain,u=n.chain,c="V4",l=z(j(i,s),c),h=z(j(i,n.fee),c),b=pt(l,e),w=pt(h,n.fee.amount),T="limited_reserve_transfer_assets";return new ht.ExtrinsicConfig({module:le,func:T,getTx:E=>{let U=E.getUnsafeApi().tx[le][T];return s.key===n.fee.key?U({dest:Ye(c,i,u),beneficiary:_t(c,r),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):oo(l,h)?U({dest:Ye(c,i,u),beneficiary:_t(c,r),assets:{type:c,value:[w,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):U({dest:Ye(c,i,u),beneficiary:_t(c,r),assets:{type:c,value:[b,w]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=q(t),i=a.chain,u=n.chain,c="V4",l=z(j(i,s),c),h=pt(l,e),b=Ye(c,i,u),w=_t(c,r),T={type:c,value:[h]},E="limited_teleport_assets";return new ht.ExtrinsicConfig({module:le,func:E,getTx:U=>U.getUnsafeApi().tx[le][E]({dest:b,beneficiary:w,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=q(t),i=a.chain,u=n.chain,c=i.xcmVersion??"V4",l=z(j(i,s),c),h=pt(l,e),b=Ye(c,i,u),w=_t(c,r),T={type:c,value:[h]},E="reserve_transfer_assets";return new ht.ExtrinsicConfig({module:le,func:E,getTx:U=>U.getUnsafeApi().tx[le][E]({dest:b,beneficiary:w,assets:T,fee_asset_item:0})})}}),Ai=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=q(t),i=a.chain,u=n.chain,c="V4",l=z(j(i,s),c),h=pt(l,e),b=Ye(c,i,u),w=_t(c,r),T={type:c,value:[h]},E="transfer_assets";return new ht.ExtrinsicConfig({module:le,func:E,getTx:U=>U.getUnsafeApi().tx[le][E]({dest:b,beneficiary:w,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),wi=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:r,sender:i,source:u,transact:c})=>{let l="V4",h=u.chain,b=a.chain,w=a.fee.amount,T=a.fee;c&&(b=c.chain,w=qs.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let E=q(i),U=c||b.usesCexForwarding?Us(h,i,b):e,H=q(U),{transferType:ee}=t,G=z(j(h,s),l),k=z(j(h,T),l),ze=pt(G,n),vt=pt(k,w),et=s.isEqual(T),ct=Ye(l,h,b),tt={type:l,value:et?[ze]:[vt,ze]},mt=On(l,ee,G),fs={type:l,value:et?G:k},Cn=On(l,ee,k),Wt;yo(G)?Wt=Gs(l,H,E,G,r):Wt=xo(l,H,tt.value.length);let Cs="transfer_assets_using_type_and_then";return new ht.ExtrinsicConfig({module:le,func:Cs,getTx:br=>br.getUnsafeApi().tx[le][Cs]({dest:ct,assets:tt,assets_transfer_type:mt,remote_fees_id:fs,fees_transfer_type:Cn,custom_xcm_on_dest:Wt,weight_limit:{type:"Unlimited"}})})}}),Ci=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=a.chain,c=r.chain,l=Us(u,n,c),h=q(l),{fee:b}=r,w=z(j(c,b),i),T=qs.big.toBigInt(e.fee,b.decimals);return new ht.ExtrinsicConfig({module:le,func:t,getTx:E=>E.getUnsafeApi().tx[le][t]({dest:Ye(i,u,c),message:go(i,h,w,T,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:r,sender:i,source:u,destination:c}=s,l="V4",h=u.chain,b=c.chain,w=Us(h,i,b),T=q(w),E=q(a),U=z(j(b,r),l),{fee:H}=c,ee=qs.big.toBigInt(e.fee,H.decimals),G=n>H.amount?n-(H.amount+ee):n;return new ht.ExtrinsicConfig({module:le,func:t,getTx:k=>k.getUnsafeApi().tx[le][t]({dest:Ye(l,h,b),message:Ao(l,T,U,G,ee,E)})})}})}},Kn=()=>({limitedReserveTransferAssets:yi,limitedTeleportAssets:xi,reserveTransferAssets:gi,transferAssets:Ai,transferAssetsUsingTypeAndThen:wi,send:Ci});var To=require("@galacticcouncil/xc-core");var os=require("@galacticcouncil/descriptors"),wo=(t,e)=>({parents:1,interior:os.XcmV3Junctions.X2([os.XcmV3Junction.Parachain(t.parachainId),e])}),Co=(t,e)=>({id:t,fun:os.XcmV3MultiassetFungibility.Fungible(e)});var ko="XTransfer",ki=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r="V3",i=q(t),u=a.chain,c=n.chain,l=z(j(u,s),r),h=Co(l,e),b=wo(c,i),w="transfer";return new To.ExtrinsicConfig({module:ko,func:w,getTx:T=>T.getUnsafeApi().tx[ko][w]([h,b,{refTime:5e9,proofSize:0}])})}}),Un=()=>({transfer:ki});function m(){return{assetConversion:La,assets:Wa,balances:Oa,ethereumXcm:In,polkadotXcm:Kn,router:Na,utility:ja,xTransfer:Un}}function rt(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}var bt=require("@galacticcouncil/xc-core");var Nn={};Mt(Nn,{AssethubClient:()=>de,BaseClient:()=>Be,HydrationClient:()=>qe});var vo=require("@galacticcouncil/common"),js=require("@galacticcouncil/descriptors"),Be=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??js.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(s);if(!a)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=(0,vo.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,js.XcmVersionedAssetId.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var rs=require("@galacticcouncil/descriptors"),Bo=require("@galacticcouncil/common"),zs=require("@polkadot-api/substrate-bindings"),Po=require("@polkadot-api/utils");var de=class extends Be{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=(0,Bo.encodeLocation)(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(n),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,Po.toHex)((0,zs.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let r=zs.u128.dec(a);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=rs.XcmVersionedLocation.V5({parents:1,interior:rs.XcmV5Junctions.X1(rs.XcmV5Junction.Parachain(s))}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var Fo=require("@galacticcouncil/descriptors");var qe=class extends Be{constructor(e){super(e,Fo.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),a=await this.api().query.AssetRegistry.Assets.getValue(n);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=a;return BigInt(r)-BigInt(i)}};function Ti(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,r=bt.Wormhole.fromChain(n),i=bt.Wormhole.fromChain(a),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:bt.Abi.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function vi(){return{TokenRelayer:Ti}}function Bi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,r=s,i=bt.Snowbridge.fromChain(a),u=new Be(r),c=new de(t.hub),l=Wn(e,r),[h,b]=await Promise.all([u.calculateDestinationFee(l,A),c.calculateDeliveryFee(l,r.parachainId)]),w=b+ts(h,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:bt.Abi.Snowbridge,address:i.getGateway(),args:[T,r.parachainId,w],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:w}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,r=new de(t.hub),i=lo(e,a),u=Wn(e,a),[c,l,h,b,w]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,Za),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,a.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+l+ts(h,25n)+b+ts(w,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:w}}}})}}function Pi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,r=n,i=t?.reserve;if(mo(e,a,r,i),i){let w=new Be(r),T=new Be(i),E=Vn(e,r),U=po(e,i,r),[H,ee]=await Promise.all([w.calculateDestinationFee(E,e),T.calculateDestinationFee(U,e)]),G=ee+H,k=ts(G,20n),ze=k-G;return{amount:k,breakdown:{reserveFee:ee,destinationFee:H,margin:ze}}}let u=new Be(r),c=fo(e,r),l=await u.calculateDestinationFee(c,e),h=ts(l,20n),b=h-l;return{amount:h,breakdown:{totalFee:l,margin:b}}}})}}function x(){return{XcmPaymentApi:Pi,Snowbridge:Bi,Wormhole:vi}}var Fi="0";function Xi(){return{build:async({address:t,chain:e})=>{let n=await new qe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Fi,r=e.findAssetById(a);return r?r.asset:J}}}var Ei=()=>({accountCurrencyMap:Xi});function bs(){return{multiTransactionPayment:Ei}}var fe=require("@galacticcouncil/xc-core"),ie=require("@solana/spl-token"),je=require("@solana/web3.js"),Gn=require("@wormhole-foundation/sdk-connect"),yt=require("@wormhole-foundation/sdk-solana-tokenbridge"),Ii=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,u=a.chain,c=u,l=fe.Wormhole.fromChain(u),h=fe.Wormhole.fromChain(t.moonchain),b=fe.Precompile.Bridge,w=await fe.mrl.createPayload(i.chain,s),T=new je.PublicKey(r),E=new Gn.UniversalAddress(b),U=h.getWormholeId(),H=T,ee=0,G=je.Keypair.generate(),k=je.Keypair.generate(),ze=await(0,ie.getMinimumBalanceForRentExemptAccount)(c.connection),vt=je.SystemProgram.createAccount({fromPubkey:H,newAccountPubkey:k.publicKey,lamports:ze,space:ie.ACCOUNT_SIZE,programId:ie.TOKEN_PROGRAM_ID}),et=je.SystemProgram.transfer({fromPubkey:H,lamports:n,toPubkey:k.publicKey}),ct=(0,ie.createInitializeAccountInstruction)(k.publicKey,ie.NATIVE_MINT,H),tt=(0,yt.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),k.publicKey,H,n),mt=(0,yt.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,G.publicKey,k.publicKey,ie.NATIVE_MINT,ee,n,E.toUint8Array(),U,w.toU8a()),fs=(0,ie.createCloseAccountInstruction)(k.publicKey,H,H);return new fe.ProgramConfig({instructions:[vt,et,ct,tt,mt,fs],signers:[G,k],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(ze)})}})}),Ri=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,sender:i,destination:u}=e,c=r.chain,l=c,h=fe.Wormhole.fromChain(c),b=fe.Wormhole.fromChain(t.moonchain),w=fe.Precompile.Bridge,T=await fe.mrl.createPayload(u.chain,s),E=new je.PublicKey(i),U=r.chain.getAssetId(a),H=new je.PublicKey(U),ee=await(0,ie.getAssociatedTokenAddress)(H,E),G=new Gn.UniversalAddress(w),k=b.getWormholeId();if(await(0,yt.getWrappedMeta)(l.connection,h.getTokenBridge(),H).catch(mt=>null).then(mt=>mt!=null))throw new Error("Wrapped assets not supported yet");let vt=0,et=je.Keypair.generate(),ct=(0,yt.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),ee,E,n),tt=(0,yt.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,et.publicKey,ee,H,vt,n,G.toUint8Array(),k,T.toU8a());return new fe.ProgramConfig({instructions:[ct,tt],signers:[et],func:"TransferWithPayload",module:"TokenBridge"})}})}),Xo=()=>({transferNativeWithPayload:Ii,transferTokenWithPayload:Ri});function Eo(){return{TokenBridge:Xo}}function $s(){return{Wormhole:Eo}}var it=require("@galacticcouncil/xc-core"),Io=require("@mysten/sui/transactions"),Js=require("@mysten/sui/utils"),Ro=require("@wormhole-foundation/sdk-connect"),ys=require("@wormhole-foundation/sdk-sui"),_i=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,u=a.chain,c=u,l=it.Wormhole.fromChain(u),h=it.Wormhole.fromChain(t.moonchain),b=0,w=it.Precompile.Bridge,T=await it.mrl.createPayload(i.chain,s),E=new Ro.UniversalAddress(w),U=h.getWormholeId(),H=Js.SUI_TYPE_ARG,[ee,G]=await Promise.all([(0,ys.getPackageId)(c.client,l.coreBridge),(0,ys.getPackageId)(c.client,l.tokenBridge)]),k=new Io.Transaction,[ze]=k.splitCoins(k.gas,[k.pure.u64(n)]),[vt]=k.splitCoins(k.gas,[k.pure.u64(i.fee.amount)]),[et]=k.moveCall({target:`${G}::state::verified_asset`,arguments:[k.object(l.tokenBridge)],typeArguments:[H]}),ct=!1,tt=await(async()=>{let Wt=await(0,ys.getOldestEmitterCapObjectId)(c.client,ee,r);if(Wt!==null)return k.object(Wt);{let[Cs]=k.moveCall({target:`${ee}::emitter::new`,arguments:[k.object(l.coreBridge)]});return ct=!0,Cs}})(),[mt,fs]=k.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[tt,et,ze,k.pure.u16(U),k.pure.vector("u8",E.toUint8Array()),k.pure.vector("u8",T.toU8a()),k.pure.u32(b)],typeArguments:[H]});k.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[fs],typeArguments:[H]});let[Cn]=k.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[k.object(l.tokenBridge),mt],typeArguments:[H]});return k.moveCall({target:`${ee}::publish_message::publish_message`,arguments:[k.object(l.coreBridge),vt,Cn,k.object(Js.SUI_CLOCK_OBJECT_ID)]}),ct&&k.transferObjects([tt],k.pure.address(r)),new it.MoveConfig({transaction:k,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),_o=()=>({transferNativeWithPayload:_i});function So(){return{TokenBridge:_o}}function qn(){return{Wormhole:So}}var zn={};Mt(zn,{Tag:()=>xt});var xt=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(xt||{});var $n=require("@galacticcouncil/xc-core");function is(t,e){return new $n.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:S().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})}function ce(t,e){return new $n.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:x().Snowbridge().calculateInboundFee({hub:C}),asset:M}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Si=[new St.AssetRoute({source:{asset:M,balance:o().evm().native(),destinationFee:{asset:M,balance:o().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]}),is(be,ne),is(Je,ke),is(y,Ce),is(p,we),is($e,Ae)],Di=[new St.AssetRoute({source:{asset:M,balance:o().evm().native(),fee:{asset:M,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:M,fee:{amount:x().Snowbridge().calculateInboundFee({hub:C}),asset:M}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]}),ce(Xe,Xe),ce(Ie,Ie),ce(Re,Re),ce(We,We),ce(Ve,Ve),ce(Oe,Oe),ce(De,De),ce(_e,_e),ce(Le,Le),ce(Me,Me),ce(Ke,Ke),ce(Ne,Ne),ce(y,Pt),ce(p,Bt)],uf=[new St.AssetRoute({source:{asset:M,balance:o().evm().native(),destinationFee:{asset:M,balance:o().evm().erc20()}},destination:{chain:F,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new St.AssetRoute({source:{asset:be,balance:o().evm().erc20(),fee:{asset:M,balance:o().evm().native()},destinationFee:{asset:be,balance:o().evm().erc20()}},destination:{chain:F,asset:ne,fee:{amount:0,asset:ne}},contract:S().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Do=new St.ChainRoutes({chain:_,routes:[...Si,...Di]});var Lo=[Do];var gt=require("@galacticcouncil/xc-core");var Qs=require("@galacticcouncil/xc-core");var Dt=0,Li=t=>{let{source:e}=t;return!!e.feeSwap},Hi=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Ho=m().assetConversion().swapTokensForExactTokens({slippage:30});function Wi(t,e,s){return new Qs.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:rt(Hi,Ho).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Ys(t,e,s){return new Qs.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:rt(Li,Ho).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Lt(t,e,s){return new Qs.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Zs(t){return Wi(t,d,.02)}var Mi=[new gt.AssetRoute({source:{asset:A,balance:o().substrate().system().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().system().account()},min:dt().assets().asset()},destination:{chain:d,asset:A,fee:{amount:.001,asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new gt.AssetRoute({source:{asset:X,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:X,fee:{amount:1e-4,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lt(p,d,.02),Lt(y,d,.02),Zs(st)],Vi=[new gt.AssetRoute({source:{asset:X,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:nt,asset:X,fee:{amount:.001,asset:X}},extrinsic:m().polkadotXcm().transferAssets()})],Oi=[Lt(p,F,.25),Lt(y,F,.25)],Ki=[Lt(p,O,.03),Lt(y,O,.03)],Ui=[new gt.AssetRoute({source:{asset:N,balance:o().substrate().foreignAssets().account(),fee:{asset:A,balance:o().substrate().system().account(),extra:Dt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Wo=new gt.ChainRoutes({chain:ut,routes:[Ys(p,d,.02),Ys(y,d,.02),Ys(A,d,.001)]}),Mo=new gt.ChainRoutes({chain:C,routes:[...Mi,...Vi,...Oi,...Ki,...Ui]});var Pe=require("@galacticcouncil/xc-core");var Ni=[new Pe.AssetRoute({source:{asset:W,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:W,fee:{amount:.044306118,asset:W}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new Pe.AssetRoute({source:{asset:I,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:O}),asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:v,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:F}),asset:v}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:R,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:D,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:D,fee:{amount:.01,asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:V,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:O}),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:Q,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:Q,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:O}),asset:Q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:p,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:y,balance:o().substrate().assets().account(),fee:{asset:W,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:y,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Vo=new Pe.ChainRoutes({chain:se,routes:[...Ni]});var pe=require("@galacticcouncil/xc-core");var Gi=[new pe.AssetRoute({source:{asset:I,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:I,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:V,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:Q,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:Q,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:A,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new pe.AssetRoute({source:{asset:W,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:se}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:v,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:F}),asset:v}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:R,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:y,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:y,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],qi=[new pe.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new pe.AssetRoute({source:{asset:y,balance:o().substrate().tokens().accounts(),fee:{asset:I,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:y,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Oo=new pe.ChainRoutes({chain:O,routes:[...Gi,...qi]});var ge=require("@galacticcouncil/xc-core");var ji="0",P=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===ji?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),Z=()=>({asset:bs().multiTransactionPayment().accountCurrencyMap(),balance:P()});var Ht=require("@galacticcouncil/xc-core");var zi=.9,$i=1,Ji=1,en=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},tn=m().router().buy({slippage:30});function L(t,e,s){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:x().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function At(t,e){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function sn(t){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:C,asset:t,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:rt(en,tn).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Qi(t,e,s="LocalReserve"){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:e,asset:t,fee:{amount:Ji,asset:v}},extrinsic:rt(en,tn).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function wt(t){return Qi(t,F,"DestinationReserve")}function Ko(t,e,s,n,a,r){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{asset:t,balance:P()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:rt(en,tn).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:zi})]),transact:{chain:F,fee:{amount:$i,asset:v,balance:P()},extrinsic:m().ethereumXcm().transact(a)},tags:r})}function Jn(t,e,s){return Ko(t,e,s,0,S().Batch().batchAll([S().Erc20().approve(n=>n.getTokenBridge()),S().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Ct(t,e,s){return Ko(t,e,s,x().Wormhole().TokenRelayer().calculateRelayerFee(),S().Batch().batchAll([S().Erc20().approve(n=>n.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function ae(t,e,s){return new Ht.AssetRoute({source:{asset:t,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:s,asset:e,fee:{amount:x().Snowbridge().calculateOutboundFee({hub:C}),asset:A}},extrinsic:rt(en,tn).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Yi=[At(A,C),At(X,C),At(p,C),At(y,C),sn(st)],Zi=[L(W,se),L(I,se,O),L(v,se,F),new ge.AssetRoute({source:{asset:R,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:se,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ge.AssetRoute({source:{asset:D,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:se,asset:D,fee:{amount:.01,asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),L(V,se,O),L(Q,se,O),L(p,se,C),L(y,se,C)],ec=[L(I,O),L(V,O),L(Q,O),L(W,O,se),L(v,O,F),new ge.AssetRoute({source:{asset:R,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:O,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),L(p,O,C),L(y,O,C),new ge.AssetRoute({source:{asset:A,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:O,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],tc=[L(R,Te),L(D,Te),L(J,Te),L(p,Te,C),L(y,Te,C),new ge.AssetRoute({source:{asset:V,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:Te,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ge.AssetRoute({source:{asset:A,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:Te,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],sc=[L(J,F),L(v,F),L(p,F,C),L(y,F,C),wt(ne),wt(Ae),wt(Ce),wt(we),wt(ke),wt(te),wt($)],nc=[new ge.AssetRoute({source:{asset:N,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],ac=[L(Ue,zt)],oc=[new ge.AssetRoute({source:{asset:he,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:Ut,asset:he,fee:{amount:.04,asset:he}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],rc=[L(Se,Nt)],ic=[new ge.AssetRoute({source:{asset:ye,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:Jt,asset:ye,fee:{amount:.02,asset:ye}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],cc=[new ge.AssetRoute({source:{asset:xe,balance:P(),fee:Z(),destinationFee:{balance:P()}},destination:{chain:jt,asset:xe,fee:{amount:1.1,asset:xe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],mc=[L(He,Gt)],uc=[L(Ee,Ot)],lc=[Ct(ne,be,_),Ct(te,M,_),Ct(ke,Je,_),Ct(we,p,_),Ct(Ce,y,_),Jn(Ae,$e,_)],dc=[ae(M,M,_),ae(Xe,Xe,_),ae(Ie,Ie,_),ae(Re,Re,_),ae(We,We,_),ae(Ve,Ve,_),ae(Oe,Oe,_),ae(Ke,Ke,_),ae(De,De,_),ae(_e,_e,_),ae(Le,Le,_),ae(Me,Me,_),ae(Ne,Ne,_),ae(Pt,y,_),ae(Bt,p,_)],fc=[Ct($,$,Ft),Jn(oe,oe,Ft)],pc=[Ct(re,re,Qt)],hc=[At(A,ut),At(p,ut),At(y,ut)],Uo=new ge.ChainRoutes({chain:d,routes:[...uc,...Yi,...Zi,...ec,...hc,...oc,...dc,...lc,...tc,...rc,...ic,...sc,...nc,...mc,...cc,...fc,...pc,...ac]});var Ze=require("@galacticcouncil/xc-core");var bc=[new Ze.AssetRoute({source:{asset:D,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:D,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:R,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:J,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:V,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:V,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:O}),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:y,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:y,fee:{amount:x().XcmPaymentApi().calculateDestFee({reserve:C}),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ze.AssetRoute({source:{asset:A,balance:o().substrate().tokens().accounts(),fee:{asset:D,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:A,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],No=new Ze.ChainRoutes({chain:Te,routes:[...bc]});var Tt=require("@galacticcouncil/xc-core");var Qn=require("@galacticcouncil/xc-core");function yc(t,e,s){return new Qn.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function xc(t,e,s){return new Qn.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:v,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function kt(t,e){return yc(t,d,e)}function nn(t,e){return xc(t,d,e)}var gc=[new Tt.AssetRoute({source:{asset:v,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:S().PolkadotXcm().transferAssetsToPara32()}),nn(J,.6),nn(p,.3),nn(y,.3),kt(ne,.004),kt(Ae,.004),kt(Ce,.004),kt(we,.004),kt(ke,1e-7),kt(te,2e-6),kt($,2e-5)],Ac=[new Tt.AssetRoute({source:{asset:p,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:p,fee:{amount:.18,asset:p}},contract:S().PolkadotXcm().transferAssetsToPara32()}),new Tt.AssetRoute({source:{asset:y,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:y,fee:{amount:.18,asset:y}},contract:S().PolkadotXcm().transferAssetsToPara32()})],hp=[new Tt.AssetRoute({source:{asset:te,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{asset:te,balance:o().evm().erc20()}},destination:{chain:_,asset:M,fee:{amount:x().Wormhole().TokenRelayer().calculateRelayerFee(),asset:M}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Tt.AssetRoute({source:{asset:ne,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{asset:ne,balance:o().evm().erc20()}},destination:{chain:_,asset:be,fee:{amount:x().Wormhole().TokenRelayer().calculateRelayerFee(),asset:be}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Go=new Tt.ChainRoutes({chain:F,routes:[...gc,...Ac]});var xs=require("@galacticcouncil/xc-core");var wc=[new xs.AssetRoute({source:{asset:N,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:N,fee:{amount:.01,asset:N}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Cc=[new xs.AssetRoute({source:{asset:N,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:N,fee:{amount:.1,asset:N}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],qo=new xs.ChainRoutes({chain:lt,routes:[...wc,...Cc]});var an=require("@galacticcouncil/xc-core");var kc=[new an.AssetRoute({source:{asset:Ue,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ue,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],jo=new an.ChainRoutes({chain:zt,routes:[...kc]});var on=require("@galacticcouncil/xc-core");var Tc=[new on.AssetRoute({source:{asset:he,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:he,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:he}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],zo=new on.ChainRoutes({chain:Ut,routes:[...Tc]});var rn=require("@galacticcouncil/xc-core");var vc=[new rn.AssetRoute({source:{asset:xe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:xe,fee:{amount:.2,asset:xe}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],$o=new rn.ChainRoutes({chain:jt,routes:[...vc]});var cn=require("@galacticcouncil/xc-core");var Bc=[new cn.AssetRoute({source:{asset:Ee,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ee,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:Ee}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Jo=new cn.ChainRoutes({chain:Ot,routes:[...Bc]});var mn=require("@galacticcouncil/xc-core");var Pc=[new mn.AssetRoute({source:{asset:Se,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Se,fee:{amount:2,asset:Se}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Qo=new mn.ChainRoutes({chain:Nt,routes:[...Pc]});var un=require("@galacticcouncil/xc-core");var Fc=[new un.AssetRoute({source:{asset:ye,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ye,fee:{amount:.03,asset:ye}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Yo=new un.ChainRoutes({chain:Jt,routes:[...Fc]});var ln=require("@galacticcouncil/xc-core");var Xc=[new ln.AssetRoute({source:{asset:He,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:He,fee:{amount:.205,asset:He}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Zo=new ln.ChainRoutes({chain:Gt,routes:[...Xc]});var er=[Jo,Mo,Wo,Vo,Oo,Uo,No,Go,qo,Zo,jo,zo,$o,Qo,Yo];var gs=require("@galacticcouncil/xc-core");var Ec=[new gs.AssetRoute({source:{asset:$,balance:o().solana().native(),destinationFee:{asset:$,balance:o().solana().native()}},destination:{chain:d,asset:$,fee:{amount:0,asset:$}},program:$s().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]}),new gs.AssetRoute({source:{asset:oe,balance:o().solana().token(),fee:{asset:$,balance:o().solana().native()},destinationFee:{asset:oe,balance:o().solana().token()}},destination:{chain:d,asset:oe,fee:{amount:0,asset:oe}},program:$s().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})],tr=new gs.ChainRoutes({chain:Ft,routes:[...Ec]});var sr=[tr];var dn=require("@galacticcouncil/xc-core");var Ic=[new dn.AssetRoute({source:{asset:re,balance:o().sui().native(),destinationFee:{asset:re,balance:o().sui().native()}},destination:{chain:d,asset:re,fee:{amount:0,asset:re}},move:qn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:F}),tags:["Mrl","Wormhole"]})],nr=new dn.ChainRoutes({chain:Qt,routes:[...Ic]});var ar=[nr];var As=require("@galacticcouncil/xc-core");var Rc=require("@galacticcouncil/xc-core");var Yn=0;var _c=new As.AssetRoute({source:{asset:X,balance:o().substrate().system().account(),fee:{asset:X,balance:o().substrate().system().account(),extra:Yn},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:X,fee:{amount:.002,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Sc=new As.AssetRoute({source:{asset:X,balance:o().substrate().system().account(),fee:{asset:X,balance:o().substrate().system().account(),extra:Yn},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:Yt,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),or=new As.ChainRoutes({chain:nt,routes:[Sc,_c]});var ws=require("@galacticcouncil/xc-core");var Dc="0",cs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Dc?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),Zn=()=>({asset:bs().multiTransactionPayment().accountCurrencyMap(),balance:cs()});var Lc=[new ws.AssetRoute({source:{asset:p,balance:cs(),fee:Zn(),destinationFee:{balance:cs()}},destination:{chain:nt,asset:p,fee:{amount:x().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Hc=[new ws.AssetRoute({source:{asset:X,balance:cs(),fee:Zn(),destinationFee:{balance:cs()}},destination:{chain:nt,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],rr=new ws.ChainRoutes({chain:Yt,routes:[...Lc,...Hc]});var ir=[or,rr];var Wc=[...Lo,...er,...sr,...ar,...ir],cr=new Map(Wc.map(t=>[t.chain.key,t]));var ea=require("@galacticcouncil/xc-core");var ms=require("@galacticcouncil/xc-core");var fn=class extends ms.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:r}=s;if(r.amount<a.amount)throw new ms.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},pn=class extends ms.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:a}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:a,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(a,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new ms.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:a.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new de(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};var us=require("@galacticcouncil/xc-core");var hn=class extends us.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new de(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain;if(await new de(r).getSystemAccountBalance(n)===0n)throw new us.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},bn=class extends us.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,r=a.chain;if(await new de(r).checkIfFrozen(n,s))throw new us.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var ls=require("@galacticcouncil/xc-core");var Mc=12,Vc=1,Oc=18,yn=class extends ls.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new qe(n),r=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain,i=new qe(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),l=c.min||Vc,h=c.decimals||Mc,b=l*Math.pow(10,h),w=await i.getAssetBalance(n,u);if(BigInt(b*1.1)>w)throw new ls.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},xn=class extends ls.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:a}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:a}=e,r=a.chain,i=new qe(r),u=r.getBalanceAssetId(v),c=r.getAssetDecimals(v)||Oc,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(l))throw new ls.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var Fe={isAny:()=>!0,isHydration:t=>t instanceof ea.Parachain&&t.parachainId===2034,isHub:t=>t instanceof ea.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},mr=[new fn(Fe.isAny,Fe.isAny),new pn(Fe.isAny,Fe.isAny),new hn(Fe.isAny,Fe.isHub),new bn(Fe.isHub,Fe.isAny),new yn(Fe.isAny,Fe.isHydration),new xn(Fe.isHydration,Fe.isAny)];var aa={};Mt(aa,{AssethubDex:()=>na,HydrationDex:()=>ta});var ds=require("@galacticcouncil/sdk-next"),lr=require("@galacticcouncil/common");var ur=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:gn}=ds.pool,{TradeRouteBuilder:Kc,TradeRouter:Uc}=ds.sor,{TxBuilderFactory:Nc}=ds.tx,ta=class{chain;client;poolCtx;txBuilder;getCtx=ur(async e=>{console.log("init swap router",e,"\u2705");let s=new Uc(this.poolCtx);return s.withFilter({useOnly:[gn.Aave,gn.Omni,gn.Stable,gn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new qe(this.chain),this.txBuilder=new Nc(s.client,s.evm)}async getCalldata(e,s,n,a,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),h=await l.getMostLiquidRoute(i,u),b=await l.getBuy(i,u,c,h);return(await(await this.txBuilder.trade(b).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(r,i),h=await c.getBuy(r,i,u,l);return{amount:h.amountIn,route:Kc.build(h.swaps)}}catch(l){if(a)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!a)throw new Error(`No price found for asset ${e}`);let r=a*s,i=Math.pow(10,lr.RUNTIME_DECIMALS);return r/BigInt(i)}};var sa=require("@galacticcouncil/common"),na=class{chain;client;constructor(e){this.chain=e,this.client=new de(this.chain)}async getCalldata(e,s,n,a){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let a=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,sa.encodeLocation)(a),(0,sa.encodeLocation)(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var hr=require("@galacticcouncil/xc-core");var dr=require("@galacticcouncil/xc-core");function An(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new dr.Asset({key:[a,s,e].join("_"),originSymbol:n})}function fr(t){let{decimals:e,id:s}=t;return{asset:An(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function pr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:An(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:a},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var wn=class extends hr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!a(r)&&r.origin===1e3).forEach(r=>{let i=An(r),u=fr(r),c=pr(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,Zs(i)),this.updateChainRoute(s,sn(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
package/build/index.mjs CHANGED
@@ -1 +1 @@
1
- var Lo=Object.defineProperty;var jt=(t,e)=>{for(var s in e)Lo(t,s,{get:e[s],enumerable:!0})};import{Asset as x}from"@galacticcouncil/xc-core";var Te=new x({key:"aave",originSymbol:"AAVE"}),ve=new x({key:"ajun",originSymbol:"AJUN"}),L=new x({key:"astr",originSymbol:"ASTR"}),E=new x({key:"bnc",originSymbol:"BNC"}),Ps=new x({key:"bsx",originSymbol:"BSX"}),Pe=new x({key:"cfg_new",originSymbol:"CFG"}),le=new x({key:"cru",originSymbol:"CRU"}),de=new x({key:"dai",originSymbol:"DAI"}),te=new x({...de,key:"dai_mwh"}),ze=new x({key:"ded",originSymbol:"DED"}),g=new x({key:"dot",originSymbol:"DOT"}),$e=new x({key:"dota",originSymbol:"DOTA"}),H=new x({key:"eth",originSymbol:"ETH"}),Be=new x({key:"ena",originSymbol:"ENA"}),v=new x({key:"glmr",originSymbol:"GLMR"}),z=new x({key:"hdx",originSymbol:"HDX"}),I=new x({key:"ibtc",originSymbol:"IBTC"}),_=new x({key:"intr",originSymbol:"INTR"}),ne=new x({key:"jitoSol",originSymbol:"jitoSOL"}),P=new x({key:"ksm",originSymbol:"KSM"}),Fe=new x({key:"ldo",originSymbol:"LDO"}),Xe=new x({key:"laos",originSymbol:"LAOS"}),Ee=new x({key:"lbtc",originSymbol:"LBTC"}),fe=new x({key:"ewt",originSymbol:"EWT"}),Ie=new x({key:"link",originSymbol:"LINK"}),U=new x({key:"myth",originSymbol:"MYTH"}),Re=new x({key:"neuro",originSymbol:"NEURO"}),pe=new x({key:"pen",originSymbol:"PEN"}),_e=new x({key:"paxg",originSymbol:"PAXG"}),Y=new x({key:"pink",originSymbol:"PINK"}),Se=new x({key:"sky",originSymbol:"SKY"}),j=new x({key:"sol",originSymbol:"SOL"}),ae=new x({key:"sui",originSymbol:"SUI"}),De=new x({key:"susde",originSymbol:"sUSDe"}),Oe=new x({key:"susds",originSymbol:"sUSDS"}),be=new x({...Oe,key:"susds_mwh"}),Le=new x({key:"tbtc",originSymbol:"tBTC"}),He=new x({key:"trac",originSymbol:"TRAC"}),We=new x({key:"unq",originSymbol:"UNQ"}),f=new x({key:"usdt",originSymbol:"USDT"}),ye=new x({...f,key:"usdt_mwh"}),ft=new x({...f,key:"usdt_eth"}),h=new x({key:"usdc",originSymbol:"USDC"}),xe=new x({...h,key:"usdc_mwh"}),pt=new x({...h,key:"usdc_eth"}),$=new x({key:"vastr",originSymbol:"vASTR"}),W=new x({key:"vdot",originSymbol:"vDOT"}),Bt=new x({key:"weth",originSymbol:"WETH"}),Z=new x({...Bt,key:"weth_mwh"}),Ke=new x({key:"wbtc",originSymbol:"WBTC"}),ge=new x({...Ke,key:"wbtc_mwh"}),Me=new x({key:"wsteth",originSymbol:"wstETH"}),Je=new x({key:"wud",originSymbol:"WUD"}),Ho=[Te,ve,L,Ps,Pe,le,E,de,te,ze,g,$e,Be,H,v,z,I,_,P,Fe,Xe,Ee,fe,ne,Ie,U,Re,_e,pe,Y,Se,j,ae,De,Oe,be,He,Le,We,h,xe,pt,f,ye,ft,$,W,Ke,ge,Bt,Z,Me,Je],Wo=new Map(Ho.map(t=>[t.key,t]));import{ChainEcosystem as Mo,EvmChain as Vo}from"@galacticcouncil/xc-core";import{mainnet as Uo}from"viem/chains";var R=new Vo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Te,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Bt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:de,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:De,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Oe,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Le,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ke,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Ee,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:h,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Fe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ie,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:_e,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Se,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:He,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Me,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Mo.Ethereum,evmChain:Uo,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",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var on=[R];import{ChainEcosystem as Oo,Parachain as Ko}from"@galacticcouncil/xc-core";var Ft=new Ko({assetsData:[{asset:ve,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Oo.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as No,Parachain as rn}from"@galacticcouncil/xc-core";var cn={assetsData:[{asset:g,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:h,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Y,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:ze,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:$e,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:Je,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:U,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:P,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:No.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"]},w=new rn({...cn,key:"assethub",name:"AssetHub Polkadot"}),Xt=new rn({...cn,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Go,Parachain as qo}from"@galacticcouncil/xc-core";var ee=new qo({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:g,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:h,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:E,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Go.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as jo,Parachain as zo}from"@galacticcouncil/xc-core";var $o=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new zo({assetsData:[{asset:E,id:{Native:E.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:g,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:h,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Y,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:L,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:jo.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:$o});import{ChainEcosystem as Jo,Parachain as Qo,XcmVersion as Yo}from"@galacticcouncil/xc-core";var Et=new Qo({assetsData:[{asset:le,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Jo.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesSdkCompat:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:Yo.v3});import{ChainEcosystem as tr,EvmParachain as sr}from"@galacticcouncil/xc-core";import{defineChain as nr}from"viem";import{getSs58AddressInfo as Zo}from"@polkadot-api/substrate-bindings";var er="ETH\0",es=class{async toH160(e){let s=Zo(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(er),r=n.slice(o.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var ar=new es,Bs=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://rpc.helikon.io/hydradx","https://hydration.ibp.network","https://rpc.cay.hydration.cloud","https://rpc.parm.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Fs=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],or=nr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Bs,webSocket:Fs},default:{http:Bs,webSocket:Fs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new sr({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Te,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ve,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:E,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:le,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:ze,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:g,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:$e,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:te,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:H,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Be,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ne,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:fe,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Fe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:P,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Xe,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Ee,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Ie,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:_e,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:U,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Re,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:pe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Y,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:Se,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:j,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ae,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:De,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Oe,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:be,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Le,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:He,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:We,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:h,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:xe,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:pt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:f,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:ye,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:ft,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:$,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ke,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ge,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Bt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Z,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Me,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Je,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:tr.Polkadot,evmChain:or,evmResolver:ar,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Fs,rpcs:Bs});import{ChainEcosystem as rr,Parachain as ir}from"@galacticcouncil/xc-core";var Ae=new ir({assetsData:[{asset:_,decimals:10,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:I,decimals:8,id:{Token:I.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:g,decimals:10,id:{Token:g.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:h,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:z,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:W,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:rr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});import{ChainEcosystem as cr,Parachain as mr}from"@galacticcouncil/xc-core";var It=new mr({assetsData:[{asset:Xe,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:cr.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as ur,EvmParachain as lr}from"@galacticcouncil/xc-core";import{defineChain as dr}from"viem";var fr=dr({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),B=new lr({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:te,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:j,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ne,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:be,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ae,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:xe,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:ye,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ge,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Z,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:g,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:z,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:Y,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:h,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:f,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:ur.Polkadot,evmChain:fr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as pr,Parachain as hr}from"@galacticcouncil/xc-core";var at=new hr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:pr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as br,Parachain as yr}from"@galacticcouncil/xc-core";var Rt=new yr({assetsData:[{asset:Re,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:br.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as xr,Parachain as gr,XcmVersion as Ar}from"@galacticcouncil/xc-core";var _t=new gr({assetsData:[{asset:pe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:xr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesSdkCompat:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Ar.v3});import{ChainEcosystem as wr,Parachain as mn}from"@galacticcouncil/xc-core";var un={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:wr.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"},ln=new mn({...un,key:"polkadot"}),dn=new mn({...un,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});import{ChainEcosystem as Cr,Parachain as kr}from"@galacticcouncil/xc-core";var St=new kr({assetsData:[{asset:We,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Cr.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as Tr,Parachain as vr,XcmVersion as Pr}from"@galacticcouncil/xc-core";var Dt=new vr({assetsData:[{asset:fe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Tr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesSdkCompat:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Pr.v3});var fn=[Ft,w,Xt,ee,M,Et,d,It,Rt,Ae,B,at,_t,ln,dn,St,Dt];import{ChainEcosystem as Br,SolanaChain as Fr}from"@galacticcouncil/xc-core";var ht=new Fr({id:101,key:"solana",name:"Solana",assetsData:[{asset:j,decimals:9},{asset:ne,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:Br.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 pn=[ht];import{ChainEcosystem as Xr,SuiChain as Er}from"@galacticcouncil/xc-core";var Lt=new Er({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Xr.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var hn=[Lt];import{ChainEcosystem as Ir,Parachain as Rr}from"@galacticcouncil/xc-core";var Qe=new Rr({assetsData:[{asset:P,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ir.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as _r,Parachain as Sr}from"@galacticcouncil/xc-core";var Ht=new Sr({assetsData:[{asset:Ps,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:P,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:_r.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var bn=[Qe,Ht];var Dr=[...on,...fn,...pn,...hn,...bn],Lr=new Map(Dr.map(t=>[t.key,t]));import{AssetRoute as us,ChainRoutes as um}from"@galacticcouncil/xc-core";var Ma={};jt(Ma,{AssetMinBuilder:()=>ot,BalanceBuilder:()=>a,ContractBuilder:()=>F,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>et,FeeAmountBuilder:()=>y,FeeAssetBuilder:()=>Yt,MoveBuilder:()=>Qs,ProgramBuilder:()=>ms,XcmTransferType:()=>re,XcmVersion:()=>Ze});import{SubstrateQueryConfig as Xs}from"@galacticcouncil/xc-core";function ot(){return{assetRegistry:Hr,assets:Wr}}function Hr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Xs({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Xs({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Wr(){return{asset:()=>({build:({asset:t})=>new Xs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Mr,ContractConfig as yn}from"@galacticcouncil/xc-core";function xn(){return{erc20:Ur,native:Vr}}function Vr(){return{build:({address:t})=>new yn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Ur(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new yn({abi:Mr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as zt}from"@galacticcouncil/xc-core";import{encodeAssetId as Es,encodeLocation as Or}from"@galacticcouncil/common";function gn(){return{assets:Kr,system:Gr,tokens:qr,ormlTokens:jr,foreignAssets:Nr}}function Kr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Es(n);return new zt({module:"Assets",func:"Account",args:[o,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Nr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let r=Or(o);return new zt({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Gr(){return{account:()=>({build:({address:t})=>new zt({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Es(n);return new zt({module:"Tokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function jr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Es(n);return new zt({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}import{SolanaQueryConfig as An}from"@galacticcouncil/xc-core";function wn(){return{native:zr,token:$r}}function zr(){return{build:({address:t})=>new An({address:t,func:"rpc_getBalance",module:"Native"})}}function $r(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new An({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as Jr}from"@galacticcouncil/xc-core";function Cn(){return{native:Qr}}function Qr(){return{build:({address:t})=>new Jr({address:t,func:"sui_getBalance",module:"Native"})}}function a(){return{evm:xn,substrate:gn,solana:wn,sui:Cn}}import{Abi as kn,ContractConfig as Yr,Precompile as Zr}from"@galacticcouncil/xc-core";import{encodeFunctionData as ei}from"viem";var ti=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],r=s.map(i=>ei({abi:kn[i.module],functionName:i.func,args:i.args}));return new Yr({abi:kn.Batch,address:Zr.Batch,args:[n,o,r,[]],func:"batchAll",module:"Batch"})}}),Tn=()=>({batchAll:ti});import{Abi as si,ContractConfig as ni,Wormhole as ai}from"@galacticcouncil/xc-core";function Wt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Ye(t){return typeof t=="object"?Object.values(t)[0]:t}function vn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:r}=e,i=r?r.chain:o.chain,u=ai.fromChain(i),c=i.getAssetId(n);return new ni({abi:si.Erc20,address:Ye(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}import{addr as oi,Abi as Pn,ContractConfig as Bn,Precompile as Fn}from"@galacticcouncil/xc-core";import{big as ri}from"@galacticcouncil/common";var{Ss58Addr:Xn}=oi;function ii(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 Is(t,e){let s=t.getAssetId(e);return typeof s=="string"?ii(s):s}function En(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=Is(o.chain,s);return new Bn({abi:Pn.PolkadotXcm,address:Fn.PolkadotXcm,args:[n.chain.parachainId,Xn.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=Is(o.chain,s),i=Is(o.chain,o.destinationFeeBalance),u=ri.toBigInt(n.fee.amount,n.fee.decimals);return new Bn({abi:Pn.PolkadotXcm,address:Fn.PolkadotXcm,args:[n.chain.parachainId,Xn.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:u}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as ci,Abi as mi,ContractConfig as ui,Snowbridge as li}from"@galacticcouncil/xc-core";var{Ss58Addr:di}=ci,fi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r}=t,i=o.chain,u=r.chain,c=li.fromChain(i),l=i.getAssetId(n),p=Ye(l),b=n.originSymbol==="ETH",A=r.feeBreakdown.bridgeFeeInDot,T=r.fee.amount;return new ui({abi:mi.Snowbridge,address:c.getGateway(),args:[p,u.parachainId,[1,di.getPubKey(e)],A,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),In=()=>({sendToken:fi});import{mrl as _n,Abi as ts,ContractConfig as ss,Precompile as Sn,Wormhole as rt}from"@galacticcouncil/xc-core";import{PublicKey as Rn}from"@solana/web3.js";import{getAssociatedTokenAddress as pi}from"@solana/spl-token";var hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,destination:i}=e,u=rt.fromChain(r.chain),c=rt.fromChain(t.moonchain),l=Sn.Bridge,p=r.chain.getAssetId(o),b=0,A=await _n.createPayload(i.chain,s);return new ss({abi:ts.TokenBridge,address:u.getTokenBridge(),args:[Ye(p),n,c.getWormholeId(),c.normalizeAddress(l),b,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),bi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:r}=e,i=rt.fromChain(o.chain),u=rt.fromChain(t.moonchain),c=Sn.Bridge,l=0,p=await _n.createPayload(r.chain,s);return new ss({abi:ts.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),yi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,l=rt.fromChain(u),p=rt.fromChain(c),b=e;if(c.isSolana()){let V=c.getAssetId(n);b=(await pi(new Rn(V),new Rn(e))).toBase58()}let A=u.getAssetId(n),T=0,X=0;return new ss({abi:ts.TokenBridge,address:l.getTokenBridge(),args:[Ye(A),s,p.getWormholeId(),p.normalizeAddress(b),T,X],func:"transferTokens",module:"TokenBridge"})}}),xi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,r=rt.fromChain(n.chain),i=rt.fromChain(o.chain),u=0,c=0;return new ss({abi:ts.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Dn=()=>({transferTokens:yi,transferTokensWithPayload:hi,wrapAndTransferETH:xi,wrapAndTransferETHWithPayload:bi});import{Abi as gi,ContractConfig as Ai,Wormhole as Ln}from"@galacticcouncil/xc-core";var wi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,l=Ln.fromChain(u),p=Ln.fromChain(c),b=0,A=0,T=u.getAssetId(n);return new Ai({abi:gi.TokenRelayer,address:l.getTokenRelayer(),args:[Ye(T),s,b,p.getWormholeId(),p.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Hn=()=>({transferTokensWithRelay:wi});function Wn(){return{TokenBridge:Dn,TokenRelayer:Hn}}function F(){return{Batch:Tn,Erc20:vn,PolkadotXcm:En,Snowbridge:In,Wormhole:Wn}}import{ExtrinsicConfig as Ci}from"@galacticcouncil/xc-core";var Mn="AssetConversion",ki=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=o,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(u),b=i.amount+i.amount*BigInt(t.slippage)/100n,A=u.amount;return new Ci({module:Mn,func:e,getTx:T=>T.getUnsafeApi().tx[Mn][e]({path:[l,p],amount_out:A,amount_in_max:b,send_to:s,keep_alive:!0})})}}},Vn=()=>({swapTokensForExactTokens:ki});import{hub as Ti,MultiAddress as vi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Pi}from"@galacticcouncil/xc-core";var Bi="Assets",Fi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let r=o.chain,{fee:i}=o,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Pi({module:Bi,func:t,getTx:l=>l.getTypedApi(Ti).tx.Assets.transfer({id:Number(c),target:vi.Id(n),amount:u})})}}},Un=()=>({transfer:Fi});import{ExtrinsicConfig as Xi}from"@galacticcouncil/xc-core";var On="Balances",Ei=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Xi({module:On,func:e,getTx:n=>n.getUnsafeApi().tx[On][e]({dest:s,keep_alive:t})})}},Kn=()=>({transferAll:Ei});import{hydration as Ii}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ri}from"@galacticcouncil/xc-core";var _i="Router",Si=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=o,c=n,l=c.getMetadataAssetId(r),p=c.getMetadataAssetId(i),b=i.amount,A=r.amount+r.amount*BigInt(t.slippage)/100n;return new Ri({module:_i,func:"buy",getTx:T=>T.getTypedApi(Ii).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:b,max_amount_in:A,route:u})})}}),Nn=()=>({buy:Si});import{ExtrinsicConfig as Di}from"@galacticcouncil/xc-core";var Gn="Utility",Li=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new Di({module:Gn,func:e,getTx:o=>{let r=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[Gn][e]({calls:r})}})}}},qn=()=>({batchAll:Li});import{Abi as Hi,ExtrinsicConfig as Wi}from"@galacticcouncil/xc-core";import{Binary as jn}from"polkadot-api";import{encodeFunctionData as Mi}from"viem";var Ze=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(Ze||{}),re=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(re||{});var zn="EthereumXcm",Vi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",r=Mi({abi:Hi[n.module],functionName:n.func,args:n.args});return new Wi({module:zn,func:e,getTx:i=>i.getUnsafeApi().tx[zn][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:jn.fromHex(n.address)},value:[0n,0n,0n,0n],input:jn.fromHex(r),access_list:void 0}}})})}}},Rs=()=>({transact:Vi});import{ExtrinsicConfig as At}from"@galacticcouncil/xc-core";import{big as qs}from"@galacticcouncil/common";import{multiloc as cc,ChainEcosystem as Ks}from"@galacticcouncil/xc-core";import{Binary as mc}from"polkadot-api";import{XcmV3Junctions as he,XcmV3Junction as Qt,XcmV3JunctionNetworkId as fa,XcmV3MultiassetFungibility as xt,XcmV4Instruction as J,XcmV4AssetAssetFilter as Vt,XcmV4AssetWildAsset as Ut,XcmV3WeightLimit as Ns,XcmV2MultiassetWildFungibility as uc,XcmV2OriginKind as lc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Ui}from"@galacticcouncil/descriptors";var ie=340282366920938463463374607431768211455n,bt="0x0000000000000000000000000000000000000000000000000000000000000000",Mt={parents:1,interior:Ui.Here()},$n=0,Jn=1e3,Qn=1002,Yn=1,yt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var Zn="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as tc,XcmV3MultiassetFungibility as Ss,XcmV3WeightLimit as sc,XcmV4AssetAssetFilter as nc,XcmV4AssetWildAsset as ac,XcmV4Instruction as $t}from"@galacticcouncil/descriptors";import{Binary as oc}from"polkadot-api";import{acc as Oi}from"@galacticcouncil/xc-core";import{XcmV3Junction as ea}from"@galacticcouncil/descriptors";import{FixedSizeBinary as ta}from"polkadot-api";import{getSs58AddressInfo as Ki}from"@polkadot-api/substrate-bindings";import{toHex as Ni}from"@polkadot-api/utils";function N(t){if(t.length===42&&t.startsWith("0x"))return ea.AccountKey20({key:ta.fromHex(t),network:void 0});let s=Ki(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ea.AccountId32({id:ta.fromHex(Ni(s.publicKey)),network:void 0})}function ns(t,e,s){return Oi.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as sa}from"@galacticcouncil/xc-core";function na(t,e){let s=sa.findNestedKey(t,"GeneralIndex"),n=sa.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(r)?!1:Number(o)>Number(r)}function G(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var rs={};jt(rs,{ETHER_TOKEN_ADDRESS:()=>_s,erc20Location:()=>ji,erc20LocationReanchored:()=>zi,ethereumLocation:()=>ra,parachainLocation:()=>qi});import{XcmV3Junctions as as,XcmV3Junction as os,XcmV3JunctionNetworkId as Gi}from"@galacticcouncil/descriptors";import{Binary as aa}from"polkadot-api";var _s="0x0000000000000000000000000000000000000000",oa=t=>os.GlobalConsensus(Gi.Ethereum({chain_id:BigInt(t)}));function ra(t){return{parents:2,interior:as.X1(oa(t))}}function qi(t){return{parents:1,interior:as.X1(os.Parachain(t))}}function ji(t,e){return e===_s?ra(t):{parents:2,interior:as.X2([oa(t),os.AccountKey20({key:aa.fromHex(e)})])}}function zi(t){return t===_s?{parents:0,interior:{type:"Here"}}:{parents:0,interior:as.X1(os.AccountKey20({key:aa.fromHex(t)}))}}import{encodeLocation as ia}from"@galacticcouncil/common";import{multiloc as $i}from"@galacticcouncil/xc-core";function q(t,e){return Ji(e)>=4?ia(t):Qi(t)}function Ji(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Qi(t){return{type:"Concrete",value:ia(t)}}var Yi=1e3;function Zi(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function ec(t){if(t)return Zi(t)?Yi:$i.findParachain(t)}function ca(t,e,s,n){let o=e.getAssetXcmLocation(t),r=ec(o),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function Ds(t,e){let s="V4",n=q(G(e,t),s),o=oc.fromHex(bt);return[$t.ReserveAssetDeposited([{id:Mt,fun:Ss.Fungible(ie)},{id:n,fun:Ss.Fungible(ie)}]),$t.ClearOrigin(),$t.BuyExecution({fees:{id:Mt,fun:Ss.Fungible(ie)},weight_limit:sc.Unlimited()}),$t.DepositAsset({assets:nc.Wild(ac.AllCounted(2)),beneficiary:{parents:0,interior:tc.X1(N(yt))}}),$t.SetTopic(o)]}import{XcmV4Instruction as Ls,XcmV3MultiassetFungibility as Hs,XcmV3WeightLimit as rc}from"@galacticcouncil/descriptors";function ma(t,e){let s="V4",n=q(G(e,t),s),o=is("V4",N(Zn),N(yt),n,bt);return[Ls.WithdrawAsset([{id:Mt,fun:Hs.Fungible(ie)},{id:n,fun:Hs.Fungible(ie)}]),Ls.ClearOrigin(),Ls.BuyExecution({fees:{id:Mt,fun:Hs.Fungible(ie)},weight_limit:rc.Unlimited()}),...o.value]}import{XcmV3Junctions as Ws,XcmV3Junction as ic,XcmV3MultiassetFungibility as Jt,XcmV3WeightLimit as Ms,XcmV4AssetAssetFilter as Vs,XcmV4AssetWildAsset as Us,XcmV4Instruction as we}from"@galacticcouncil/descriptors";import{Binary as ua}from"polkadot-api";function la(t,e){let s="V4",n=q(G(e,t),s),o=ua.fromHex(bt);return[we.WithdrawAsset([{id:n,fun:Jt.Fungible(ie)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Ms.Unlimited()}),we.DepositAsset({assets:Vs.Wild(Us.AllCounted(1)),beneficiary:{parents:0,interior:Ws.X1(N(yt))}}),we.SetTopic(o)]}function Os(t,e){let s="V4",n=q(G(e,t),s);return[we.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Ms.Unlimited()}),we.DepositAsset({assets:Vs.Wild(Us.AllCounted(1)),beneficiary:{parents:0,interior:Ws.X1(N(yt))}})]}function da(t,e,s){let n="V4",o=q(G(e,t),n),r=ua.fromHex(bt),i=Os(t,s);return[we.WithdrawAsset([{id:o,fun:Jt.Fungible(ie)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:o,fun:Jt.Fungible(ie)},weight_limit:Ms.Unlimited()}),we.DepositReserveAsset({assets:Vs.Wild(Us.AllCounted(1)),dest:{parents:1,interior:Ws.X1(ic.Parachain(s.parachainId))},xcm:i}),we.SetTopic(r)]}var pa=[Ks.Polkadot,Ks.Kusama],dc={parents:1,interior:he.X1(Qt.Parachain(1e3))},fc=t=>t.parents===1&&t.interior==="Here",pc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:pa.includes(t.ecosystem)&&pa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ha=t=>{let{interior:e}=t;return e.type==="X1"&&e.value.type==="GlobalConsensus"?e.value.value.type==="Ethereum":!1},Ne=(t,e,s)=>{if(pc(e,s)){let o=s.ecosystem===Ks.Polkadot?fa.Polkadot():fa.Kusama();return{type:t,value:{parents:2,interior:he.X2([Qt.GlobalConsensus(o),Qt.Parachain(s.parachainId)])}}}if(s.parachainId===$n)return{type:t,value:{parents:1,interior:he.Here()}};let n=s.key==="ethereum"?Jn:s.parachainId;return{type:t,value:{parents:1,interior:he.X1(Qt.Parachain(n))}}},gt=(t,e)=>({type:t,value:{parents:0,interior:he.X1(e)}}),Gs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:fc(s)?dc:s}}:{type:e},it=(t,e)=>({id:t,fun:xt.Fungible(e)}),ba=(t,e,s)=>({type:t,value:[J.DepositAsset({assets:Vt.Wild(Ut.AllCounted(s)),beneficiary:{parents:0,interior:he.X1(e)}})]});var is=(t,e,s,n,o)=>{let r=mc.fromHex(o);return{type:t,value:[J.SetAppendix([J.DepositAsset({assets:Vt.Wild(Ut.All()),beneficiary:{parents:0,interior:he.X1(s)}})]),J.InitiateReserveWithdraw({assets:Vt.Wild(Ut.AllOf({id:n,fun:uc.Fungible()})),reserve:rs.ethereumLocation(Yn),xcm:[J.BuyExecution({fees:{id:hc(n),fun:xt.Fungible(1n)},weight_limit:Ns.Unlimited()}),J.DepositAsset({assets:Vt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}}),J.SetTopic(r)]}),J.SetTopic(r)]}},hc=t=>{let e=cc.findNestedKey(t,"key");return e?{parents:0,interior:he.X1(Qt.AccountKey20({key:e.key}))}:{parents:0,interior:he.Here()}},ya=(t,e,s,n,o,r)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(n)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(n)},weight_limit:Ns.Unlimited()}),J.Transact({origin_kind:lc.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:o}),J.RefundSurplus(),J.DepositAsset({assets:Vt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]}),xa=(t,e,s,n,o,r)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(o)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(o)},weight_limit:Ns.Unlimited()}),J.TransferAsset({assets:[{id:s,fun:xt.Fungible(n)}],beneficiary:{parents:0,interior:he.X1(r)}}),J.RefundSurplus(),J.DepositAsset({assets:Vt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ce="PolkadotXcm",bc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=N(t),i=o.chain,u=n.chain,c="V4",l=q(G(i,s),c),p=q(G(i,n.fee),c),b=it(l,e),A=it(p,n.fee.amount),T="limited_reserve_transfer_assets";return new At({module:ce,func:T,getTx:X=>{let V=X.getUnsafeApi().tx[ce][T];return s.key===n.fee.key?V({dest:Ne(c,i,u),beneficiary:gt(c,r),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):na(l,p)?V({dest:Ne(c,i,u),beneficiary:gt(c,r),assets:{type:c,value:[A,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):V({dest:Ne(c,i,u),beneficiary:gt(c,r),assets:{type:c,value:[b,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),yc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=N(t),i=o.chain,u=n.chain,c="V4",l=q(G(i,s),c),p=it(l,e),b=Ne(c,i,u),A=gt(c,r),T={type:c,value:[p]},X="limited_teleport_assets";return new At({module:ce,func:X,getTx:V=>V.getUnsafeApi().tx[ce][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=N(t),i=o.chain,u=n.chain,c=i.xcmVersion??"V4",l=q(G(i,s),c),p=it(l,e),b=Ne(c,i,u),A=gt(c,r),T={type:c,value:[p]},X="reserve_transfer_assets";return new At({module:ce,func:X,getTx:V=>V.getUnsafeApi().tx[ce][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0})})}}),gc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=N(t),i=o.chain,u=n.chain,c="V4",l=q(G(i,s),c),p=it(l,e),b=Ne(c,i,u),A=gt(c,r),T={type:c,value:[p]},X="transfer_assets";return new At({module:ce,func:X,getTx:V=>V.getUnsafeApi().tx[ce][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ac=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:r,sender:i,source:u,transact:c})=>{let l="V4",p=u.chain,b=o.chain,A=o.fee.amount,T=o.fee;c&&(b=c.chain,A=qs.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let X=N(i),V=c||b.usesCexForwarding?ns(p,i,b):e,D=N(V),{transferType:Q}=t,K=q(G(p,s),l),C=q(G(p,T),l),Ge=it(K,n),dt=it(C,A),qe=s.isEqual(T),st=Ne(l,p,b),je={type:l,value:qe?[Ge]:[dt,Ge]},nt=Gs(l,Q,K),qt={type:l,value:qe?K:C},vs=Gs(l,Q,C),Pt;ha(K)?Pt=is(l,D,X,K,r):Pt=ba(l,D,je.value.length);let Zt="transfer_assets_using_type_and_then";return new At({module:ce,func:Zt,getTx:Do=>Do.getUnsafeApi().tx[ce][Zt]({dest:st,assets:je,assets_transfer_type:nt,remote_fees_id:qt,fees_transfer_type:vs,custom_xcm_on_dest:Pt,weight_limit:{type:"Unlimited"}})})}}),wc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=o.chain,c=r.chain,l=ns(u,n,c),p=N(l),{fee:b}=r,A=q(G(c,b),i),T=qs.toBigInt(e.fee,b.decimals);return new At({module:ce,func:t,getTx:X=>X.getUnsafeApi().tx[ce][t]({dest:Ne(i,u,c),message:ya(i,p,A,T,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:r,sender:i,source:u,destination:c}=s,l="V4",p=u.chain,b=c.chain,A=ns(p,i,b),T=N(A),X=N(o),V=q(G(b,r),l),{fee:D}=c,Q=qs.toBigInt(e.fee,D.decimals),K=n>D.amount?n-(D.amount+Q):n;return new At({module:ce,func:t,getTx:C=>C.getUnsafeApi().tx[ce][t]({dest:Ne(l,p,b),message:xa(l,T,V,K,Q,X)})})}})}},js=()=>({limitedReserveTransferAssets:bc,limitedTeleportAssets:yc,reserveTransferAssets:xc,transferAssets:gc,transferAssetsUsingTypeAndThen:Ac,send:wc});import{ExtrinsicConfig as vc}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Cc,XcmV3Junction as kc,XcmV3MultiassetFungibility as Tc}from"@galacticcouncil/descriptors";var ga=(t,e)=>({parents:1,interior:Cc.X2([kc.Parachain(t.parachainId),e])}),Aa=(t,e)=>({id:t,fun:Tc.Fungible(e)});var wa="XTransfer",Pc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r="V3",i=N(t),u=o.chain,c=n.chain,l=q(G(u,s),r),p=Aa(l,e),b=ga(c,i),A="transfer";return new vc({module:wa,func:A,getTx:T=>T.getUnsafeApi().tx[wa][A]([p,b,{refTime:5e9,proofSize:0}])})}}),zs=()=>({transfer:Pc});function m(){return{assetConversion:Vn,assets:Un,balances:Kn,ethereumXcm:Rs,polkadotXcm:js,router:Nn,utility:qn,xTransfer:zs}}function et(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}import{Abi as Ta,Snowbridge as Wc,Wormhole as ka}from"@galacticcouncil/xc-core";var Ca={};jt(Ca,{AssethubClient:()=>me,BaseClient:()=>Ce,HydrationClient:()=>Ve});import{encodeLocation as Bc}from"@galacticcouncil/common";import{hub as Fc,XcmVersionedAssetId as Xc}from"@galacticcouncil/descriptors";var Ce=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Fc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=Bc(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Xc.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Ec,XcmV5Junction as Ic,XcmVersionedLocation as Rc}from"@galacticcouncil/descriptors";import{encodeLocation as _c}from"@galacticcouncil/common";import{Twox128 as Sc,u128 as Dc}from"@polkadot-api/substrate-bindings";import{toHex as Lc}from"@polkadot-api/utils";var me=class extends Ce{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=_c(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=Lc(Sc(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let r=Dc.dec(o);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=Rc.V5({parents:1,interior:Ec.X1(Ic.Parachain(s))}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!o.success)throw Error("Can't query XCM delivery fee.");let r=o.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as Hc}from"@galacticcouncil/descriptors";var Ve=class extends Ce{constructor(e){super(e,Hc)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=o;return BigInt(r)-BigInt(i)}};function Mc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,r=ka.fromChain(n),i=ka.fromChain(o),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Ta.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function Vc(){return{TokenRelayer:Mc}}function Uc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,r=s,i=Wc.fromChain(o),u=new Ce(r),c=new me(t.hub),l=Ds(e,r),[p,b]=await Promise.all([u.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,r.parachainId)]),A=b+Wt(p,25n),T=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Ta.Snowbridge,address:i.getGateway(),args:[T,r.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,r=new me(t.hub),i=ma(e,o),u=Ds(e,o),[c,l,p,b,A]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,Qn),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,o.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+l+Wt(p,25n)+b+Wt(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:A}}}})}}function Oc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,r=n,i=t?.reserve;if(ca(e,o,r,i),i){let A=new Ce(r),T=new Ce(i),X=Os(e,r),V=da(e,i,r),[D,Q]=await Promise.all([A.calculateDestinationFee(X,e),T.calculateDestinationFee(V,e)]),K=Q+D,C=Wt(K,20n),Ge=C-K;return{amount:C,breakdown:{reserveFee:Q,destinationFee:D,margin:Ge}}}let u=new Ce(r),c=la(e,r),l=await u.calculateDestinationFee(c,e),p=Wt(l,20n),b=p-l;return{amount:p,breakdown:{totalFee:l,margin:b}}}})}}function y(){return{XcmPaymentApi:Oc,Snowbridge:Uc,Wormhole:Vc}}var Kc="0";function Nc(){return{build:async({address:t,chain:e})=>{let n=await new Ve(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Kc,r=e.findAssetById(o);return r?r.asset:z}}}var Gc=()=>({accountCurrencyMap:Nc});function Yt(){return{multiTransactionPayment:Gc}}import{mrl as Ba,Precompile as Fa,ProgramConfig as Xa,Wormhole as cs}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as qc,NATIVE_MINT as va,TOKEN_PROGRAM_ID as jc,createCloseAccountInstruction as zc,createInitializeAccountInstruction as $c,getMinimumBalanceForRentExemptAccount as Jc,getAssociatedTokenAddress as Qc}from"@solana/spl-token";import{Keypair as $s,PublicKey as Js,SystemProgram as Pa}from"@solana/web3.js";import{UniversalAddress as Ea}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Ia,createTransferNativeWithPayloadInstruction as Ra,getWrappedMeta as Yc}from"@wormhole-foundation/sdk-solana-tokenbridge";var Zc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,l=cs.fromChain(u),p=cs.fromChain(t.moonchain),b=Fa.Bridge,A=await Ba.createPayload(i.chain,s),T=new Js(r),X=new Ea(b),V=p.getWormholeId(),D=T,Q=0,K=$s.generate(),C=$s.generate(),Ge=await Jc(c.connection),dt=Pa.createAccount({fromPubkey:D,newAccountPubkey:C.publicKey,lamports:Ge,space:qc,programId:jc}),qe=Pa.transfer({fromPubkey:D,lamports:n,toPubkey:C.publicKey}),st=$c(C.publicKey,va,D),je=Ia(l.getTokenBridge(),C.publicKey,D,n),nt=Ra(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,K.publicKey,C.publicKey,va,Q,n,X.toUint8Array(),V,A.toU8a()),qt=zc(C.publicKey,D,D);return new Xa({instructions:[dt,qe,st,je,nt,qt],signers:[K,C],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),em=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,sender:i,destination:u}=e,c=r.chain,l=c,p=cs.fromChain(c),b=cs.fromChain(t.moonchain),A=Fa.Bridge,T=await Ba.createPayload(u.chain,s),X=new Js(i),V=r.chain.getAssetId(o),D=new Js(V),Q=await Qc(D,X),K=new Ea(A),C=b.getWormholeId();if(await Yc(l.connection,p.getTokenBridge(),D).catch(nt=>null).then(nt=>nt!=null))throw new Error("Wrapped assets not supported yet");let dt=0,qe=$s.generate(),st=Ia(p.getTokenBridge(),Q,X,n),je=Ra(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,qe.publicKey,Q,D,dt,n,K.toUint8Array(),C,T.toU8a());return new Xa({instructions:[st,je],signers:[qe],func:"TransferWithPayload",module:"TokenBridge"})}})}),_a=()=>({transferNativeWithPayload:Zc,transferTokenWithPayload:em});function Sa(){return{TokenBridge:_a}}function ms(){return{Wormhole:Sa}}import{mrl as tm,MoveConfig as sm,Precompile as nm,Wormhole as Da}from"@galacticcouncil/xc-core";import{Transaction as am}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as om,SUI_TYPE_ARG as rm}from"@mysten/sui/utils";import{UniversalAddress as im}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as cm,getPackageId as La}from"@wormhole-foundation/sdk-sui";var mm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,l=Da.fromChain(u),p=Da.fromChain(t.moonchain),b=0,A=nm.Bridge,T=await tm.createPayload(i.chain,s),X=new im(A),V=p.getWormholeId(),D=rm,[Q,K]=await Promise.all([La(c.client,l.coreBridge),La(c.client,l.tokenBridge)]),C=new am,[Ge]=C.splitCoins(C.gas,[C.pure.u64(n)]),[dt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[qe]=C.moveCall({target:`${K}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[D]}),st=!1,je=await(async()=>{let Pt=await cm(c.client,Q,r);if(Pt!==null)return C.object(Pt);{let[Zt]=C.moveCall({target:`${Q}::emitter::new`,arguments:[C.object(l.coreBridge)]});return st=!0,Zt}})(),[nt,qt]=C.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[je,qe,Ge,C.pure.u16(V),C.pure.vector("u8",X.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[D]});C.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[qt],typeArguments:[D]});let[vs]=C.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),nt],typeArguments:[D]});return C.moveCall({target:`${Q}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),dt,vs,C.object(om)]}),st&&C.transferObjects([je],C.pure.address(r)),new sm({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ha=()=>({transferNativeWithPayload:mm});function Wa(){return{TokenBridge:Ha}}function Qs(){return{Wormhole:Wa}}var Va={};jt(Va,{Tag:()=>ct});var ct=(o=>(o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(ct||{});import{AssetRoute as Ua}from"@galacticcouncil/xc-core";function Ot(t,e){return new Ua({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:t,balance:a().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:F().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new Ua({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:d,asset:e,fee:{amount:y().Snowbridge().calculateInboundFee({hub:w}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]})}var lm=[new us({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().native()}},destination:{chain:d,asset:Z,fee:{amount:0,asset:Z}},contract:F().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Ot(de,te),Ot(Ke,ge),Ot(h,xe),Ot(f,ye),Ot(Oe,be)],dm=[new us({source:{asset:H,balance:a().evm().native(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:d,asset:H,fee:{amount:y().Snowbridge().calculateInboundFee({hub:w}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(Te,Te),oe(Pe,Pe),oe(Be,Be),oe(_e,_e),oe(De,De),oe(Le,Le),oe(Ee,Ee),oe(Fe,Fe),oe(Ie,Ie),oe(Se,Se),oe(He,He),oe(Me,Me),oe(h,pt),oe(f,ft)],oy=[new us({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().erc20()}},destination:{chain:B,asset:Z,fee:{amount:0,asset:Z}},contract:F().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new us({source:{asset:de,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:de,balance:a().evm().erc20()}},destination:{chain:B,asset:te,fee:{amount:0,asset:te}},contract:F().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Oa=new um({chain:R,routes:[...lm,...dm]});var Ka=[Oa];import{AssetRoute as ds,ChainRoutes as ja}from"@galacticcouncil/xc-core";import{AssetRoute as Ys}from"@galacticcouncil/xc-core";var wt=0,fm=t=>{let{source:e}=t;return!!e.feeSwap},pm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Na=m().assetConversion().swapTokensForExactTokens({slippage:30});function Ga(t,e,s){return new Ys({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:et(pm,Na).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function ls(t,e,s){return new Ys({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:t,balance:a().substrate().assets().account(),swap:!0},destinationFee:{balance:a().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:et(fm,Na).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ct(t,e,s){return new Ys({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function kt(t){return Ga(t,d,.02)}function qa(t){return Ga(t,B,.25)}var hm=[new ds({source:{asset:g,balance:a().substrate().system().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().system().account()},min:ot().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new ds({source:{asset:P,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ct(f,d,.02),Ct(h,d,.02),kt(Y),kt(ze),kt($e),kt(Je)],bm=[new ds({source:{asset:P,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:Qe,asset:P,fee:{amount:.001,asset:P}},extrinsic:m().polkadotXcm().transferAssets()})],ym=[Ct(f,B,.25),Ct(h,B,.25),qa(Y)],xm=[Ct(f,M,.03),Ct(h,M,.03)],gm=[new ds({source:{asset:U,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:wt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:at,asset:U,fee:{amount:2.5,asset:U}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],za=new ja({chain:w,routes:[...hm,...bm,...ym,...xm,...gm]}),$a=new ja({chain:Xt,routes:[ls(f,d,.02),ls(h,d,.02),ls(g,d,.001)]});import{AssetRoute as tt,ChainRoutes as Am}from"@galacticcouncil/xc-core";var wm=[new tt({source:{asset:L,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new tt({source:{asset:E,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:E,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:v,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:I,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:_,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:.01,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:W,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:$,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:$,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:$}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:f,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:h,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:h,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ja=new Am({chain:ee,routes:[...wm]});import{AssetRoute as Ue,ChainRoutes as Cm}from"@galacticcouncil/xc-core";var km=[new Ue({source:{asset:E,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:E,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:W,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:$,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:$,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ue({source:{asset:L,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:L,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:ee}),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:v,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:B}),asset:v}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:I,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:I,fee:{amount:625e-8,asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:h,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Tm=[new Ue({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:w,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:E,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:w,asset:h,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Qa=new Cm({chain:M,routes:[...km,...Tm]});import{AssetRoute as ue,ChainRoutes as Im}from"@galacticcouncil/xc-core";var vm="0",k=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===vm?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),O=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:k()});import{AssetRoute as Kt}from"@galacticcouncil/xc-core";var Pm=.9,Bm=1,Fm=1,Xm=.03,fs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ps=m().router().buy({slippage:30});function S(t,e,s){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:e,asset:t,fee:{amount:y().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function Tt(t){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:w,asset:t,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:et(fs,ps).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function hs(t,e,s){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:Xt,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:Xm})])})}function Em(t,e,s="LocalReserve"){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:e,asset:t,fee:{amount:Fm,asset:v}},extrinsic:et(fs,ps).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function mt(t){return Em(t,B,"DestinationReserve")}function Ya(t,e,s,n,o,r){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{asset:t,balance:k()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:et(fs,ps).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:Pm})]),transact:{chain:B,fee:{amount:Bm,asset:v,balance:k()},extrinsic:m().ethereumXcm().transact(o)},tags:r})}function Zs(t,e,s){return Ya(t,e,s,0,F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenBridge()),F().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function ut(t,e,s){return Ya(t,e,s,y().Wormhole().TokenRelayer().calculateRelayerFee(),F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function se(t,e,s){return new Kt({source:{asset:t,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:s,asset:e,fee:{amount:y().Snowbridge().calculateOutboundFee({hub:w}),asset:g}},extrinsic:et(fs,ps).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Rm=[new ue({source:{asset:g,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:w,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ue({source:{asset:P,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:w,asset:P,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ue({source:{asset:f,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:w,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new ue({source:{asset:h,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:w,asset:h,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),Tt(Y),Tt(ze),Tt($e),Tt(Je)],_m=[S(L,ee),S(E,ee,M),S(v,ee,B),new ue({source:{asset:I,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:ee,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ue({source:{asset:_,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:ee,asset:_,fee:{amount:.01,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),S(W,ee,M),S($,ee,M),S(f,ee,w),S(h,ee,w)],Sm=[S(E,M),S(W,M),S($,M),S(L,M,ee),S(v,M,B),new ue({source:{asset:I,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:M,asset:I,fee:{amount:5e-6,asset:I}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),S(f,M,w),S(h,M,w),new ue({source:{asset:g,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:M,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Dm=[S(I,Ae),S(_,Ae),S(z,Ae),S(f,Ae,w),S(h,Ae,w),new ue({source:{asset:W,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:Ae,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ue({source:{asset:g,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:Ae,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Lm=[S(z,B),S(v,B),S(f,B,w),S(h,B,w),mt(te),mt(be),mt(xe),mt(ye),mt(ge),mt(Z),mt(j)],Hm=[new ue({source:{asset:U,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:at,asset:U,fee:{amount:2.5,asset:U}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Wm=[S(We,St)],Mm=[new ue({source:{asset:le,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:Et,asset:le,fee:{amount:.04,asset:le}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Vm=[S(Xe,It)],Um=[new ue({source:{asset:fe,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:Dt,asset:fe,fee:{amount:.02,asset:fe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Om=[new ue({source:{asset:pe,balance:k(),fee:O(),destinationFee:{balance:k()}},destination:{chain:_t,asset:pe,fee:{amount:1.1,asset:pe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Km=[S(Re,Rt)],Nm=[S(ve,Ft)],Gm=[ut(te,de,R),ut(Z,H,R),ut(ge,Ke,R),ut(ye,f,R),ut(xe,h,R),Zs(be,Oe,R)],qm=[se(H,H,R),se(Te,Te,R),se(Pe,Pe,R),se(Be,Be,R),se(_e,_e,R),se(De,De,R),se(Le,Le,R),se(He,He,R),se(Ee,Ee,R),se(Fe,Fe,R),se(Ie,Ie,R),se(Se,Se,R),se(Me,Me,R),se(pt,h,R),se(ft,f,R)],jm=[ut(j,j,ht),Zs(ne,ne,ht)],zm=[ut(ae,ae,Lt)],$m=[hs(f,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),hs(h,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),hs(g,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Za=new Im({chain:d,routes:[...Nm,...Rm,..._m,...Sm,...$m,...Mm,...qm,...Gm,...Dm,...Vm,...Um,...Lm,...Hm,...Km,...Om,...jm,...zm,...Wm]});import{AssetRoute as vt,ChainRoutes as Jm}from"@galacticcouncil/xc-core";var Qm=[new vt({source:{asset:_,balance:a().substrate().tokens().accounts(),destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:I,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:I,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:z,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:z,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:W,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:h,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vt({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],eo=new Jm({chain:Ae,routes:[...Qm]});import{AssetRoute as Nt,ChainRoutes as e0}from"@galacticcouncil/xc-core";import{AssetRoute as to}from"@galacticcouncil/xc-core";function Ym(t,e,s){return new to({source:{asset:t,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().PolkadotXcm().transferAssetsToPara32()})}function Zm(t,e,s){return new to({source:{asset:t,balance:a().evm().erc20(),fee:{asset:v,balance:a().evm().erc20()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().PolkadotXcm().transferAssetsToPara32()})}function lt(t,e){return Ym(t,d,e)}function bs(t,e){return Zm(t,d,e)}var t0=[new Nt({source:{asset:v,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:F().PolkadotXcm().transferAssetsToPara32()}),bs(z,.6),bs(f,.3),bs(h,.3),lt(te,.004),lt(be,.004),lt(xe,.004),lt(ye,.004),lt(ge,1e-7),lt(Z,2e-6),lt(j,2e-5)],s0=[new Nt({source:{asset:Y,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:w,asset:Y,fee:{amount:.18,asset:f}},contract:F().PolkadotXcm().transferAssetsToPara32WithFee()}),new Nt({source:{asset:f,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:w,asset:f,fee:{amount:.18,asset:f}},contract:F().PolkadotXcm().transferAssetsToPara32()}),new Nt({source:{asset:h,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:F().PolkadotXcm().transferAssetsToPara32()})],wx=[new Nt({source:{asset:Z,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{asset:Z,balance:a().evm().erc20()}},destination:{chain:R,asset:H,fee:{amount:y().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Nt({source:{asset:te,balance:a().evm().erc20(),fee:{asset:v,balance:a().substrate().system().account()},destinationFee:{asset:te,balance:a().evm().erc20()}},destination:{chain:R,asset:de,fee:{amount:y().Wormhole().TokenRelayer().calculateRelayerFee(),asset:de}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],so=new e0({chain:B,routes:[...t0,...s0]});import{AssetRoute as no,ChainRoutes as n0}from"@galacticcouncil/xc-core";var a0=[new no({source:{asset:U,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:U,fee:{amount:.01,asset:U}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],o0=[new no({source:{asset:U,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:w,asset:U,fee:{amount:.1,asset:U}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],ao=new n0({chain:at,routes:[...a0,...o0]});import{AssetRoute as r0,ChainRoutes as i0}from"@galacticcouncil/xc-core";var c0=[new r0({source:{asset:We,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:We}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],oo=new i0({chain:St,routes:[...c0]});import{AssetRoute as m0,ChainRoutes as u0}from"@galacticcouncil/xc-core";var l0=[new m0({source:{asset:le,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:le,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:le}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],ro=new u0({chain:Et,routes:[...l0]});import{AssetRoute as d0,ChainRoutes as f0}from"@galacticcouncil/xc-core";var p0=[new d0({source:{asset:pe,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:pe,fee:{amount:.2,asset:pe}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],io=new f0({chain:_t,routes:[...p0]});import{AssetRoute as h0,ChainRoutes as b0}from"@galacticcouncil/xc-core";var y0=[new h0({source:{asset:ve,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:ve,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:ve}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],co=new b0({chain:Ft,routes:[...y0]});import{AssetRoute as x0,ChainRoutes as g0}from"@galacticcouncil/xc-core";var A0=[new x0({source:{asset:Xe,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:Xe,fee:{amount:2,asset:Xe}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],mo=new g0({chain:It,routes:[...A0]});import{AssetRoute as w0,ChainRoutes as C0}from"@galacticcouncil/xc-core";var k0=[new w0({source:{asset:fe,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.03,asset:fe}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],uo=new C0({chain:Dt,routes:[...k0]});import{AssetRoute as T0,ChainRoutes as v0}from"@galacticcouncil/xc-core";var P0=[new T0({source:{asset:Re,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:Re,fee:{amount:.205,asset:Re}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],lo=new v0({chain:Rt,routes:[...P0]});var fo=[co,za,$a,Ja,Qa,Za,eo,so,ao,lo,oo,ro,io,mo,uo];import{AssetRoute as po,ChainRoutes as B0}from"@galacticcouncil/xc-core";var F0=[new po({source:{asset:j,balance:a().solana().native(),destinationFee:{asset:j,balance:a().solana().native()}},destination:{chain:d,asset:j,fee:{amount:0,asset:j}},program:ms().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new po({source:{asset:ne,balance:a().solana().token(),fee:{asset:j,balance:a().solana().native()},destinationFee:{asset:ne,balance:a().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:ms().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],ho=new B0({chain:ht,routes:[...F0]});var bo=[ho];import{AssetRoute as X0,ChainRoutes as E0}from"@galacticcouncil/xc-core";var I0=[new X0({source:{asset:ae,balance:a().sui().native(),destinationFee:{asset:ae,balance:a().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:Qs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],yo=new E0({chain:Lt,routes:[...I0]});var xo=[yo];import{AssetRoute as go,ChainRoutes as R0}from"@galacticcouncil/xc-core";import{AssetRoute as Kg}from"@galacticcouncil/xc-core";var en=0;var _0=new go({source:{asset:P,balance:a().substrate().system().account(),fee:{asset:P,balance:a().substrate().system().account(),extra:en},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:w,asset:P,fee:{amount:.002,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),S0=new go({source:{asset:P,balance:a().substrate().system().account(),fee:{asset:P,balance:a().substrate().system().account(),extra:en},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:Ht,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ao=new R0({chain:Qe,routes:[S0,_0]});import{AssetRoute as wo,ChainRoutes as L0}from"@galacticcouncil/xc-core";var D0="0",Gt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===D0?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),tn=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:Gt()});var H0=[new wo({source:{asset:f,balance:Gt(),fee:tn(),destinationFee:{balance:Gt()}},destination:{chain:Qe,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],W0=[new wo({source:{asset:P,balance:Gt(),fee:tn(),destinationFee:{balance:Gt()}},destination:{chain:Qe,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Co=new L0({chain:Ht,routes:[...H0,...W0]});var ko=[Ao,Co];var M0=[...Ka,...fo,...bo,...xo,...ko],V0=new Map(M0.map(t=>[t.chain.key,t]));import{Parachain as Eo}from"@galacticcouncil/xc-core";import{TransferValidation as To,TransferValidationError as vo}from"@galacticcouncil/xc-core";var ys=class extends To{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:r}=s;if(r.amount<o.amount)throw new vo("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},xs=class extends To{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(o,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new vo("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new me(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};import{TransferValidation as Po,TransferValidationError as Bo}from"@galacticcouncil/xc-core";var gs=class extends Po{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new me(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain;if(await new me(r).getSystemAccountBalance(n)===0n)throw new Bo("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},As=class extends Po{async validate(e){let{asset:s,sender:n,source:o}=e,r=o.chain;if(await new me(r).checkIfFrozen(n,s))throw new Bo("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Fo,TransferValidationError as Xo}from"@galacticcouncil/xc-core";var U0=12,O0=1,K0=18,ws=class extends Fo{async skipFor(e){let{destination:s}=e,n=s.chain,o=new Ve(n),r=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain,i=new Ve(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),l=c.min||O0,p=c.decimals||U0,b=l*Math.pow(10,p),A=await i.getAssetBalance(n,u);if(BigInt(b*1.1)>A)throw new Xo("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},Cs=class extends Fo{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,r=o.chain,i=new Ve(r),u=r.getBalanceAssetId(v),c=r.getAssetDecimals(v)||K0,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(l))throw new Xo("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var ke={isAny:()=>!0,isHydration:t=>t instanceof Eo&&t.parachainId===2034,isHub:t=>t instanceof Eo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},N0=[new ys(ke.isAny,ke.isAny),new xs(ke.isAny,ke.isAny),new gs(ke.isAny,ke.isHub),new As(ke.isHub,ke.isAny),new ws(ke.isAny,ke.isHydration),new Cs(ke.isHydration,ke.isAny)];var Ro={};jt(Ro,{AssethubDex:()=>nn,HydrationDex:()=>sn});import{pool as G0,sor as q0,tx as j0}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as z0}from"@galacticcouncil/common";import{memoize1 as $0}from"@thi.ng/memoize";var{PoolType:ks}=G0,{TradeRouteBuilder:J0,TradeRouter:Q0}=q0,{TxBuilderFactory:Y0}=j0,sn=class{chain;client;poolCtx;txBuilder;getCtx=$0(async e=>{console.log("init swap router",e,"\u2705");let s=new Q0(this.poolCtx);return s.withFilter({useOnly:[ks.Aave,ks.Omni,ks.Stable,ks.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ve(this.chain),this.txBuilder=new Y0(s.client,s.evm)}async getCalldata(e,s,n,o,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=o.amount,l=await this.getCtx(1),p=await l.getMostLiquidRoute(i,u),b=await l.getBuy(i,u,c,p);return(await(await this.txBuilder.trade(b).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,o){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(r,i),p=await c.getBuy(r,i,u,l);return{amount:p.amountIn,route:J0.build(p.swaps)}}catch(l){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let r=o*s,i=Math.pow(10,z0);return r/BigInt(i)}};import{encodeLocation as Io}from"@galacticcouncil/common";var nn=class{chain;client;constructor(e){this.chain=e,this.client=new me(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Io(o),Io(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as eu}from"@galacticcouncil/xc-core";import{Asset as Z0}from"@galacticcouncil/xc-core";function Ts(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Z0({key:[o,s,e].join("_"),originSymbol:n})}function _o(t){let{decimals:e,id:s}=t;return{asset:Ts(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function So(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Ts(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var an=class extends eu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!o(r)&&r.origin===1e3).forEach(r=>{let i=Ts(r),u=_o(r),c=So(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,kt(i)),this.updateChainRoute(s,Tt(i))})}};export{an as HydrationConfigService,Wo as assetsMap,Ma as builders,Lr as chainsMap,Ca as clients,Ro as dex,V0 as routesMap,Va as tags,N0 as validations};
1
+ var Fo=Object.defineProperty;var Kt=(t,e)=>{for(var s in e)Fo(t,s,{get:e[s],enumerable:!0})};import{Asset as x}from"@galacticcouncil/xc-core";var Ce=new x({key:"aave",originSymbol:"AAVE"}),ke=new x({key:"ajun",originSymbol:"AJUN"}),L=new x({key:"astr",originSymbol:"ASTR"}),X=new x({key:"bnc",originSymbol:"BNC"}),ks=new x({key:"bsx",originSymbol:"BSX"}),Te=new x({key:"cfg_new",originSymbol:"CFG"}),me=new x({key:"cru",originSymbol:"CRU"}),ue=new x({key:"dai",originSymbol:"DAI"}),ee=new x({...ue,key:"dai_mwh"}),g=new x({key:"dot",originSymbol:"DOT"}),H=new x({key:"eth",originSymbol:"ETH"}),ve=new x({key:"ena",originSymbol:"ENA"}),T=new x({key:"glmr",originSymbol:"GLMR"}),j=new x({key:"hdx",originSymbol:"HDX"}),E=new x({key:"ibtc",originSymbol:"IBTC"}),_=new x({key:"intr",originSymbol:"INTR"}),se=new x({key:"jitoSol",originSymbol:"jitoSOL"}),P=new x({key:"ksm",originSymbol:"KSM"}),Be=new x({key:"ldo",originSymbol:"LDO"}),Pe=new x({key:"laos",originSymbol:"LAOS"}),Fe=new x({key:"lbtc",originSymbol:"LBTC"}),le=new x({key:"ewt",originSymbol:"EWT"}),Xe=new x({key:"link",originSymbol:"LINK"}),O=new x({key:"myth",originSymbol:"MYTH"}),Ee=new x({key:"neuro",originSymbol:"NEURO"}),de=new x({key:"pen",originSymbol:"PEN"}),Ie=new x({key:"paxg",originSymbol:"PAXG"}),Re=new x({key:"sky",originSymbol:"SKY"}),q=new x({key:"sol",originSymbol:"SOL"}),ne=new x({key:"sui",originSymbol:"SUI"}),_e=new x({key:"susde",originSymbol:"sUSDe"}),Oe=new x({key:"susds",originSymbol:"sUSDS"}),pe=new x({...Oe,key:"susds_mwh"}),Se=new x({key:"tbtc",originSymbol:"tBTC"}),De=new x({key:"trac",originSymbol:"TRAC"}),Le=new x({key:"unq",originSymbol:"UNQ"}),f=new x({key:"usdt",originSymbol:"USDT"}),he=new x({...f,key:"usdt_mwh"}),dt=new x({...f,key:"usdt_eth"}),b=new x({key:"usdc",originSymbol:"USDC"}),be=new x({...b,key:"usdc_mwh"}),ft=new x({...b,key:"usdc_eth"}),z=new x({key:"vastr",originSymbol:"vASTR"}),W=new x({key:"vdot",originSymbol:"vDOT"}),Tt=new x({key:"weth",originSymbol:"WETH"}),Y=new x({...Tt,key:"weth_mwh"}),Ke=new x({key:"wbtc",originSymbol:"WBTC"}),ye=new x({...Ke,key:"wbtc_mwh"}),He=new x({key:"wsteth",originSymbol:"wstETH"}),je=new x({key:"wud",originSymbol:"WUD"}),Xo=[Ce,ke,L,ks,Te,me,X,ue,ee,g,ve,H,T,j,E,_,P,Be,Pe,Fe,le,se,Xe,O,Ee,Ie,de,Re,q,ne,_e,Oe,pe,De,Se,Le,b,be,ft,f,he,dt,z,W,Ke,ye,Tt,Y,He,je],Eo=new Map(Xo.map(t=>[t.key,t]));import{ChainEcosystem as Io,EvmChain as Ro}from"@galacticcouncil/xc-core";import{mainnet as _o}from"viem/chains";var I=new Ro({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ce,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Te,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Tt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ue,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:ve,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:_e,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Oe,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Se,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ke,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Fe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Be,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ie,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Re,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:De,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:He,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Io.Ethereum,evmChain:_o,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var sn=[I];import{ChainEcosystem as So,Parachain as Do}from"@galacticcouncil/xc-core";var vt=new Do({assetsData:[{asset:ke,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:So.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as Lo,Parachain as nn}from"@galacticcouncil/xc-core";var an={assetsData:[{asset:g,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:je,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:P,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Lo.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"]},w=new nn({...an,key:"assethub",name:"AssetHub Polkadot"}),tt=new nn({...an,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Ho,Parachain as Wo}from"@galacticcouncil/xc-core";var Z=new Wo({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:g,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:E,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ho.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Mo,Parachain as Vo}from"@galacticcouncil/xc-core";var Oo=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new Vo({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:g,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:f,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:L,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:T,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:E,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Mo.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Oo});import{ChainEcosystem as Ko,Parachain as Uo,XcmVersion as No}from"@galacticcouncil/xc-core";var Bt=new Uo({assetsData:[{asset:me,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ko.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesSdkCompat:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:No.v3});import{ChainEcosystem as jo,EvmParachain as zo}from"@galacticcouncil/xc-core";import{defineChain as $o}from"viem";import{getSs58AddressInfo as Go}from"@polkadot-api/substrate-bindings";var qo="ETH\0",Jt=class{async toH160(e){let s=Go(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(qo),r=n.slice(o.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var Jo=new Jt,Ts=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://rpc.helikon.io/hydradx","https://hydration.ibp.network","https://rpc.cay.hydration.cloud","https://rpc.parm.hydration.cloud","https://rpc.roach.hydration.cloud","https://rpc.zipp.hydration.cloud","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],vs=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Qo=$o({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Ts,webSocket:vs},default:{http:Ts,webSocket:vs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new zo({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Ce,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ke,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Te,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:me,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:g,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:H,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:ve,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:E,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:se,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:le,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:P,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Pe,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Fe,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Xe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ie,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:O,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ee,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:de,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Re,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:q,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ne,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:_e,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Oe,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:pe,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Se,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:Le,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:b,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:be,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ft,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:f,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:he,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:dt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:z,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ke,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:Tt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Y,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:He,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:je,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:jo.Polkadot,evmChain:Qo,evmResolver:Jo,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:vs,rpcs:Ts});import{ChainEcosystem as Yo,Parachain as Zo}from"@galacticcouncil/xc-core";var xe=new Zo({assetsData:[{asset:_,decimals:10,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:E,decimals:8,id:{Token:E.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:g,decimals:10,id:{Token:g.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:j,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:W,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Yo.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});import{ChainEcosystem as er,Parachain as tr}from"@galacticcouncil/xc-core";var Pt=new tr({assetsData:[{asset:Pe,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:er.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as sr,EvmParachain as nr}from"@galacticcouncil/xc-core";import{defineChain as ar}from"viem";var or=ar({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),B=new nr({assetsData:[{asset:T,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ee,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:q,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:se,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:pe,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ne,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:be,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:he,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:Y,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:g,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:f,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:sr.Polkadot,evmChain:or,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as rr,Parachain as ir}from"@galacticcouncil/xc-core";var st=new ir({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:rr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as cr,Parachain as mr}from"@galacticcouncil/xc-core";var Ft=new mr({assetsData:[{asset:Ee,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:cr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as ur,Parachain as lr,XcmVersion as dr}from"@galacticcouncil/xc-core";var Xt=new lr({assetsData:[{asset:de,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:ur.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesSdkCompat:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:dr.v3});import{ChainEcosystem as fr,Parachain as pr}from"@galacticcouncil/xc-core";var hr={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:fr.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"},on=new pr({...hr,key:"polkadot"});import{ChainEcosystem as br,Parachain as yr}from"@galacticcouncil/xc-core";var Et=new yr({assetsData:[{asset:Le,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:br.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as xr,Parachain as gr,XcmVersion as Ar}from"@galacticcouncil/xc-core";var It=new gr({assetsData:[{asset:le,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:xr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesSdkCompat:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Ar.v3});var rn=[vt,w,tt,Z,M,Bt,d,Pt,Ft,xe,B,st,Xt,on,Et,It];import{ChainEcosystem as wr,SolanaChain as Cr}from"@galacticcouncil/xc-core";var pt=new Cr({id:101,key:"solana",name:"Solana",assetsData:[{asset:q,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:wr.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var cn=[pt];import{ChainEcosystem as kr,SuiChain as Tr}from"@galacticcouncil/xc-core";var Rt=new Tr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ne,decimals:9}],ecosystem:kr.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var mn=[Rt];import{ChainEcosystem as vr,Parachain as Br}from"@galacticcouncil/xc-core";var ze=new Br({assetsData:[{asset:P,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:vr.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Pr,Parachain as Fr}from"@galacticcouncil/xc-core";var _t=new Fr({assetsData:[{asset:ks,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:P,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:f,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Pr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var un=[ze,_t];var Xr=[...sn,...rn,...cn,...mn,...un],Er=new Map(Xr.map(t=>[t.key,t]));import{AssetRoute as rs,ChainRoutes as am}from"@galacticcouncil/xc-core";var _a={};Kt(_a,{AssetMinBuilder:()=>nt,BalanceBuilder:()=>a,ContractBuilder:()=>R,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>Qe,FeeAmountBuilder:()=>y,FeeAssetBuilder:()=>jt,MoveBuilder:()=>zs,ProgramBuilder:()=>os,XcmTransferType:()=>oe,XcmVersion:()=>Je});import{SubstrateQueryConfig as Bs}from"@galacticcouncil/xc-core";function nt(){return{assetRegistry:Ir,assets:Rr}}function Ir(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Bs({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Bs({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Rr(){return{asset:()=>({build:({asset:t})=>new Bs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as _r,ContractConfig as ln}from"@galacticcouncil/xc-core";function dn(){return{erc20:Dr,native:Sr}}function Sr(){return{build:({address:t})=>new ln({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Dr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new ln({abi:_r.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as Ut}from"@galacticcouncil/xc-core";import{encodeAssetId as Ps,encodeLocation as Lr}from"@galacticcouncil/common";function fn(){return{assets:Hr,system:Mr,tokens:Vr,ormlTokens:Or,foreignAssets:Wr}}function Hr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Ps(n);return new Ut({module:"Assets",func:"Account",args:[o,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Wr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let r=Lr(o);return new Ut({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Mr(){return{account:()=>({build:({address:t})=>new Ut({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function Vr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Ps(n);return new Ut({module:"Tokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Or(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=Ps(n);return new Ut({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}import{SolanaQueryConfig as pn}from"@galacticcouncil/xc-core";function hn(){return{native:Kr,token:Ur}}function Kr(){return{build:({address:t})=>new pn({address:t,func:"rpc_getBalance",module:"Native"})}}function Ur(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new pn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as Nr}from"@galacticcouncil/xc-core";function bn(){return{native:Gr}}function Gr(){return{build:({address:t})=>new Nr({address:t,func:"sui_getBalance",module:"Native"})}}function a(){return{evm:dn,substrate:fn,solana:hn,sui:bn}}import{Abi as yn,ContractConfig as qr,Precompile as jr}from"@galacticcouncil/xc-core";import{encodeFunctionData as zr}from"viem";var $r=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],r=s.map(i=>zr({abi:yn[i.module],functionName:i.func,args:i.args}));return new qr({abi:yn.Batch,address:jr.Batch,args:[n,o,r,[]],func:"batchAll",module:"Batch"})}}),xn=()=>({batchAll:$r});import{Abi as Jr,ContractConfig as Qr,Wormhole as Yr}from"@galacticcouncil/xc-core";function St(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function $e(t){return typeof t=="object"?Object.values(t)[0]:t}function gn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:r}=e,i=r?r.chain:o.chain,u=Yr.fromChain(i),c=i.getAssetId(n);return new Qr({abi:Jr.Erc20,address:$e(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}import{addr as Zr,Abi as An,ContractConfig as wn,Precompile as Cn}from"@galacticcouncil/xc-core";import{big as ei}from"@galacticcouncil/common";var{Ss58Addr:kn}=Zr;function ti(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 Fs(t,e){let s=t.getAssetId(e);return typeof s=="string"?ti(s):s}function Tn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=Fs(o.chain,s);return new wn({abi:An.PolkadotXcm,address:Cn.PolkadotXcm,args:[n.chain.parachainId,kn.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=Fs(o.chain,s),i=Fs(o.chain,o.destinationFeeBalance),u=ei.toBigInt(n.fee.amount,n.fee.decimals);return new wn({abi:An.PolkadotXcm,address:Cn.PolkadotXcm,args:[n.chain.parachainId,kn.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:u}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as si,Abi as ni,ContractConfig as ai,Snowbridge as oi}from"@galacticcouncil/xc-core";var{Ss58Addr:ri}=si,ii=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r}=t,i=o.chain,u=r.chain,c=oi.fromChain(i),l=i.getAssetId(n),p=$e(l),h=n.originSymbol==="ETH",A=r.feeBreakdown.bridgeFeeInDot,k=r.fee.amount;return new ai({abi:ni.Snowbridge,address:c.getGateway(),args:[p,u.parachainId,[1,ri.getPubKey(e)],A,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),vn=()=>({sendToken:ii});import{mrl as Pn,Abi as Qt,ContractConfig as Yt,Precompile as Fn,Wormhole as at}from"@galacticcouncil/xc-core";import{PublicKey as Bn}from"@solana/web3.js";import{getAssociatedTokenAddress as ci}from"@solana/spl-token";var mi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,destination:i}=e,u=at.fromChain(r.chain),c=at.fromChain(t.moonchain),l=Fn.Bridge,p=r.chain.getAssetId(o),h=0,A=await Pn.createPayload(i.chain,s);return new Yt({abi:Qt.TokenBridge,address:u.getTokenBridge(),args:[$e(p),n,c.getWormholeId(),c.normalizeAddress(l),h,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),ui=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:r}=e,i=at.fromChain(o.chain),u=at.fromChain(t.moonchain),c=Fn.Bridge,l=0,p=await Pn.createPayload(r.chain,s);return new Yt({abi:Qt.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),li=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,l=at.fromChain(u),p=at.fromChain(c),h=e;if(c.isSolana()){let V=c.getAssetId(n);h=(await ci(new Bn(V),new Bn(e))).toBase58()}let A=u.getAssetId(n),k=0,F=0;return new Yt({abi:Qt.TokenBridge,address:l.getTokenBridge(),args:[$e(A),s,p.getWormholeId(),p.normalizeAddress(h),k,F],func:"transferTokens",module:"TokenBridge"})}}),di=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,r=at.fromChain(n.chain),i=at.fromChain(o.chain),u=0,c=0;return new Yt({abi:Qt.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Xn=()=>({transferTokens:li,transferTokensWithPayload:mi,wrapAndTransferETH:di,wrapAndTransferETHWithPayload:ui});import{Abi as fi,ContractConfig as pi,Wormhole as En}from"@galacticcouncil/xc-core";var hi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,l=En.fromChain(u),p=En.fromChain(c),h=0,A=0,k=u.getAssetId(n);return new pi({abi:fi.TokenRelayer,address:l.getTokenRelayer(),args:[$e(k),s,h,p.getWormholeId(),p.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),In=()=>({transferTokensWithRelay:hi});function Rn(){return{TokenBridge:Xn,TokenRelayer:In}}function R(){return{Batch:xn,Erc20:gn,PolkadotXcm:Tn,Snowbridge:vn,Wormhole:Rn}}import{ExtrinsicConfig as bi}from"@galacticcouncil/xc-core";var _n="AssetConversion",yi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=o,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(u),h=i.amount+i.amount*BigInt(t.slippage)/100n,A=u.amount;return new bi({module:_n,func:e,getTx:k=>k.getUnsafeApi().tx[_n][e]({path:[l,p],amount_out:A,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Sn=()=>({swapTokensForExactTokens:yi});import{hub as xi,MultiAddress as gi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ai}from"@galacticcouncil/xc-core";var wi="Assets",Ci=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let r=o.chain,{fee:i}=o,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Ai({module:wi,func:t,getTx:l=>l.getTypedApi(xi).tx.Assets.transfer({id:Number(c),target:gi.Id(n),amount:u})})}}},Dn=()=>({transfer:Ci});import{ExtrinsicConfig as ki}from"@galacticcouncil/xc-core";var Ln="Balances",Ti=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new ki({module:Ln,func:e,getTx:n=>n.getUnsafeApi().tx[Ln][e]({dest:s,keep_alive:t})})}},Hn=()=>({transferAll:Ti});import{hydration as vi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Bi}from"@galacticcouncil/xc-core";var Pi="Router",Fi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=o,c=n,l=c.getMetadataAssetId(r),p=c.getMetadataAssetId(i),h=i.amount,A=r.amount+r.amount*BigInt(t.slippage)/100n;return new Bi({module:Pi,func:"buy",getTx:k=>k.getTypedApi(vi).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:h,max_amount_in:A,route:u})})}}),Wn=()=>({buy:Fi});import{ExtrinsicConfig as Xi}from"@galacticcouncil/xc-core";var Mn="Utility",Ei=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new Xi({module:Mn,func:e,getTx:o=>{let r=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[Mn][e]({calls:r})}})}}},Vn=()=>({batchAll:Ei});import{Abi as Ii,ExtrinsicConfig as Ri}from"@galacticcouncil/xc-core";import{Binary as On}from"polkadot-api";import{encodeFunctionData as _i}from"viem";var Je=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(Je||{}),oe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(oe||{});var Kn="EthereumXcm",Si=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",r=_i({abi:Ii[n.module],functionName:n.func,args:n.args});return new Ri({module:Kn,func:e,getTx:i=>i.getUnsafeApi().tx[Kn][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:On.fromHex(n.address)},value:[0n,0n,0n,0n],input:On.fromHex(r),access_list:void 0}}})})}}},Xs=()=>({transact:Si});import{ExtrinsicConfig as gt}from"@galacticcouncil/xc-core";import{big as Us}from"@galacticcouncil/common";import{multiloc as sc,ChainEcosystem as Vs}from"@galacticcouncil/xc-core";import{Binary as nc}from"polkadot-api";import{XcmV3Junctions as fe,XcmV3Junction as qt,XcmV3JunctionNetworkId as ia,XcmV3MultiassetFungibility as yt,XcmV4Instruction as $,XcmV4AssetAssetFilter as Lt,XcmV4AssetWildAsset as Ht,XcmV3WeightLimit as Os,XcmV2MultiassetWildFungibility as ac,XcmV2OriginKind as oc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Di}from"@galacticcouncil/descriptors";var re=340282366920938463463374607431768211455n,ht="0x0000000000000000000000000000000000000000000000000000000000000000",Dt={parents:1,interior:Di.Here()},Un=0,Nn=1e3,Gn=1002,qn=1,bt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var jn="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as $i,XcmV3MultiassetFungibility as Is,XcmV3WeightLimit as Ji,XcmV4AssetAssetFilter as Qi,XcmV4AssetWildAsset as Yi,XcmV4Instruction as Nt}from"@galacticcouncil/descriptors";import{Binary as Zi}from"polkadot-api";import{acc as Li}from"@galacticcouncil/xc-core";import{XcmV3Junction as zn}from"@galacticcouncil/descriptors";import{FixedSizeBinary as $n}from"polkadot-api";import{getSs58AddressInfo as Hi}from"@polkadot-api/substrate-bindings";import{toHex as Wi}from"@polkadot-api/utils";function U(t){if(t.length===42&&t.startsWith("0x"))return zn.AccountKey20({key:$n.fromHex(t),network:void 0});let s=Hi(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return zn.AccountId32({id:$n.fromHex(Wi(s.publicKey)),network:void 0})}function Zt(t,e,s){return Li.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as Jn}from"@galacticcouncil/xc-core";function Qn(t,e){let s=Jn.findNestedKey(t,"GeneralIndex"),n=Jn.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(r)?!1:Number(o)>Number(r)}function N(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ss={};Kt(ss,{ETHER_TOKEN_ADDRESS:()=>Es,erc20Location:()=>Oi,erc20LocationReanchored:()=>Ki,ethereumLocation:()=>ea,parachainLocation:()=>Vi});import{XcmV3Junctions as es,XcmV3Junction as ts,XcmV3JunctionNetworkId as Mi}from"@galacticcouncil/descriptors";import{Binary as Yn}from"polkadot-api";var Es="0x0000000000000000000000000000000000000000",Zn=t=>ts.GlobalConsensus(Mi.Ethereum({chain_id:BigInt(t)}));function ea(t){return{parents:2,interior:es.X1(Zn(t))}}function Vi(t){return{parents:1,interior:es.X1(ts.Parachain(t))}}function Oi(t,e){return e===Es?ea(t):{parents:2,interior:es.X2([Zn(t),ts.AccountKey20({key:Yn.fromHex(e)})])}}function Ki(t){return t===Es?{parents:0,interior:{type:"Here"}}:{parents:0,interior:es.X1(ts.AccountKey20({key:Yn.fromHex(t)}))}}import{encodeLocation as ta}from"@galacticcouncil/common";import{multiloc as Ui}from"@galacticcouncil/xc-core";function G(t,e){return Ni(e)>=4?ta(t):Gi(t)}function Ni(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Gi(t){return{type:"Concrete",value:ta(t)}}var qi=1e3;function ji(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function zi(t){if(t)return ji(t)?qi:Ui.findParachain(t)}function sa(t,e,s,n){let o=e.getAssetXcmLocation(t),r=zi(o),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function Rs(t,e){let s="V4",n=G(N(e,t),s),o=Zi.fromHex(ht);return[Nt.ReserveAssetDeposited([{id:Dt,fun:Is.Fungible(re)},{id:n,fun:Is.Fungible(re)}]),Nt.ClearOrigin(),Nt.BuyExecution({fees:{id:Dt,fun:Is.Fungible(re)},weight_limit:Ji.Unlimited()}),Nt.DepositAsset({assets:Qi.Wild(Yi.AllCounted(2)),beneficiary:{parents:0,interior:$i.X1(U(bt))}}),Nt.SetTopic(o)]}import{XcmV4Instruction as _s,XcmV3MultiassetFungibility as Ss,XcmV3WeightLimit as ec}from"@galacticcouncil/descriptors";function na(t,e){let s="V4",n=G(N(e,t),s),o=ns("V4",U(jn),U(bt),n,ht);return[_s.WithdrawAsset([{id:Dt,fun:Ss.Fungible(re)},{id:n,fun:Ss.Fungible(re)}]),_s.ClearOrigin(),_s.BuyExecution({fees:{id:Dt,fun:Ss.Fungible(re)},weight_limit:ec.Unlimited()}),...o.value]}import{XcmV3Junctions as Ds,XcmV3Junction as tc,XcmV3MultiassetFungibility as Gt,XcmV3WeightLimit as Ls,XcmV4AssetAssetFilter as Hs,XcmV4AssetWildAsset as Ws,XcmV4Instruction as ge}from"@galacticcouncil/descriptors";import{Binary as aa}from"polkadot-api";function oa(t,e){let s="V4",n=G(N(e,t),s),o=aa.fromHex(ht);return[ge.WithdrawAsset([{id:n,fun:Gt.Fungible(re)}]),ge.ClearOrigin(),ge.BuyExecution({fees:{id:n,fun:Gt.Fungible(re)},weight_limit:Ls.Unlimited()}),ge.DepositAsset({assets:Hs.Wild(Ws.AllCounted(1)),beneficiary:{parents:0,interior:Ds.X1(U(bt))}}),ge.SetTopic(o)]}function Ms(t,e){let s="V4",n=G(N(e,t),s);return[ge.BuyExecution({fees:{id:n,fun:Gt.Fungible(re)},weight_limit:Ls.Unlimited()}),ge.DepositAsset({assets:Hs.Wild(Ws.AllCounted(1)),beneficiary:{parents:0,interior:Ds.X1(U(bt))}})]}function ra(t,e,s){let n="V4",o=G(N(e,t),n),r=aa.fromHex(ht),i=Ms(t,s);return[ge.WithdrawAsset([{id:o,fun:Gt.Fungible(re)}]),ge.ClearOrigin(),ge.BuyExecution({fees:{id:o,fun:Gt.Fungible(re)},weight_limit:Ls.Unlimited()}),ge.DepositReserveAsset({assets:Hs.Wild(Ws.AllCounted(1)),dest:{parents:1,interior:Ds.X1(tc.Parachain(s.parachainId))},xcm:i}),ge.SetTopic(r)]}var ca=[Vs.Polkadot,Vs.Kusama],rc={parents:1,interior:fe.X1(qt.Parachain(1e3))},ic=t=>t.parents===1&&t.interior==="Here",cc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:ca.includes(t.ecosystem)&&ca.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ma=t=>{let{interior:e}=t;return e.type==="X1"&&e.value.type==="GlobalConsensus"?e.value.value.type==="Ethereum":!1},Ue=(t,e,s)=>{if(cc(e,s)){let o=s.ecosystem===Vs.Polkadot?ia.Polkadot():ia.Kusama();return{type:t,value:{parents:2,interior:fe.X2([qt.GlobalConsensus(o),qt.Parachain(s.parachainId)])}}}if(s.parachainId===Un)return{type:t,value:{parents:1,interior:fe.Here()}};let n=s.key==="ethereum"?Nn:s.parachainId;return{type:t,value:{parents:1,interior:fe.X1(qt.Parachain(n))}}},xt=(t,e)=>({type:t,value:{parents:0,interior:fe.X1(e)}}),Ks=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:ic(s)?rc:s}}:{type:e},ot=(t,e)=>({id:t,fun:yt.Fungible(e)}),ua=(t,e,s)=>({type:t,value:[$.DepositAsset({assets:Lt.Wild(Ht.AllCounted(s)),beneficiary:{parents:0,interior:fe.X1(e)}})]});var ns=(t,e,s,n,o)=>{let r=nc.fromHex(o);return{type:t,value:[$.SetAppendix([$.DepositAsset({assets:Lt.Wild(Ht.All()),beneficiary:{parents:0,interior:fe.X1(s)}})]),$.InitiateReserveWithdraw({assets:Lt.Wild(Ht.AllOf({id:n,fun:ac.Fungible()})),reserve:ss.ethereumLocation(qn),xcm:[$.BuyExecution({fees:{id:mc(n),fun:yt.Fungible(1n)},weight_limit:Os.Unlimited()}),$.DepositAsset({assets:Lt.Wild(Ht.AllCounted(1)),beneficiary:{parents:0,interior:fe.X1(e)}}),$.SetTopic(r)]}),$.SetTopic(r)]}},mc=t=>{let e=sc.findNestedKey(t,"key");return e?{parents:0,interior:fe.X1(qt.AccountKey20({key:e.key}))}:{parents:0,interior:fe.Here()}},la=(t,e,s,n,o,r)=>({type:t,value:[$.WithdrawAsset([{id:s,fun:yt.Fungible(n)}]),$.BuyExecution({fees:{id:s,fun:yt.Fungible(n)},weight_limit:Os.Unlimited()}),$.Transact({origin_kind:oc.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:o}),$.RefundSurplus(),$.DepositAsset({assets:Lt.Wild(Ht.AllCounted(1)),beneficiary:{parents:0,interior:fe.X1(e)}})]}),da=(t,e,s,n,o,r)=>({type:t,value:[$.WithdrawAsset([{id:s,fun:yt.Fungible(o)}]),$.BuyExecution({fees:{id:s,fun:yt.Fungible(o)},weight_limit:Os.Unlimited()}),$.TransferAsset({assets:[{id:s,fun:yt.Fungible(n)}],beneficiary:{parents:0,interior:fe.X1(r)}}),$.RefundSurplus(),$.DepositAsset({assets:Lt.Wild(Ht.AllCounted(1)),beneficiary:{parents:0,interior:fe.X1(e)}})]});var ie="PolkadotXcm",uc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=U(t),i=o.chain,u=n.chain,c="V4",l=G(N(i,s),c),p=G(N(i,n.fee),c),h=ot(l,e),A=ot(p,n.fee.amount),k="limited_reserve_transfer_assets";return new gt({module:ie,func:k,getTx:F=>{let V=F.getUnsafeApi().tx[ie][k];return s.key===n.fee.key?V({dest:Ue(c,i,u),beneficiary:xt(c,r),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Qn(l,p)?V({dest:Ue(c,i,u),beneficiary:xt(c,r),assets:{type:c,value:[A,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):V({dest:Ue(c,i,u),beneficiary:xt(c,r),assets:{type:c,value:[h,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),lc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=U(t),i=o.chain,u=n.chain,c="V4",l=G(N(i,s),c),p=ot(l,e),h=Ue(c,i,u),A=xt(c,r),k={type:c,value:[p]},F="limited_teleport_assets";return new gt({module:ie,func:F,getTx:V=>V.getUnsafeApi().tx[ie][F]({dest:h,beneficiary:A,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),dc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=U(t),i=o.chain,u=n.chain,c=i.xcmVersion??"V4",l=G(N(i,s),c),p=ot(l,e),h=Ue(c,i,u),A=xt(c,r),k={type:c,value:[p]},F="reserve_transfer_assets";return new gt({module:ie,func:F,getTx:V=>V.getUnsafeApi().tx[ie][F]({dest:h,beneficiary:A,assets:k,fee_asset_item:0})})}}),fc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=U(t),i=o.chain,u=n.chain,c="V4",l=G(N(i,s),c),p=ot(l,e),h=Ue(c,i,u),A=xt(c,r),k={type:c,value:[p]},F="transfer_assets";return new gt({module:ie,func:F,getTx:V=>V.getUnsafeApi().tx[ie][F]({dest:h,beneficiary:A,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),pc=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:r,sender:i,source:u,transact:c})=>{let l="V4",p=u.chain,h=o.chain,A=o.fee.amount,k=o.fee;c&&(h=c.chain,A=Us.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let F=U(i),V=c||h.usesCexForwarding?Zt(p,i,h):e,D=U(V),{transferType:Q}=t,K=G(N(p,s),l),C=G(N(p,k),l),Ve=ot(K,n),lt=ot(C,A),Ge=s.isEqual(k),Ze=Ue(l,p,h),qe={type:l,value:Ge?[Ve]:[lt,Ve]},et=Ks(l,Q,K),Ot={type:l,value:Ge?K:C},Cs=Ks(l,Q,C),kt;ma(K)?kt=ns(l,D,F,K,r):kt=ua(l,D,qe.value.length);let $t="transfer_assets_using_type_and_then";return new gt({module:ie,func:$t,getTx:Po=>Po.getUnsafeApi().tx[ie][$t]({dest:Ze,assets:qe,assets_transfer_type:et,remote_fees_id:Ot,fees_transfer_type:Cs,custom_xcm_on_dest:kt,weight_limit:{type:"Unlimited"}})})}}),hc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=o.chain,c=r.chain,l=Zt(u,n,c),p=U(l),{fee:h}=r,A=G(N(c,h),i),k=Us.toBigInt(e.fee,h.decimals);return new gt({module:ie,func:t,getTx:F=>F.getUnsafeApi().tx[ie][t]({dest:Ue(i,u,c),message:la(i,p,A,k,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:r,sender:i,source:u,destination:c}=s,l="V4",p=u.chain,h=c.chain,A=Zt(p,i,h),k=U(A),F=U(o),V=G(N(h,r),l),{fee:D}=c,Q=Us.toBigInt(e.fee,D.decimals),K=n>D.amount?n-(D.amount+Q):n;return new gt({module:ie,func:t,getTx:C=>C.getUnsafeApi().tx[ie][t]({dest:Ue(l,p,h),message:da(l,k,V,K,Q,F)})})}})}},Ns=()=>({limitedReserveTransferAssets:uc,limitedTeleportAssets:lc,reserveTransferAssets:dc,transferAssets:fc,transferAssetsUsingTypeAndThen:pc,send:hc});import{ExtrinsicConfig as gc}from"@galacticcouncil/xc-core";import{XcmV3Junctions as bc,XcmV3Junction as yc,XcmV3MultiassetFungibility as xc}from"@galacticcouncil/descriptors";var fa=(t,e)=>({parents:1,interior:bc.X2([yc.Parachain(t.parachainId),e])}),pa=(t,e)=>({id:t,fun:xc.Fungible(e)});var ha="XTransfer",Ac=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r="V3",i=U(t),u=o.chain,c=n.chain,l=G(N(u,s),r),p=pa(l,e),h=fa(c,i),A="transfer";return new gc({module:ha,func:A,getTx:k=>k.getUnsafeApi().tx[ha][A]([p,h,{refTime:5e9,proofSize:0}])})}}),Gs=()=>({transfer:Ac});function m(){return{assetConversion:Sn,assets:Dn,balances:Hn,ethereumXcm:Xs,polkadotXcm:Ns,router:Wn,utility:Vn,xTransfer:Gs}}function Qe(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}import{Abi as xa,Snowbridge as Rc,Wormhole as ya}from"@galacticcouncil/xc-core";var ba={};Kt(ba,{AssethubClient:()=>ce,BaseClient:()=>Ae,HydrationClient:()=>We});import{encodeLocation as wc}from"@galacticcouncil/common";import{hub as Cc,XcmVersionedAssetId as kc}from"@galacticcouncil/descriptors";var Ae=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Cc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=wc(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,kc.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Tc,XcmV5Junction as vc,XcmVersionedLocation as Bc}from"@galacticcouncil/descriptors";import{encodeLocation as Pc}from"@galacticcouncil/common";import{Twox128 as Fc,u128 as Xc}from"@polkadot-api/substrate-bindings";import{toHex as Ec}from"@polkadot-api/utils";var ce=class extends Ae{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=Pc(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=Ec(Fc(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let r=Xc.dec(o);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=Bc.V5({parents:1,interior:Tc.X1(vc.Parachain(s))}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!o.success)throw Error("Can't query XCM delivery fee.");let r=o.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as Ic}from"@galacticcouncil/descriptors";var We=class extends Ae{constructor(e){super(e,Ic)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=o;return BigInt(r)-BigInt(i)}};function _c(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,r=ya.fromChain(n),i=ya.fromChain(o),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:xa.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function Sc(){return{TokenRelayer:_c}}function Dc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,r=s,i=Rc.fromChain(o),u=new Ae(r),c=new ce(t.hub),l=Rs(e,r),[p,h]=await Promise.all([u.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,r.parachainId)]),A=h+St(p,25n),k=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:xa.Snowbridge,address:i.getGateway(),args:[k,r.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,r=new ce(t.hub),i=na(e,o),u=Rs(e,o),[c,l,p,h,A]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,Gn),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,o.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+l+St(p,25n)+h+St(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:A}}}})}}function Lc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,r=n,i=t?.reserve;if(sa(e,o,r,i),i){let A=new Ae(r),k=new Ae(i),F=Ms(e,r),V=ra(e,i,r),[D,Q]=await Promise.all([A.calculateDestinationFee(F,e),k.calculateDestinationFee(V,e)]),K=Q+D,C=St(K,20n),Ve=C-K;return{amount:C,breakdown:{reserveFee:Q,destinationFee:D,margin:Ve}}}let u=new Ae(r),c=oa(e,r),l=await u.calculateDestinationFee(c,e),p=St(l,20n),h=p-l;return{amount:p,breakdown:{totalFee:l,margin:h}}}})}}function y(){return{XcmPaymentApi:Lc,Snowbridge:Dc,Wormhole:Sc}}var Hc="0";function Wc(){return{build:async({address:t,chain:e})=>{let n=await new We(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Hc,r=e.findAssetById(o);return r?r.asset:j}}}var Mc=()=>({accountCurrencyMap:Wc});function jt(){return{multiTransactionPayment:Mc}}import{mrl as wa,Precompile as Ca,ProgramConfig as ka,Wormhole as as}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as Vc,NATIVE_MINT as ga,TOKEN_PROGRAM_ID as Oc,createCloseAccountInstruction as Kc,createInitializeAccountInstruction as Uc,getMinimumBalanceForRentExemptAccount as Nc,getAssociatedTokenAddress as Gc}from"@solana/spl-token";import{Keypair as qs,PublicKey as js,SystemProgram as Aa}from"@solana/web3.js";import{UniversalAddress as Ta}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as va,createTransferNativeWithPayloadInstruction as Ba,getWrappedMeta as qc}from"@wormhole-foundation/sdk-solana-tokenbridge";var jc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,l=as.fromChain(u),p=as.fromChain(t.moonchain),h=Ca.Bridge,A=await wa.createPayload(i.chain,s),k=new js(r),F=new Ta(h),V=p.getWormholeId(),D=k,Q=0,K=qs.generate(),C=qs.generate(),Ve=await Nc(c.connection),lt=Aa.createAccount({fromPubkey:D,newAccountPubkey:C.publicKey,lamports:Ve,space:Vc,programId:Oc}),Ge=Aa.transfer({fromPubkey:D,lamports:n,toPubkey:C.publicKey}),Ze=Uc(C.publicKey,ga,D),qe=va(l.getTokenBridge(),C.publicKey,D,n),et=Ba(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,K.publicKey,C.publicKey,ga,Q,n,F.toUint8Array(),V,A.toU8a()),Ot=Kc(C.publicKey,D,D);return new ka({instructions:[lt,Ge,Ze,qe,et,Ot],signers:[K,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ve)})}})}),zc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,sender:i,destination:u}=e,c=r.chain,l=c,p=as.fromChain(c),h=as.fromChain(t.moonchain),A=Ca.Bridge,k=await wa.createPayload(u.chain,s),F=new js(i),V=r.chain.getAssetId(o),D=new js(V),Q=await Gc(D,F),K=new Ta(A),C=h.getWormholeId();if(await qc(l.connection,p.getTokenBridge(),D).catch(et=>null).then(et=>et!=null))throw new Error("Wrapped assets not supported yet");let lt=0,Ge=qs.generate(),Ze=va(p.getTokenBridge(),Q,F,n),qe=Ba(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,Ge.publicKey,Q,D,lt,n,K.toUint8Array(),C,k.toU8a());return new ka({instructions:[Ze,qe],signers:[Ge],func:"TransferWithPayload",module:"TokenBridge"})}})}),Pa=()=>({transferNativeWithPayload:jc,transferTokenWithPayload:zc});function Fa(){return{TokenBridge:Pa}}function os(){return{Wormhole:Fa}}import{mrl as $c,MoveConfig as Jc,Precompile as Qc,Wormhole as Xa}from"@galacticcouncil/xc-core";import{Transaction as Yc}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Zc,SUI_TYPE_ARG as em}from"@mysten/sui/utils";import{UniversalAddress as tm}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as sm,getPackageId as Ea}from"@wormhole-foundation/sdk-sui";var nm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,l=Xa.fromChain(u),p=Xa.fromChain(t.moonchain),h=0,A=Qc.Bridge,k=await $c.createPayload(i.chain,s),F=new tm(A),V=p.getWormholeId(),D=em,[Q,K]=await Promise.all([Ea(c.client,l.coreBridge),Ea(c.client,l.tokenBridge)]),C=new Yc,[Ve]=C.splitCoins(C.gas,[C.pure.u64(n)]),[lt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[Ge]=C.moveCall({target:`${K}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[D]}),Ze=!1,qe=await(async()=>{let kt=await sm(c.client,Q,r);if(kt!==null)return C.object(kt);{let[$t]=C.moveCall({target:`${Q}::emitter::new`,arguments:[C.object(l.coreBridge)]});return Ze=!0,$t}})(),[et,Ot]=C.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[qe,Ge,Ve,C.pure.u16(V),C.pure.vector("u8",F.toUint8Array()),C.pure.vector("u8",k.toU8a()),C.pure.u32(h)],typeArguments:[D]});C.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[Ot],typeArguments:[D]});let[Cs]=C.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),et],typeArguments:[D]});return C.moveCall({target:`${Q}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),lt,Cs,C.object(Zc)]}),Ze&&C.transferObjects([qe],C.pure.address(r)),new Jc({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ia=()=>({transferNativeWithPayload:nm});function Ra(){return{TokenBridge:Ia}}function zs(){return{Wormhole:Ra}}var Sa={};Kt(Sa,{Tag:()=>rt});var rt=(o=>(o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(rt||{});import{AssetRoute as Da}from"@galacticcouncil/xc-core";function Wt(t,e){return new Da({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:t,balance:a().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:R().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function ae(t,e){return new Da({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:d,asset:e,fee:{amount:y().Snowbridge().calculateInboundFee({hub:w}),asset:H}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]})}var om=[new rs({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Wt(ue,ee),Wt(Ke,ye),Wt(b,be),Wt(f,he),Wt(Oe,pe)],rm=[new rs({source:{asset:H,balance:a().evm().native(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:d,asset:H,fee:{amount:y().Snowbridge().calculateInboundFee({hub:w}),asset:H}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]}),ae(Ce,Ce),ae(Te,Te),ae(ve,ve),ae(Ie,Ie),ae(_e,_e),ae(Se,Se),ae(Fe,Fe),ae(Be,Be),ae(Xe,Xe),ae(Re,Re),ae(De,De),ae(He,He),ae(b,ft),ae(f,dt)],Zb=[new rs({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new rs({source:{asset:ue,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:ue,balance:a().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:R().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],La=new am({chain:I,routes:[...om,...rm]});var Ha=[La];import{AssetRoute as ms,ChainRoutes as Ma}from"@galacticcouncil/xc-core";import{AssetRoute as $s}from"@galacticcouncil/xc-core";var At=0,im=t=>{let{source:e}=t;return!!e.feeSwap},cm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Wa=m().assetConversion().swapTokensForExactTokens({slippage:30});function mm(t,e,s){return new $s({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().assets().account()},min:nt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:Qe(cm,Wa).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function is(t,e,s){return new $s({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:t,balance:a().substrate().assets().account(),swap:!0},destinationFee:{balance:a().substrate().assets().account()},min:nt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:Qe(im,Wa).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function wt(t,e,s){return new $s({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().assets().account()},min:nt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function cs(t){return mm(t,d,.02)}var um=[new ms({source:{asset:g,balance:a().substrate().system().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().system().account()},min:nt().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new ms({source:{asset:P,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),wt(f,d,.02),wt(b,d,.02),cs(je)],lm=[new ms({source:{asset:P,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:ze,asset:P,fee:{amount:.001,asset:P}},extrinsic:m().polkadotXcm().transferAssets()})],dm=[wt(f,B,.25),wt(b,B,.25)],fm=[wt(f,M,.03),wt(b,M,.03)],pm=[new ms({source:{asset:O,balance:a().substrate().foreignAssets().account(),fee:{asset:g,balance:a().substrate().system().account(),extra:At},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:st,asset:O,fee:{amount:2.5,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Va=new Ma({chain:tt,routes:[is(f,d,.02),is(b,d,.02),is(g,d,.001)]}),Oa=new Ma({chain:w,routes:[...um,...lm,...dm,...fm,...pm]});import{AssetRoute as Ye,ChainRoutes as hm}from"@galacticcouncil/xc-core";var bm=[new Ye({source:{asset:L,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new Ye({source:{asset:X,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:X}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:T,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:E,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:E,fee:{amount:2e-6,asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:_,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:.01,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:W,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:z,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:z,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:z}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:f,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ye({source:{asset:b,balance:a().substrate().assets().account(),fee:{asset:L,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ka=new hm({chain:Z,routes:[...bm]});import{AssetRoute as Me,ChainRoutes as ym}from"@galacticcouncil/xc-core";var xm=[new Me({source:{asset:X,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:X,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:W,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:z,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:z,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Me({source:{asset:L,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:L,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:T,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:E,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:E,fee:{amount:625e-8,asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:b,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],gm=[new Me({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:w,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Me({source:{asset:b,balance:a().substrate().tokens().accounts(),fee:{asset:X,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:w,asset:b,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ua=new ym({chain:M,routes:[...xm,...gm]});import{AssetRoute as Ne,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Am="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Am?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),J=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as Mt}from"@galacticcouncil/xc-core";var wm=.9,Cm=1,km=1,us=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ls=m().router().buy({slippage:30});function S(t,e,s){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:y().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function it(t,e){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function ds(t){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:w,asset:t,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:Qe(us,ls).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Tm(t,e,s="LocalReserve"){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:km,asset:T}},extrinsic:Qe(us,ls).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ct(t){return Tm(t,B,"DestinationReserve")}function Na(t,e,s,n,o,r){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:Qe(us,ls).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:wm})]),transact:{chain:B,fee:{amount:Cm,asset:T,balance:v()},extrinsic:m().ethereumXcm().transact(o)},tags:r})}function Js(t,e,s){return Na(t,e,s,0,R().Batch().batchAll([R().Erc20().approve(n=>n.getTokenBridge()),R().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function mt(t,e,s){return Na(t,e,s,y().Wormhole().TokenRelayer().calculateRelayerFee(),R().Batch().batchAll([R().Erc20().approve(n=>n.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function te(t,e,s){return new Mt({source:{asset:t,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:s,asset:e,fee:{amount:y().Snowbridge().calculateOutboundFee({hub:w}),asset:g}},extrinsic:Qe(us,ls).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Bm=[it(g,w),it(P,w),it(f,w),it(b,w),ds(je)],Pm=[S(L,Z),S(X,Z,M),S(T,Z,B),new Ne({source:{asset:E,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:Z,asset:E,fee:{amount:2e-6,asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:_,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:Z,asset:_,fee:{amount:.01,asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),S(W,Z,M),S(z,Z,M),S(f,Z,w),S(b,Z,w)],Fm=[S(X,M),S(W,M),S(z,M),S(L,M,Z),S(T,M,B),new Ne({source:{asset:E,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:M,asset:E,fee:{amount:5e-6,asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),S(f,M,w),S(b,M,w),new Ne({source:{asset:g,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:M,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Xm=[S(E,xe),S(_,xe),S(j,xe),S(f,xe,w),S(b,xe,w),new Ne({source:{asset:W,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:xe,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:g,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:xe,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Em=[S(j,B),S(T,B),S(f,B,w),S(b,B,w),ct(ee),ct(pe),ct(be),ct(he),ct(ye),ct(Y),ct(q)],Im=[new Ne({source:{asset:O,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:st,asset:O,fee:{amount:2.5,asset:O}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Rm=[S(Le,Et)],_m=[new Ne({source:{asset:me,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:Bt,asset:me,fee:{amount:.04,asset:me}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Sm=[S(Pe,Pt)],Dm=[new Ne({source:{asset:le,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:It,asset:le,fee:{amount:.02,asset:le}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Lm=[new Ne({source:{asset:de,balance:v(),fee:J(),destinationFee:{balance:v()}},destination:{chain:Xt,asset:de,fee:{amount:1.1,asset:de}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Hm=[S(Ee,Ft)],Wm=[S(ke,vt)],Mm=[mt(ee,ue,I),mt(Y,H,I),mt(ye,Ke,I),mt(he,f,I),mt(be,b,I),Js(pe,Oe,I)],Vm=[te(H,H,I),te(Ce,Ce,I),te(Te,Te,I),te(ve,ve,I),te(Ie,Ie,I),te(_e,_e,I),te(Se,Se,I),te(De,De,I),te(Fe,Fe,I),te(Be,Be,I),te(Xe,Xe,I),te(Re,Re,I),te(He,He,I),te(ft,b,I),te(dt,f,I)],Om=[mt(q,q,pt),Js(se,se,pt)],Km=[mt(ne,ne,Rt)],Um=[it(g,tt),it(f,tt),it(b,tt)],Ga=new vm({chain:d,routes:[...Wm,...Bm,...Pm,...Fm,...Um,..._m,...Vm,...Mm,...Xm,...Sm,...Dm,...Em,...Im,...Hm,...Lm,...Om,...Km,...Rm]});import{AssetRoute as Ct,ChainRoutes as Nm}from"@galacticcouncil/xc-core";var Gm=[new Ct({source:{asset:_,balance:a().substrate().tokens().accounts(),destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:E,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:E,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:j,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:j,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:j}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:W,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:M}),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:f,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:b,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:y().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:_,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],qa=new Nm({chain:xe,routes:[...Gm]});import{AssetRoute as zt,ChainRoutes as zm}from"@galacticcouncil/xc-core";import{AssetRoute as ja}from"@galacticcouncil/xc-core";function qm(t,e,s){return new ja({source:{asset:t,balance:a().evm().erc20(),fee:{asset:T,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function jm(t,e,s){return new ja({source:{asset:t,balance:a().evm().erc20(),fee:{asset:T,balance:a().evm().erc20()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function ut(t,e){return qm(t,d,e)}function fs(t,e){return jm(t,d,e)}var $m=[new zt({source:{asset:T,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:R().PolkadotXcm().transferAssetsToPara32()}),fs(j,.6),fs(f,.3),fs(b,.3),ut(ee,.004),ut(pe,.004),ut(be,.004),ut(he,.004),ut(ye,1e-7),ut(Y,2e-6),ut(q,2e-5)],Jm=[new zt({source:{asset:f,balance:a().evm().erc20(),fee:{asset:T,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:w,asset:f,fee:{amount:.18,asset:f}},contract:R().PolkadotXcm().transferAssetsToPara32()}),new zt({source:{asset:b,balance:a().evm().erc20(),fee:{asset:T,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:w,asset:b,fee:{amount:.18,asset:b}},contract:R().PolkadotXcm().transferAssetsToPara32()})],fx=[new zt({source:{asset:Y,balance:a().evm().erc20(),fee:{asset:T,balance:a().substrate().system().account()},destinationFee:{asset:Y,balance:a().evm().erc20()}},destination:{chain:I,asset:H,fee:{amount:y().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new zt({source:{asset:ee,balance:a().evm().erc20(),fee:{asset:T,balance:a().substrate().system().account()},destinationFee:{asset:ee,balance:a().evm().erc20()}},destination:{chain:I,asset:ue,fee:{amount:y().Wormhole().TokenRelayer().calculateRelayerFee(),asset:ue}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],za=new zm({chain:B,routes:[...$m,...Jm]});import{AssetRoute as $a,ChainRoutes as Qm}from"@galacticcouncil/xc-core";var Ym=[new $a({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:O,fee:{amount:.01,asset:O}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Zm=[new $a({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:w,asset:O,fee:{amount:.1,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Ja=new Qm({chain:st,routes:[...Ym,...Zm]});import{AssetRoute as e0,ChainRoutes as t0}from"@galacticcouncil/xc-core";var s0=[new e0({source:{asset:Le,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:Le,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:Le}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Qa=new t0({chain:Et,routes:[...s0]});import{AssetRoute as n0,ChainRoutes as a0}from"@galacticcouncil/xc-core";var o0=[new n0({source:{asset:me,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:me,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:me}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Ya=new a0({chain:Bt,routes:[...o0]});import{AssetRoute as r0,ChainRoutes as i0}from"@galacticcouncil/xc-core";var c0=[new r0({source:{asset:de,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:de,fee:{amount:.2,asset:de}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Za=new i0({chain:Xt,routes:[...c0]});import{AssetRoute as m0,ChainRoutes as u0}from"@galacticcouncil/xc-core";var l0=[new m0({source:{asset:ke,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:ke,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:ke}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],eo=new u0({chain:vt,routes:[...l0]});import{AssetRoute as d0,ChainRoutes as f0}from"@galacticcouncil/xc-core";var p0=[new d0({source:{asset:Pe,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:Pe,fee:{amount:2,asset:Pe}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],to=new f0({chain:Pt,routes:[...p0]});import{AssetRoute as h0,ChainRoutes as b0}from"@galacticcouncil/xc-core";var y0=[new h0({source:{asset:le,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:le,fee:{amount:.03,asset:le}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],so=new b0({chain:It,routes:[...y0]});import{AssetRoute as x0,ChainRoutes as g0}from"@galacticcouncil/xc-core";var A0=[new x0({source:{asset:Ee,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:d,asset:Ee,fee:{amount:.205,asset:Ee}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],no=new g0({chain:Ft,routes:[...A0]});var ao=[eo,Oa,Va,Ka,Ua,Ga,qa,za,Ja,no,Qa,Ya,Za,to,so];import{AssetRoute as oo,ChainRoutes as w0}from"@galacticcouncil/xc-core";var C0=[new oo({source:{asset:q,balance:a().solana().native(),destinationFee:{asset:q,balance:a().solana().native()}},destination:{chain:d,asset:q,fee:{amount:0,asset:q}},program:os().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new oo({source:{asset:se,balance:a().solana().token(),fee:{asset:q,balance:a().solana().native()},destinationFee:{asset:se,balance:a().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:os().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],ro=new w0({chain:pt,routes:[...C0]});var io=[ro];import{AssetRoute as k0,ChainRoutes as T0}from"@galacticcouncil/xc-core";var v0=[new k0({source:{asset:ne,balance:a().sui().native(),destinationFee:{asset:ne,balance:a().sui().native()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},move:zs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],co=new T0({chain:Rt,routes:[...v0]});var mo=[co];import{AssetRoute as uo,ChainRoutes as B0}from"@galacticcouncil/xc-core";import{AssetRoute as Dg}from"@galacticcouncil/xc-core";var Qs=0;var P0=new uo({source:{asset:P,balance:a().substrate().system().account(),fee:{asset:P,balance:a().substrate().system().account(),extra:Qs},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:w,asset:P,fee:{amount:.002,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),F0=new uo({source:{asset:P,balance:a().substrate().system().account(),fee:{asset:P,balance:a().substrate().system().account(),extra:Qs},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:_t,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),lo=new B0({chain:ze,routes:[F0,P0]});import{AssetRoute as fo,ChainRoutes as E0}from"@galacticcouncil/xc-core";var X0="0",Vt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===X0?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),Ys=()=>({asset:jt().multiTransactionPayment().accountCurrencyMap(),balance:Vt()});var I0=[new fo({source:{asset:f,balance:Vt(),fee:Ys(),destinationFee:{balance:Vt()}},destination:{chain:ze,asset:f,fee:{amount:y().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],R0=[new fo({source:{asset:P,balance:Vt(),fee:Ys(),destinationFee:{balance:Vt()}},destination:{chain:ze,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],po=new E0({chain:_t,routes:[...I0,...R0]});var ho=[lo,po];var _0=[...Ha,...ao,...io,...mo,...ho],S0=new Map(_0.map(t=>[t.chain.key,t]));import{Parachain as Co}from"@galacticcouncil/xc-core";import{TransferValidation as bo,TransferValidationError as yo}from"@galacticcouncil/xc-core";var ps=class extends bo{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:r}=s;if(r.amount<o.amount)throw new yo("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},hs=class extends bo{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(o,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new yo("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new ce(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};import{TransferValidation as xo,TransferValidationError as go}from"@galacticcouncil/xc-core";var bs=class extends xo{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new ce(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain;if(await new ce(r).getSystemAccountBalance(n)===0n)throw new go("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},ys=class extends xo{async validate(e){let{asset:s,sender:n,source:o}=e,r=o.chain;if(await new ce(r).checkIfFrozen(n,s))throw new go("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Ao,TransferValidationError as wo}from"@galacticcouncil/xc-core";var D0=12,L0=1,H0=18,xs=class extends Ao{async skipFor(e){let{destination:s}=e,n=s.chain,o=new We(n),r=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain,i=new We(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),l=c.min||L0,p=c.decimals||D0,h=l*Math.pow(10,p),A=await i.getAssetBalance(n,u);if(BigInt(h*1.1)>A)throw new wo("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},gs=class extends Ao{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,r=o.chain,i=new We(r),u=r.getBalanceAssetId(T),c=r.getAssetDecimals(T)||H0,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(l))throw new wo("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var we={isAny:()=>!0,isHydration:t=>t instanceof Co&&t.parachainId===2034,isHub:t=>t instanceof Co&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},W0=[new ps(we.isAny,we.isAny),new hs(we.isAny,we.isAny),new bs(we.isAny,we.isHub),new ys(we.isHub,we.isAny),new xs(we.isAny,we.isHydration),new gs(we.isHydration,we.isAny)];var To={};Kt(To,{AssethubDex:()=>en,HydrationDex:()=>Zs});import{pool as M0,sor as V0,tx as O0}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as K0}from"@galacticcouncil/common";import{memoize1 as U0}from"@thi.ng/memoize";var{PoolType:As}=M0,{TradeRouteBuilder:N0,TradeRouter:G0}=V0,{TxBuilderFactory:q0}=O0,Zs=class{chain;client;poolCtx;txBuilder;getCtx=U0(async e=>{console.log("init swap router",e,"\u2705");let s=new G0(this.poolCtx);return s.withFilter({useOnly:[As.Aave,As.Omni,As.Stable,As.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new We(this.chain),this.txBuilder=new q0(s.client,s.evm)}async getCalldata(e,s,n,o,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=o.amount,l=await this.getCtx(1),p=await l.getMostLiquidRoute(i,u),h=await l.getBuy(i,u,c,p);return(await(await this.txBuilder.trade(h).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,o){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(r,i),p=await c.getBuy(r,i,u,l);return{amount:p.amountIn,route:N0.build(p.swaps)}}catch(l){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let r=o*s,i=Math.pow(10,K0);return r/BigInt(i)}};import{encodeLocation as ko}from"@galacticcouncil/common";var en=class{chain;client;constructor(e){this.chain=e,this.client=new ce(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(ko(o),ko(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as z0}from"@galacticcouncil/xc-core";import{Asset as j0}from"@galacticcouncil/xc-core";function ws(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new j0({key:[o,s,e].join("_"),originSymbol:n})}function vo(t){let{decimals:e,id:s}=t;return{asset:ws(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Bo(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:ws(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var tn=class extends z0{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!o(r)&&r.origin===1e3).forEach(r=>{let i=ws(r),u=vo(r),c=Bo(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,cs(i)),this.updateChainRoute(s,ds(i))})}};export{tn as HydrationConfigService,Eo as assetsMap,_a as builders,Er as chainsMap,ba as clients,To as dex,S0 as routesMap,Sa as tags,W0 as validations};
@@ -8,9 +8,7 @@ export declare const cfg_new: Asset;
8
8
  export declare const cru: Asset;
9
9
  export declare const dai: Asset;
10
10
  export declare const dai_mwh: Asset;
11
- export declare const ded: Asset;
12
11
  export declare const dot: Asset;
13
- export declare const dota: Asset;
14
12
  export declare const eth: Asset;
15
13
  export declare const ena: Asset;
16
14
  export declare const glmr: Asset;
@@ -28,7 +26,6 @@ export declare const myth: Asset;
28
26
  export declare const neuro: Asset;
29
27
  export declare const pen: Asset;
30
28
  export declare const paxg: Asset;
31
- export declare const pink: Asset;
32
29
  export declare const sky: Asset;
33
30
  export declare const sol: Asset;
34
31
  export declare const sui: Asset;
@@ -11,8 +11,8 @@ import { moonbeam } from './moonbeam';
11
11
  import { mythos } from './mythos';
12
12
  import { neuroweb } from './neuroweb';
13
13
  import { pendulum } from './pendulum';
14
- import { polkadot, polkadotCex } from './polkadot';
14
+ import { polkadot } from './polkadot';
15
15
  import { unique } from './unique';
16
16
  import { energywebx } from './energywebx';
17
17
  export declare const polkadotChains: AnyChain[];
18
- export { ajuna, assetHub, assetHubCex, astar, bifrost, crust, hydration, laos_chain, neuroweb, interlay, moonbeam, mythos, pendulum, polkadot, polkadotCex, unique, energywebx, };
18
+ export { ajuna, assetHub, assetHubCex, astar, bifrost, crust, hydration, laos_chain, neuroweb, interlay, moonbeam, mythos, pendulum, polkadot, unique, energywebx, };
@@ -1,3 +1,2 @@
1
1
  import { Parachain } from '@galacticcouncil/xc-core';
2
2
  export declare const polkadot: Parachain;
3
- export declare const polkadotCex: Parachain;
@@ -1,3 +1,3 @@
1
1
  import { ChainRoutes } from '@galacticcouncil/xc-core';
2
- export declare const assetHubConfig: ChainRoutes;
3
2
  export declare const assetHubCexConfig: ChainRoutes;
3
+ export declare const assetHubConfig: ChainRoutes;
@@ -1,12 +1,11 @@
1
- import { AnyChain, Asset, AssetRoute, ExtrinsicConfigBuilder, Parachain } from '@galacticcouncil/xc-core';
1
+ import { AnyChain, Asset, AssetRoute, Parachain } from '@galacticcouncil/xc-core';
2
2
  import { XcmTransferType } from '../../../builders';
3
3
  export declare const MRL_EXECUTION_FEE = 0.9;
4
4
  export declare const MRL_XCM_FEE = 1;
5
5
  export declare const GLMR_MIN_DEST_FEE = 1;
6
- export declare const CEX_EXECUTION_FEE = 0.03;
7
6
  export declare function toTransferTemplate(asset: Asset, destination: AnyChain, reserve?: Parachain): AssetRoute;
7
+ export declare function toHubTemplate(asset: Asset, hub: Parachain): AssetRoute;
8
8
  export declare function toHubExtTemplate(asset: Asset): AssetRoute;
9
- export declare function toHubWithCexFwdTemplate(asset: Asset, hubFee: number, hubTransfer: ExtrinsicConfigBuilder): AssetRoute;
10
9
  export declare function toParaErc20Template(asset: Asset, destination: Parachain, transferType?: XcmTransferType): AssetRoute;
11
10
  export declare function toMoonbeamErc20Template(asset: Asset): AssetRoute;
12
11
  export declare function viaWormholeBridgeTemplate(assetIn: Asset, assetOut: Asset, to: AnyChain): AssetRoute;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "Cross-chain hydradx & basilisk dapp configuration",
5
5
  "author": "GalacticCouncil",
6
6
  "repository": {
@@ -31,7 +31,7 @@
31
31
  "test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest --silent"
32
32
  },
33
33
  "dependencies": {
34
- "@galacticcouncil/xc-core": "^0.9.0"
34
+ "@galacticcouncil/xc-core": "^0.10.0"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@galacticcouncil/sdk-next": ">=0.20.0 <1.0.0"