@galacticcouncil/xc-cfg 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@galacticcouncil/xc-cfg)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Pre-configured routes and DEX implementations for Hydration. Maps assets to chains and defines how transfers are executed.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Pn=Object.defineProperty;var wr=Object.getOwnPropertyDescriptor;var Cr=Object.getOwnPropertyNames;var kr=Object.prototype.hasOwnProperty;var Vt=(t,e)=>{for(var s in e)Pn(t,s,{get:e[s],enumerable:!0})},Tr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Cr(e))!kr.call(t,a)&&a!==s&&Pn(t,a,{get:()=>e[a],enumerable:!(n=wr(e,a))||n.enumerable});return t};var vr=t=>Tr(Pn({},"__esModule",{value:!0}),t);var $c={};Vt($c,{HydrationConfigService:()=>vn,assetsMap:()=>ma,builders:()=>Qn,chainsMap:()=>wa,clients:()=>zn,dex:()=>ca,routesMap:()=>dr,tags:()=>Yn,validations:()=>fr});module.exports=vr($c);var y=require("@galacticcouncil/xc-core"),Xe=new y.Asset({key:"aave",originSymbol:"AAVE"}),Ie=new y.Asset({key:"ajun",originSymbol:"AJUN"}),L=new y.Asset({key:"astr",originSymbol:"ASTR"}),I=new y.Asset({key:"bnc",originSymbol:"BNC"}),En=new y.Asset({key:"bsx",originSymbol:"BSX"}),Re=new y.Asset({key:"cfg_new",originSymbol:"CFG"}),be=new y.Asset({key:"cru",originSymbol:"CRU"}),ye=new y.Asset({key:"dai",originSymbol:"DAI"}),ne=new y.Asset({...ye,key:"dai_mwh"}),g=new y.Asset({key:"dot",originSymbol:"DOT"}),H=new y.Asset({key:"eth",originSymbol:"ETH"}),_e=new y.Asset({key:"ena",originSymbol:"ENA"}),v=new y.Asset({key:"glmr",originSymbol:"GLMR"}),$=new y.Asset({key:"hdx",originSymbol:"HDX"}),R=new y.Asset({key:"ibtc",originSymbol:"IBTC"}),M=new y.Asset({key:"intr",originSymbol:"INTR"}),oe=new y.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),F=new y.Asset({key:"ksm",originSymbol:"KSM"}),Se=new y.Asset({key:"ldo",originSymbol:"LDO"}),De=new y.Asset({key:"laos",originSymbol:"LAOS"}),Le=new y.Asset({key:"lbtc",originSymbol:"LBTC"}),xe=new y.Asset({key:"ewt",originSymbol:"EWT"}),He=new y.Asset({key:"link",originSymbol:"LINK"}),N=new y.Asset({key:"myth",originSymbol:"MYTH"}),We=new y.Asset({key:"neuro",originSymbol:"NEURO"}),ge=new y.Asset({key:"pen",originSymbol:"PEN"}),Me=new y.Asset({key:"paxg",originSymbol:"PAXG"}),re=new y.Asset({key:"prime",originSymbol:"PRIME"}),Ve=new y.Asset({key:"sky",originSymbol:"SKY"}),q=new y.Asset({key:"sol",originSymbol:"SOL"}),ie=new y.Asset({key:"sui",originSymbol:"SUI"}),Ue=new y.Asset({key:"susde",originSymbol:"sUSDe"}),Je=new y.Asset({key:"susds",originSymbol:"sUSDS"}),we=new y.Asset({...Je,key:"susds_mwh"}),Ke=new y.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new y.Asset({key:"trac",originSymbol:"TRAC"}),Ne=new y.Asset({key:"unq",originSymbol:"UNQ"}),p=new y.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new y.Asset({...p,key:"usdt_mwh"}),Et=new y.Asset({...p,key:"usdt_eth"}),x=new y.Asset({key:"usdc",originSymbol:"USDC"}),ke=new y.Asset({...x,key:"usdc_mwh"}),Ft=new y.Asset({...x,key:"usdc_eth"}),J=new y.Asset({key:"vastr",originSymbol:"vASTR"}),U=new y.Asset({key:"vdot",originSymbol:"vDOT"}),Ut=new y.Asset({key:"weth",originSymbol:"WETH"}),te=new y.Asset({...Ut,key:"weth_mwh"}),Qe=new y.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new y.Asset({...Qe,key:"wbtc_mwh"}),Ge=new y.Asset({key:"wsteth",originSymbol:"wstETH"}),st=new y.Asset({key:"wud",originSymbol:"WUD"}),Br=[Xe,Ie,L,En,Re,be,I,ye,ne,g,_e,H,v,$,R,M,F,Se,De,Le,xe,oe,He,N,We,Me,ge,re,Ve,q,ie,Ue,Je,we,Oe,Ke,Ne,x,ke,Ft,p,Ce,Et,J,U,Qe,Te,Ut,te,Ge,st],ma=new Map(Br.map(t=>[t.key,t]));var Es=require("@galacticcouncil/xc-core");var ua=require("viem/chains"),_=new Es.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Xe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Ut,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ye,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ue,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ke,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Qe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,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:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Es.ChainEcosystem.Ethereum,evmChain:ua.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 la=[_];var Fs=require("@galacticcouncil/xc-core");var Kt=new Fs.Parachain({assetsData:[{asset:Ie,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Fs.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 da={assetsData:[{asset:g,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:x,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: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"]},k=new xs.Parachain({...da,key:"assethub",name:"AssetHub Polkadot"}),ut=new xs.Parachain({...da,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Xs=require("@galacticcouncil/xc-core");var se=new Xs.Parachain({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:g,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:x,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:M,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Xs.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 Pr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],W=new Is.Parachain({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,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:p,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset: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:R,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:Pr});var Ot=require("@galacticcouncil/xc-core");var Nt=new Ot.Parachain({assetsData:[{asset:be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ot.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:Ot.XcmVersion.v3});var _s=require("@galacticcouncil/xc-core"),pa=require("viem");var fa=require("@polkadot-api/substrate-bindings"),Er="ETH\0",Rs=class{async toH160(e){let s=(0,fa.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Er),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Fr=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"],Xr=(0,pa.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:$,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:Ie,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:I,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:be,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:ne,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:_e,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:M,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:re,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:xe,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:ge,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ve,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:ie,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:Je,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:Ke,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Oe,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:x,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset: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:Et,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:J,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Qe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Te,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Ut,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:Ge,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:_s.ChainEcosystem.Polkadot,evmChain:Xr,evmResolver:Fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Xn,rpcs:Fn});var Gt=require("@galacticcouncil/xc-core");var ve=new Gt.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.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:g,decimals:10,id:{Token:g.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:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:$,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:U,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Gt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",usesLegacyEnhancer:!0,xcmVersion:Gt.XcmVersion.v3});var Ss=require("@galacticcouncil/xc-core");var qt=new Ss.Parachain({assetsData:[{asset:De,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ss.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 Ds=require("@galacticcouncil/xc-core"),ha=require("viem");var Ir=(0,ha.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}),E=new Ds.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:q,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:re,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:we,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ie,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:te,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:$,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ds.ChainEcosystem.Polkadot,evmChain:Ir,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 Ls=require("@galacticcouncil/xc-core");var lt=new Ls.Parachain({assetsData:[{asset:N,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ls.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 Hs=require("@galacticcouncil/xc-core");var jt=new Hs.Parachain({assetsData:[{asset:We,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Hs.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var zt=require("@galacticcouncil/xc-core");var $t=new zt.Parachain({assetsData:[{asset:ge,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:zt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:zt.XcmVersion.v3});var Ws=require("@galacticcouncil/xc-core");var Rr={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ws.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 Ws.Parachain({...Rr,key:"polkadot"});var Ms=require("@galacticcouncil/xc-core");var Jt=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 Qt=require("@galacticcouncil/xc-core");var Yt=new Qt.Parachain({assetsData:[{asset:xe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qt.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesLegacyEnhancer:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Qt.XcmVersion.v3});var ya=[Kt,k,ut,se,W,Nt,d,qt,jt,ve,E,lt,$t,ba,Jt,Yt];var Vs=require("@galacticcouncil/xc-core");var dt=new Vs.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:q,decimals:9},{asset:oe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:re,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],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 xa=[dt];var Us=require("@galacticcouncil/xc-core");var Zt=new Us.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:Us.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var ga=[Zt];var Ks=require("@galacticcouncil/xc-core");var nt=new Ks.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:Ks.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 Os=require("@galacticcouncil/xc-core");var es=new Os.Parachain({assetsData:[{asset:En,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:Os.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 Aa=[nt,es];var _r=[...la,...ya,...xa,...ga,...Aa],wa=new Map(_r.map(t=>[t.key,t]));var Dt=require("@galacticcouncil/xc-core");var Qn={};Vt(Qn,{AssetMinBuilder:()=>ft,BalanceBuilder:()=>r,ContractBuilder:()=>S,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>rt,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>ws,MoveBuilder:()=>Jn,ProgramBuilder:()=>Cs,XcmTransferType:()=>ue,XcmVersion:()=>ot});var Ns=require("@galacticcouncil/xc-core");function ft(){return{assetRegistry:Sr,assets:Dr}}function Sr(){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 Dr(){return{asset:()=>({build:({asset:t})=>new Ns.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var gs=require("@galacticcouncil/xc-core");function Ca(){return{erc20:Hr,native:Lr}}function Lr(){return{build:({address:t})=>new gs.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Hr(){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 gs.ContractConfig({abi:gs.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var ts=require("@galacticcouncil/xc-core"),ss=require("@galacticcouncil/common");function ka(){return{assets:Wr,system:Vr,tokens:Ur,ormlTokens:Kr,foreignAssets:Mr}}function Wr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Mr(){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 o=(0,ss.encodeLocation)(a);return new ts.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Vr(){return{account:()=>({build:({address:t})=>new ts.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 Ur(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Kr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var In=require("@galacticcouncil/xc-core");function Ta(){return{native:Or,token:Nr}}function Or(){return{build:({address:t})=>new In.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Nr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new In.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var va=require("@galacticcouncil/xc-core");function Ba(){return{native:Gr}}function Gr(){return{build:({address:t})=>new va.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Ca,substrate:ka,solana:Ta,sui:Ba}}var Xt=require("@galacticcouncil/xc-core"),Pa=require("viem"),qr=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],o=s.map(i=>(0,Pa.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,o,[]],func:"batchAll",module:"Batch"})}}),Ea=()=>({batchAll:qr});var as=require("@galacticcouncil/xc-core");function ns(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 Fa(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=as.Wormhole.fromChain(i),c=i.getAssetId(n);return new as.ContractConfig({abi:as.Abi.Erc20,address:at(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var qe=require("@galacticcouncil/xc-core"),Ia=require("@galacticcouncil/common"),{Ss58Addr:Xa}=qe.addr;function jr(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 Rn(t,e){let s=t.getAssetId(e);return typeof s=="string"?jr(s):s}function Ra(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rn(a.chain,s);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Xa.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rn(a.chain,s),i=Rn(a.chain,a.destinationFeeBalance),m=Ia.big.toBigInt(n.fee.amount,n.fee.decimals);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Xa.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var pt=require("@galacticcouncil/xc-core");var{Ss58Addr:zr}=pt.addr,$r=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=pt.Snowbridge.fromChain(i),l=i.getAssetId(n),h=at(l),b=n.originSymbol==="ETH",A=o.feeBreakdown.bridgeFeeInDot,T=o.fee.amount;return new pt.ContractConfig({abi:pt.Abi.Snowbridge,address:c.getGateway(),args:[h,m.parachainId,[1,zr.getPubKey(e)],A,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),_a=()=>({sendToken:$r});var V=require("@galacticcouncil/xc-core"),_n=require("@solana/web3.js"),Sa=require("@solana/spl-token");var Jr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=V.Wormhole.fromChain(o.chain),c=V.Wormhole.fromChain(t.moonchain),l=V.Precompile.Bridge,h=o.chain.getAssetId(a),b=0,A=await V.mrl.createPayload(i.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:m.getTokenBridge(),args:[at(h),n,c.getWormholeId(),c.normalizeAddress(l),b,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Qr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:o}=e,i=V.Wormhole.fromChain(a.chain),m=V.Wormhole.fromChain(t.moonchain),c=V.Precompile.Bridge,l=0,h=await V.mrl.createPayload(o.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,h.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Yr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=V.Wormhole.fromChain(m),h=V.Wormhole.fromChain(c),b=e;if(c.isSolana()){let K=c.getAssetId(n);b=(await(0,Sa.getAssociatedTokenAddress)(new _n.PublicKey(K),new _n.PublicKey(e))).toBase58()}let A=m.getAssetId(n),T=0,X=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:l.getTokenBridge(),args:[at(A),s,h.getWormholeId(),h.normalizeAddress(b),T,X],func:"transferTokens",module:"TokenBridge"})}}),Zr=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,o=V.Wormhole.fromChain(n.chain),i=V.Wormhole.fromChain(a.chain),m=0,c=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Da=()=>({transferTokens:Yr,transferTokensWithPayload:Jr,wrapAndTransferETH:Zr,wrapAndTransferETHWithPayload:Qr});var It=require("@galacticcouncil/xc-core");var ei=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=It.Wormhole.fromChain(m),h=It.Wormhole.fromChain(c),b=0,A=0,T=m.getAssetId(n);return new It.ContractConfig({abi:It.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[at(T),s,b,h.getWormholeId(),h.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),La=()=>({transferTokensWithRelay:ei});function Ha(){return{TokenBridge:Da,TokenRelayer:La}}function S(){return{Batch:Ea,Erc20:Fa,PolkadotXcm:Ra,Snowbridge:_a,Wormhole:Ha}}var Ma=require("@galacticcouncil/xc-core"),Wa="AssetConversion",ti=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,o=n.destinationFeeSwap||n.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(m),b=i.amount+i.amount*BigInt(t.slippage)/100n,A=m.amount;return new Ma.ExtrinsicConfig({module:Wa,func:e,getTx:T=>T.getUnsafeApi().tx[Wa][e]({path:[l,h],amount_out:A,amount_in_max:b,send_to:s,keep_alive:!0})})}}},Va=()=>({swapTokensForExactTokens:ti});var Gs=require("@galacticcouncil/descriptors"),Ua=require("@galacticcouncil/xc-core"),si="Assets",ni=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let o=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new Ua.ExtrinsicConfig({module:si,func:t,getTx:l=>l.getTypedApi(Gs.hub).tx.Assets.transfer({id:Number(c),target:Gs.MultiAddress.Id(n),amount:m})})}}},Ka=()=>({transfer:ni});var Na=require("@galacticcouncil/xc-core"),Oa="Balances",ai=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Na.ExtrinsicConfig({module:Oa,func:e,getTx:n=>n.getUnsafeApi().tx[Oa][e]({dest:s,keep_alive:t})})}},Ga=()=>({transferAll:ai});var qa=require("@galacticcouncil/descriptors"),ja=require("@galacticcouncil/xc-core"),oi="Router",ri=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(o),h=c.getMetadataAssetId(i),b=i.amount,A=o.amount+o.amount*BigInt(t.slippage)/100n;return new ja.ExtrinsicConfig({module:oi,func:"buy",getTx:T=>T.getTypedApi(qa.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:b,max_amount_in:A,route:m})})}}),za=()=>({buy:ri});var Ja=require("@galacticcouncil/xc-core"),$a="Utility",ii=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Ja.ExtrinsicConfig({module:$a,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[$a][e]({calls:o})}})}}},Qa=()=>({batchAll:ii});var qs=require("@galacticcouncil/xc-core"),Sn=require("polkadot-api"),Za=require("viem");var ot=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(ot||{}),ue=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(ue||{});var Ya="EthereumXcm",ci=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=(0,Za.encodeFunctionData)({abi:qs.Abi[n.module],functionName:n.func,args:n.args});return new qs.ExtrinsicConfig({module:Ya,func:e,getTx:i=>i.getUnsafeApi().tx[Ya][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:Sn.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:Sn.Binary.fromHex(o),access_list:void 0}}})})}}},Dn=()=>({transact:ci});var bt=require("@galacticcouncil/xc-core"),$s=require("@galacticcouncil/common");var is=require("@galacticcouncil/xc-core"),Ao=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var eo=require("@galacticcouncil/descriptors"),le=340282366920938463463374607431768211455n,Rt="0x0000000000000000000000000000000000000000000000000000000000000000",os={parents:1,interior:eo.XcmV3Junctions.Here()},to=0,so=1e3,no=1002,ao=1,_t="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var oo="0x0000000000000000000000000000000000000000";var Z=require("@galacticcouncil/descriptors"),ho=require("polkadot-api");var ro=require("@galacticcouncil/common"),Ln=require("@galacticcouncil/descriptors"),Hn=require("polkadot-api"),io=require("@polkadot-api/substrate-bindings"),co=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Ln.XcmV3Junction.AccountKey20({key:Hn.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,io.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Ln.XcmV3Junction.AccountId32({id:Hn.FixedSizeBinary.fromHex((0,co.toHex)(s.publicKey)),network:void 0})}function rs(t,e,s){return ro.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Wn=require("@galacticcouncil/xc-core");function mo(t,e){let s=Wn.multiloc.findNestedKey(t,"GeneralIndex"),n=Wn.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,o=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function Q(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var js={};Vt(js,{ETHER_TOKEN_ADDRESS:()=>Vn,erc20Location:()=>ui,erc20LocationReanchored:()=>li,ethereumLocation:()=>lo,parachainLocation:()=>mi});var Be=require("@galacticcouncil/descriptors"),Mn=require("polkadot-api"),Vn="0x0000000000000000000000000000000000000000",uo=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function lo(t){return{parents:2,interior:Be.XcmV3Junctions.X1(uo(t))}}function mi(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function ui(t,e){return e===Vn?lo(t):{parents:2,interior:Be.XcmV3Junctions.X2([uo(t),Be.XcmV3Junction.AccountKey20({key:Mn.Binary.fromHex(e)})])}}function li(t){return t===Vn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:Mn.Binary.fromHex(t)}))}}var Un=require("@galacticcouncil/common"),fo=require("@galacticcouncil/xc-core");function Y(t,e){return di(e)>=4?(0,Un.encodeLocation)(t):fi(t)}function di(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function fi(t){return{type:"Concrete",value:(0,Un.encodeLocation)(t)}}var pi=1e3;function hi(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 bi(t){if(t)return hi(t)?pi:fo.multiloc.findParachain(t)}function po(t,e,s,n){let a=e.getAssetXcmLocation(t),o=bi(a),i=n?.parachainId??s.parachainId;if(o&&i!==o)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${n.name} (${n.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function Kn(t,e){let s="V4",n=Y(Q(e,t),s),a=ho.Binary.fromHex(Rt);return[Z.XcmV4Instruction.ReserveAssetDeposited([{id:os,fun:Z.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:Z.XcmV3MultiassetFungibility.Fungible(le)}]),Z.XcmV4Instruction.ClearOrigin(),Z.XcmV4Instruction.BuyExecution({fees:{id:os,fun:Z.XcmV3MultiassetFungibility.Fungible(le)},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 Ye=require("@galacticcouncil/descriptors");function bo(t,e){let s="V4",n=Y(Q(e,t),s),a=zs("V4",j(oo),j(_t),n,Rt);return[Ye.XcmV4Instruction.WithdrawAsset([{id:os,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)}]),Ye.XcmV4Instruction.ClearOrigin(),Ye.XcmV4Instruction.BuyExecution({fees:{id:os,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:Ye.XcmV3WeightLimit.Unlimited()}),...a.value]}var P=require("@galacticcouncil/descriptors"),On=require("polkadot-api");function yo(t,e){let s="V4",n=Y(Q(e,t),s),a=On.Binary.fromHex(Rt);return[P.XcmV4Instruction.WithdrawAsset([{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(j(_t))}}),P.XcmV4Instruction.SetTopic(a)]}function Nn(t,e){let s="V4",n=Y(Q(e,t),s);return[P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(j(_t))}})]}function xo(t,e,s){let n="V4",a=Y(Q(e,t),n),o=On.Binary.fromHex(Rt),i=Nn(t,s);return[P.XcmV4Instruction.WithdrawAsset([{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(le)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositReserveAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:P.XcmV3Junctions.X1(P.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),P.XcmV4Instruction.SetTopic(o)]}var go=[is.ChainEcosystem.Polkadot,is.ChainEcosystem.Kusama],yi={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},xi=t=>t.parents===1&&t.interior==="Here",gi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:go.includes(t.ecosystem)&&go.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,wo=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},Ze=(t,e,s)=>{if(gi(e,s)){let a=s.ecosystem===is.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===to)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?so: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)}}),Gn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:xi(s)?yi:s}}:{type:e},ht=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),Co=(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 zs=(t,e,s,n,a)=>{let o=Ao.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:js.ethereumLocation(ao),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:Ai(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(o)]}),f.XcmV4Instruction.SetTopic(o)]}},Ai=t=>{let e=is.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},ko=(t,e,s,n,a,o)=>({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:o.refTime,proof_size:o.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)}})]}),To=(t,e,s,n,a,o)=>({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(o)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var de="PolkadotXcm",wi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=Y(Q(i,n.fee),c),b=ht(l,e),A=ht(h,n.fee.amount),T="limited_reserve_transfer_assets";return new bt.ExtrinsicConfig({module:de,func:T,getTx:X=>{let K=X.getUnsafeApi().tx[de][T];return s.key===n.fee.key?K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):mo(l,h)?K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[A,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[b,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Ci=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="limited_teleport_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),ki=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="reserve_transfer_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0})})}}),Ti=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="transfer_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),vi=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let l="V4",h=m.chain,b=a.chain,A=a.fee.amount,T=a.fee;c&&(b=c.chain,A=$s.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let X=j(i),K=c||b.usesCexForwarding?rs(h,i,b):e,D=j(K),{transferType:ee}=t,G=Y(Q(h,s),l),C=Y(Q(h,T),l),$e=ht(G,n),Pt=ht(C,A),et=s.isEqual(T),ct=Ze(l,h,b),tt={type:l,value:et?[$e]:[Pt,$e]},mt=Gn(l,ee,G),ys={type:l,value:et?G:C},Bn=Gn(l,ee,C),Mt;wo(G)&&a.chain.isEvmChain()?Mt=zs(l,D,X,G,o):Mt=Co(l,D,tt.value.length);let Ps="transfer_assets_using_type_and_then";return new bt.ExtrinsicConfig({module:de,func:Ps,getTx:Ar=>Ar.getUnsafeApi().tx[de][Ps]({dest:ct,assets:tt,assets_transfer_type:mt,remote_fees_id:ys,fees_transfer_type:Bn,custom_xcm_on_dest:Mt,weight_limit:{type:"Unlimited"}})})}}),Bi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,l=rs(m,n,c),h=j(l),{fee:b}=o,A=Y(Q(c,b),i),T=$s.big.toBigInt(e.fee,b.decimals);return new bt.ExtrinsicConfig({module:de,func:t,getTx:X=>X.getUnsafeApi().tx[de][t]({dest:Ze(i,m,c),message:ko(i,h,A,T,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:o,sender:i,source:m,destination:c}=s,l="V4",h=m.chain,b=c.chain,A=rs(h,i,b),T=j(A),X=j(a),K=Y(Q(b,o),l),{fee:D}=c,ee=$s.big.toBigInt(e.fee,D.decimals),G=n>D.amount?n-(D.amount+ee):n;return new bt.ExtrinsicConfig({module:de,func:t,getTx:C=>C.getUnsafeApi().tx[de][t]({dest:Ze(l,h,b),message:To(l,T,K,G,ee,X)})})}})}},qn=()=>({limitedReserveTransferAssets:wi,limitedTeleportAssets:Ci,reserveTransferAssets:ki,transferAssets:Ti,transferAssetsUsingTypeAndThen:vi,send:Bi});var Po=require("@galacticcouncil/xc-core"),Eo=require("@galacticcouncil/common");var As=require("@galacticcouncil/descriptors"),vo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:As.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:As.XcmV3Junctions.X2([As.XcmV3Junction.Parachain(e.parachainId),s])}};var Bo="XTokens",Pi=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:o})=>{let i=o.chain,m=n.chain,c="V3",l=m.usesCexForwarding?rs(i,a,m):t,h=j(l),b=i.getAssetId(s),A=(0,Eo.encodeAssetId)(b),T="transfer";return new Po.ExtrinsicConfig({module:Bo,func:T,getTx:X=>X.getUnsafeApi().tx[Bo][T]({currency_id:A,amount:e,dest:vo(c,m,h),dest_weight_limit:{type:"Unlimited"}})})}}),jn=()=>({transfer:Pi});function u(){return{assetConversion:Va,assets:Ka,balances:Ga,ethereumXcm:Dn,polkadotXcm:qn,router:za,utility:Qa,xTokens:jn}}function rt(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}var yt=require("@galacticcouncil/xc-core");var zn={};Vt(zn,{AssethubClient:()=>fe,BaseClient:()=>Pe,HydrationClient:()=>je});var Fo=require("@galacticcouncil/common"),Js=require("@galacticcouncil/descriptors"),Pe=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:o}=n;return BigInt(a)-BigInt(o)}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 o=(0,Fo.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Js.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var cs=require("@galacticcouncil/descriptors"),Xo=require("@galacticcouncil/common"),Qs=require("@polkadot-api/substrate-bindings"),Io=require("@polkadot-api/utils");var fe=class extends Pe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=(0,Xo.encodeLocation)(n);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.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,Io.toHex)((0,Qs.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=Qs.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=cs.XcmVersionedLocation.V5({parents:1,interior:cs.XcmV5Junctions.X1(cs.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 o=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var Ro=require("@galacticcouncil/descriptors");var je=class extends Pe{constructor(e){super(e,Ro.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:o}=n;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}};function Ei(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=yt.Wormhole.fromChain(n),i=yt.Wormhole.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:yt.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Fi(){return{TokenRelayer:Ei}}function Xi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=yt.Snowbridge.fromChain(a),m=new Pe(o),c=new fe(t.hub),l=Kn(e,o),[h,b]=await Promise.all([m.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,o.parachainId)]),A=b+ns(h,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:yt.Abi.Snowbridge,address:i.getGateway(),args:[T,o.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new fe(t.hub),i=bo(e,a),m=Kn(e,a),[c,l,h,b,A]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,no),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+ns(h,25n)+b+ns(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:A}}}})}}function Ii(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(po(e,a,o,i),i){let A=new Pe(o),T=new Pe(i),X=Nn(e,o),K=xo(e,i,o),[D,ee]=await Promise.all([A.calculateDestinationFee(X,e),T.calculateDestinationFee(K,e)]),G=ee+D,C=ns(G,20n),$e=C-G;return{amount:C,breakdown:{reserveFee:ee,destinationFee:D,margin:$e}}}let m=new Pe(o),c=yo(e,o),l=await m.calculateDestinationFee(c,e),h=ns(l,20n),b=h-l;return{amount:h,breakdown:{totalFee:l,margin:b}}}})}}function w(){return{XcmPaymentApi:Ii,Snowbridge:Xi,Wormhole:Fi}}var Ri="0";function _i(){return{build:async({address:t,chain:e})=>{let n=await new je(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Ri,o=e.findAssetById(a);return o?o.asset:$}}}var Si=()=>({accountCurrencyMap:_i});function ws(){return{multiTransactionPayment:Si}}var pe=require("@galacticcouncil/xc-core"),ce=require("@solana/spl-token"),ze=require("@solana/web3.js"),$n=require("@wormhole-foundation/sdk-connect"),xt=require("@wormhole-foundation/sdk-solana-tokenbridge"),Di=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=pe.Wormhole.fromChain(m),h=pe.Wormhole.fromChain(t.moonchain),b=pe.Precompile.Bridge,A=await pe.mrl.createPayload(i.chain,s),T=new ze.PublicKey(o),X=new $n.UniversalAddress(b),K=h.getWormholeId(),D=T,ee=0,G=ze.Keypair.generate(),C=ze.Keypair.generate(),$e=await(0,ce.getMinimumBalanceForRentExemptAccount)(c.connection),Pt=ze.SystemProgram.createAccount({fromPubkey:D,newAccountPubkey:C.publicKey,lamports:$e,space:ce.ACCOUNT_SIZE,programId:ce.TOKEN_PROGRAM_ID}),et=ze.SystemProgram.transfer({fromPubkey:D,lamports:n,toPubkey:C.publicKey}),ct=(0,ce.createInitializeAccountInstruction)(C.publicKey,ce.NATIVE_MINT,D),tt=(0,xt.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),C.publicKey,D,n),mt=(0,xt.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,G.publicKey,C.publicKey,ce.NATIVE_MINT,ee,n,X.toUint8Array(),K,A.toU8a()),ys=(0,ce.createCloseAccountInstruction)(C.publicKey,D,D);return new pe.ProgramConfig({instructions:[Pt,et,ct,tt,mt,ys],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt($e)})}})}),Li=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,l=c,h=pe.Wormhole.fromChain(c),b=pe.Wormhole.fromChain(t.moonchain),A=pe.Precompile.Bridge,T=await pe.mrl.createPayload(m.chain,s),X=new ze.PublicKey(i),K=o.chain.getAssetId(a),D=new ze.PublicKey(K),ee=await(0,ce.getAssociatedTokenAddress)(D,X),G=new $n.UniversalAddress(A),C=b.getWormholeId();if(await(0,xt.getWrappedMeta)(l.connection,h.getTokenBridge(),D).catch(mt=>null).then(mt=>mt!=null))throw new Error("Wrapped assets not supported yet");let Pt=0,et=ze.Keypair.generate(),ct=(0,xt.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),ee,X,n),tt=(0,xt.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,et.publicKey,ee,D,Pt,n,G.toUint8Array(),C,T.toU8a());return new pe.ProgramConfig({instructions:[ct,tt],signers:[et],func:"TransferWithPayload",module:"TokenBridge"})}})}),_o=()=>({transferNativeWithPayload:Di,transferTokenWithPayload:Li});function So(){return{TokenBridge:_o}}function Cs(){return{Wormhole:So}}var it=require("@galacticcouncil/xc-core"),Do=require("@mysten/sui/transactions"),Ys=require("@mysten/sui/utils"),Lo=require("@wormhole-foundation/sdk-connect"),ks=require("@wormhole-foundation/sdk-sui"),Hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=it.Wormhole.fromChain(m),h=it.Wormhole.fromChain(t.moonchain),b=0,A=it.Precompile.Bridge,T=await it.mrl.createPayload(i.chain,s),X=new Lo.UniversalAddress(A),K=h.getWormholeId(),D=Ys.SUI_TYPE_ARG,[ee,G]=await Promise.all([(0,ks.getPackageId)(c.client,l.coreBridge),(0,ks.getPackageId)(c.client,l.tokenBridge)]),C=new Do.Transaction,[$e]=C.splitCoins(C.gas,[C.pure.u64(n)]),[Pt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[et]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[D]}),ct=!1,tt=await(async()=>{let Mt=await(0,ks.getOldestEmitterCapObjectId)(c.client,ee,o);if(Mt!==null)return C.object(Mt);{let[Ps]=C.moveCall({target:`${ee}::emitter::new`,arguments:[C.object(l.coreBridge)]});return ct=!0,Ps}})(),[mt,ys]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[tt,et,$e,C.pure.u16(K),C.pure.vector("u8",X.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[D]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[ys],typeArguments:[D]});let[Bn]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),mt],typeArguments:[D]});return C.moveCall({target:`${ee}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),Pt,Bn,C.object(Ys.SUI_CLOCK_OBJECT_ID)]}),ct&&C.transferObjects([tt],C.pure.address(o)),new it.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ho=()=>({transferNativeWithPayload:Hi});function Wo(){return{TokenBridge:Ho}}function Jn(){return{Wormhole:Wo}}var Yn={};Vt(Yn,{Tag:()=>gt});var gt=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(gt||{});var Zn=require("@galacticcouncil/xc-core");function ms(t,e){return new Zn.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:S().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}function me(t,e){return new Zn.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:H}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Wi=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),destinationFee:{asset:H,balance:r().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),ms(ye,ne),ms(Qe,Te),ms(x,ke),ms(p,Ce),ms(Je,we)],Mi=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),fee:{asset:H,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:H,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:H}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]}),me(Xe,Xe),me(Re,Re),me(_e,_e),me(Me,Me),me(Ue,Ue),me(Ke,Ke),me(Le,Le),me(Se,Se),me(He,He),me(Ve,Ve),me(Oe,Oe),me(Ge,Ge),me(x,Ft),me(p,Et)],ff=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),destinationFee:{asset:H,balance:r().evm().erc20()}},destination:{chain:E,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Dt.AssetRoute({source:{asset:ye,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{asset:ye,balance:r().evm().erc20()}},destination:{chain:E,asset:ne,fee:{amount:0,asset:ne}},contract:S().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Mo=new Dt.ChainRoutes({chain:_,routes:[...Wi,...Mi]});var Vo=[Mo];var At=require("@galacticcouncil/xc-core");var Zs=require("@galacticcouncil/xc-core");var Lt=0,Vi=t=>{let{source:e}=t;return!!e.feeSwap},Ui=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Uo=u().assetConversion().swapTokensForExactTokens({slippage:30});function Ki(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:rt(Ui,Uo).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function en(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:rt(Vi,Uo).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ht(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function tn(t){return Ki(t,d,.02)}var Oi=[new At.AssetRoute({source:{asset:g,balance:r().substrate().system().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().system().account()},min:ft().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new At.AssetRoute({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ht(p,d,.02),Ht(x,d,.02),tn(st)],Ni=[new At.AssetRoute({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:nt,asset:F,fee:{amount:.001,asset:F}},extrinsic:u().polkadotXcm().transferAssets()})],Gi=[Ht(p,E,.25),Ht(x,E,.25)],qi=[Ht(p,W,.03),Ht(x,W,.03)],ji=[new At.AssetRoute({source:{asset:N,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Ko=new At.ChainRoutes({chain:ut,routes:[en(p,d,.02),en(x,d,.02),en(g,d,.001)]}),Oo=new At.ChainRoutes({chain:k,routes:[...Oi,...Ni,...Gi,...qi,...ji]});var Ee=require("@galacticcouncil/xc-core");var zi=[new Ee.AssetRoute({source:{asset:L,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ee.AssetRoute({source:{asset:I,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:v,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:R,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:U,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:J,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:J,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:J}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:p,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],No=new Ee.ChainRoutes({chain:se,routes:[...zi]});var he=require("@galacticcouncil/xc-core");var $i=[new he.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:I,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:U,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:J,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new he.AssetRoute({source:{asset:L,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:L,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:se}),asset:L}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:v,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:R,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ji=[new he.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Go=new he.ChainRoutes({chain:W,routes:[...$i,...Ji]});var Ae=require("@galacticcouncil/xc-core");var Qi="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Qi?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),z=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:B()});var wt=require("@galacticcouncil/xc-core");var Yi=.9,Zi=1,ec=1,sn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},nn=u().router().buy({slippage:30});function O(t,e,s){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function us(t,e,s){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Ct(t,e){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function an(t){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function tc(t,e,s="LocalReserve"){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:ec,asset:v}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function kt(t){return tc(t,E,"DestinationReserve")}function qo(t,e,s,n,a,o){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:rt(sn,nn).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:Yi})]),transact:{chain:E,fee:{amount:Zi,asset:v,balance:B()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function on(t,e,s){return qo(t,e,s,0,S().Batch().batchAll([S().Erc20().approve(n=>n.getTokenBridge()),S().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Tt(t,e,s){return qo(t,e,s,w().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 wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:s,asset:e,fee:{amount:w().Snowbridge().calculateOutboundFee({hub:k}),asset:g}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var sc=[Ct(g,k),Ct(F,k),Ct(p,k),Ct(x,k),an(st)],nc=[O(L,se),O(I,se,W),O(v,se,E),new Ae.AssetRoute({source:{asset:R,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:M,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(U,se,W),O(J,se,W),O(p,se,k),O(x,se,k)],ac=[O(I,W),O(U,W),O(J,W),O(L,W,se),O(v,W,E),new Ae.AssetRoute({source:{asset:R,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(p,W,k),O(x,W,k),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],oc=[us(R,ve,62e-8),us(M,ve,.0019213457),us($,ve,.5),us(p,ve,.3),us(x,ve,.3),new Ae.AssetRoute({source:{asset:U,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:U,fee:{amount:.01,asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:g,fee:{amount:.05,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],rc=[O($,E),O(v,E),O(p,E,k),O(x,E,k),kt(ne),kt(we),kt(ke),kt(Ce),kt(Te),kt(te),kt(q)],ic=[new Ae.AssetRoute({source:{asset:N,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],cc=[O(Ne,Jt)],mc=[new Ae.AssetRoute({source:{asset:be,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Nt,asset:be,fee:{amount:.04,asset:be}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],uc=[O(De,qt)],lc=[new Ae.AssetRoute({source:{asset:xe,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Yt,asset:xe,fee:{amount:.02,asset:xe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],dc=[new Ae.AssetRoute({source:{asset:ge,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:$t,asset:ge,fee:{amount:1.1,asset:ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],fc=[O(We,jt)],pc=[O(Ie,Kt)],hc=[Tt(ne,ye,_),Tt(te,H,_),Tt(Te,Qe,_),Tt(Ce,p,_),Tt(ke,x,_),on(we,Je,_)],bc=[ae(H,H,_),ae(Xe,Xe,_),ae(Re,Re,_),ae(_e,_e,_),ae(Me,Me,_),ae(Ue,Ue,_),ae(Ke,Ke,_),ae(Oe,Oe,_),ae(Le,Le,_),ae(Se,Se,_),ae(He,He,_),ae(Ve,Ve,_),ae(Ge,Ge,_),ae(Ft,x,_),ae(Et,p,_)],yc=[Tt(q,q,dt),on(oe,oe,dt),on(re,re,dt)],xc=[Tt(ie,ie,Zt)],gc=[Ct(g,ut),Ct(p,ut),Ct(x,ut)],jo=new Ae.ChainRoutes({chain:d,routes:[...pc,...sc,...nc,...ac,...gc,...mc,...bc,...hc,...oc,...uc,...lc,...rc,...ic,...fc,...dc,...yc,...xc,...cc]});var Wt=require("@galacticcouncil/xc-core");var ea=()=>r().substrate().tokens().accounts();function rn(t,e){return new Wt.AssetRoute({source:{asset:t,balance:ea(),fee:{asset:M,balance:ea()},destinationFee:{balance:ea()}},destination:{chain:d,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var Ac=[new Wt.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Wt.AssetRoute({source:{asset:R,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Wt.AssetRoute({source:{asset:$,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:$,fee:{amount:.5,asset:$}},extrinsic:u().xTokens().transfer()}),rn(U,W),rn(p,k),rn(x,k),rn(g,k)],zo=new Wt.ChainRoutes({chain:ve,routes:[...Ac]});var Bt=require("@galacticcouncil/xc-core");var ta=require("@galacticcouncil/xc-core");function wc(t,e,s){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function Cc(t,e,s){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function vt(t,e){return wc(t,d,e)}function cn(t,e){return Cc(t,d,e)}var kc=[new Bt.AssetRoute({source:{asset:v,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:S().PolkadotXcm().transferAssetsToPara32()}),cn($,.6),cn(p,.3),cn(x,.3),vt(ne,.004),vt(we,.004),vt(ke,.004),vt(Ce,.004),vt(Te,1e-7),vt(te,2e-6),vt(q,2e-5)],Tc=[new Bt.AssetRoute({source:{asset:p,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:p,fee:{amount:.18,asset:p}},contract:S().PolkadotXcm().transferAssetsToPara32()}),new Bt.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:x,fee:{amount:.18,asset:x}},contract:S().PolkadotXcm().transferAssetsToPara32()})],Ap=[new Bt.AssetRoute({source:{asset:te,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:te,balance:r().evm().erc20()}},destination:{chain:_,asset:H,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Bt.AssetRoute({source:{asset:ne,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:ne,balance:r().evm().erc20()}},destination:{chain:_,asset:ye,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:ye}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],$o=new Bt.ChainRoutes({chain:E,routes:[...kc,...Tc]});var Ts=require("@galacticcouncil/xc-core");var vc=[new Ts.AssetRoute({source:{asset:N,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:N,fee:{amount:.01,asset:N}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Bc=[new Ts.AssetRoute({source:{asset:N,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:N,fee:{amount:.1,asset:N}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Jo=new Ts.ChainRoutes({chain:lt,routes:[...vc,...Bc]});var mn=require("@galacticcouncil/xc-core");var Pc=[new mn.AssetRoute({source:{asset:Ne,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ne,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Qo=new mn.ChainRoutes({chain:Jt,routes:[...Pc]});var un=require("@galacticcouncil/xc-core");var Ec=[new un.AssetRoute({source:{asset:be,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:be,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:be}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],Yo=new un.ChainRoutes({chain:Nt,routes:[...Ec]});var ln=require("@galacticcouncil/xc-core");var Fc=[new ln.AssetRoute({source:{asset:ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.2,asset:ge}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],Zo=new ln.ChainRoutes({chain:$t,routes:[...Fc]});var dn=require("@galacticcouncil/xc-core");var Xc=[new dn.AssetRoute({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ie,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],er=new dn.ChainRoutes({chain:Kt,routes:[...Xc]});var fn=require("@galacticcouncil/xc-core");var Ic=[new fn.AssetRoute({source:{asset:De,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:De,fee:{amount:2,asset:De}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],tr=new fn.ChainRoutes({chain:qt,routes:[...Ic]});var pn=require("@galacticcouncil/xc-core");var Rc=[new pn.AssetRoute({source:{asset:xe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:xe,fee:{amount:.03,asset:xe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],sr=new pn.ChainRoutes({chain:Yt,routes:[...Rc]});var hn=require("@galacticcouncil/xc-core");var _c=[new hn.AssetRoute({source:{asset:We,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:.205,asset:We}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],nr=new hn.ChainRoutes({chain:jt,routes:[..._c]});var ar=[er,Oo,Ko,No,Go,jo,zo,$o,Jo,nr,Qo,Yo,Zo,tr,sr];var ls=require("@galacticcouncil/xc-core");var Sc=[new ls.AssetRoute({source:{asset:q,balance:r().solana().native(),destinationFee:{asset:q,balance:r().solana().native()}},destination:{chain:d,asset:q,fee:{amount:0,asset:q}},program:Cs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ls.AssetRoute({source:{asset:oe,balance:r().solana().token(),fee:{asset:q,balance:r().solana().native()},destinationFee:{asset:oe,balance:r().solana().token()}},destination:{chain:d,asset:oe,fee:{amount:0,asset:oe}},program:Cs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ls.AssetRoute({source:{asset:re,balance:r().solana().token(),fee:{asset:q,balance:r().solana().native()},destinationFee:{asset:re,balance:r().solana().token()}},destination:{chain:d,asset:re,fee:{amount:0,asset:re}},program:Cs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],or=new ls.ChainRoutes({chain:dt,routes:[...Sc]});var rr=[or];var bn=require("@galacticcouncil/xc-core");var Dc=[new bn.AssetRoute({source:{asset:ie,balance:r().sui().native(),destinationFee:{asset:ie,balance:r().sui().native()}},destination:{chain:d,asset:ie,fee:{amount:0,asset:ie}},move:Jn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],ir=new bn.ChainRoutes({chain:Zt,routes:[...Dc]});var cr=[ir];var vs=require("@galacticcouncil/xc-core");var Lc=require("@galacticcouncil/xc-core");var sa=.0015;var Hc=new vs.AssetRoute({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:sa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Wc=new vs.AssetRoute({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:sa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:es,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),mr=new vs.ChainRoutes({chain:nt,routes:[Wc,Hc]});var Bs=require("@galacticcouncil/xc-core");var Mc="0",ds=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Mc?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),na=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:ds()});var Vc=[new Bs.AssetRoute({source:{asset:p,balance:ds(),fee:na(),destinationFee:{balance:ds()}},destination:{chain:nt,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Uc=[new Bs.AssetRoute({source:{asset:F,balance:ds(),fee:na(),destinationFee:{balance:ds()}},destination:{chain:nt,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],ur=new Bs.ChainRoutes({chain:es,routes:[...Vc,...Uc]});var lr=[mr,ur];var Kc=[...Vo,...ar,...rr,...cr,...lr],dr=new Map(Kc.map(t=>[t.chain.key,t]));var aa=require("@galacticcouncil/xc-core");var fs=require("@galacticcouncil/xc-core");var yn=class extends fs.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new fs.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},xn=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:o,destinationFeeBalance:i}=n,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});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 fe(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};var ps=require("@galacticcouncil/xc-core");var gn=class extends ps.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new fe(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain;if(await new fe(o).getSystemAccountBalance(n)===0n)throw new ps.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},An=class extends ps.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,o=a.chain;if(await new fe(o).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 Oc=12,Nc=1,Gc=18,wn=class extends hs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new je(n),o=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain,i=new je(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||Nc,h=c.decimals||Oc,b=l*Math.pow(10,h),A=await i.getAssetBalance(n,m);if(BigInt(b*1.1)>A)throw new hs.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Cn=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,o=a.chain,i=new je(o),m=o.getBalanceAssetId(v),c=o.getAssetDecimals(v)||Gc,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new hs.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Fe={isAny:()=>!0,isHydration:t=>t instanceof aa.Parachain&&t.parachainId===2034,isHub:t=>t instanceof aa.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},fr=[new yn(Fe.isAny,Fe.isAny),new xn(Fe.isAny,Fe.isAny),new gn(Fe.isAny,Fe.isHub),new An(Fe.isHub,Fe.isAny),new wn(Fe.isAny,Fe.isHydration),new Cn(Fe.isHydration,Fe.isAny)];var ca={};Vt(ca,{AssethubDex:()=>ia,HydrationDex:()=>oa});var bs=require("@galacticcouncil/sdk-next"),hr=require("@galacticcouncil/common");var pr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:kn}=bs.pool,{TradeRouteBuilder:qc,TradeRouter:jc}=bs.sor,{TxBuilderFactory:zc}=bs.tx,oa=class{chain;client;poolCtx;txBuilder;getCtx=pr(async e=>{console.log("init swap router",e,"\u2705");let s=new jc(this.poolCtx);return s.withFilter({useOnly:[kn.Aave,kn.Omni,kn.Stable,kn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new je(this.chain),this.txBuilder=new zc(s.client,s.evm)}async getCalldata(e,s,n,a,o=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),h=await l.getMostLiquidRoute(i,m),b=await l.getBuy(i,m,c,h);return(await(await this.txBuilder.trade(b).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(o,i),h=await c.getBuy(o,i,m,l);return{amount:h.amountIn,route:qc.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 o=a*s,i=Math.pow(10,hr.RUNTIME_DECIMALS);return o/BigInt(i)}};var ra=require("@galacticcouncil/common"),ia=class{chain;client;constructor(e){this.chain=e,this.client=new fe(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),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,ra.encodeLocation)(a),(0,ra.encodeLocation)(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var gr=require("@galacticcouncil/xc-core");var br=require("@galacticcouncil/xc-core");function Tn(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new br.Asset({key:[a,s,e].join("_"),originSymbol:n})}function yr(t){let{decimals:e,id:s}=t;return{asset:Tn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function xr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:Tn(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 vn=class extends gr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=Tn(o),m=yr(o),c=xr(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,tn(i)),this.updateChainRoute(s,an(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
|
1
|
+
"use strict";var Pn=Object.defineProperty;var wr=Object.getOwnPropertyDescriptor;var Cr=Object.getOwnPropertyNames;var kr=Object.prototype.hasOwnProperty;var Vt=(t,e)=>{for(var s in e)Pn(t,s,{get:e[s],enumerable:!0})},Tr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Cr(e))!kr.call(t,a)&&a!==s&&Pn(t,a,{get:()=>e[a],enumerable:!(n=wr(e,a))||n.enumerable});return t};var vr=t=>Tr(Pn({},"__esModule",{value:!0}),t);var $c={};Vt($c,{HydrationConfigService:()=>vn,assetsMap:()=>ma,builders:()=>Qn,chainsMap:()=>wa,clients:()=>zn,dex:()=>ca,routesMap:()=>dr,tags:()=>Yn,validations:()=>fr});module.exports=vr($c);var y=require("@galacticcouncil/xc-core"),Xe=new y.Asset({key:"aave",originSymbol:"AAVE"}),Ie=new y.Asset({key:"ajun",originSymbol:"AJUN"}),L=new y.Asset({key:"astr",originSymbol:"ASTR"}),I=new y.Asset({key:"bnc",originSymbol:"BNC"}),En=new y.Asset({key:"bsx",originSymbol:"BSX"}),Re=new y.Asset({key:"cfg_new",originSymbol:"CFG"}),be=new y.Asset({key:"cru",originSymbol:"CRU"}),ye=new y.Asset({key:"dai",originSymbol:"DAI"}),ne=new y.Asset({...ye,key:"dai_mwh"}),g=new y.Asset({key:"dot",originSymbol:"DOT"}),H=new y.Asset({key:"eth",originSymbol:"ETH"}),_e=new y.Asset({key:"ena",originSymbol:"ENA"}),v=new y.Asset({key:"glmr",originSymbol:"GLMR"}),$=new y.Asset({key:"hdx",originSymbol:"HDX"}),R=new y.Asset({key:"ibtc",originSymbol:"IBTC"}),M=new y.Asset({key:"intr",originSymbol:"INTR"}),oe=new y.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),F=new y.Asset({key:"ksm",originSymbol:"KSM"}),Se=new y.Asset({key:"ldo",originSymbol:"LDO"}),De=new y.Asset({key:"laos",originSymbol:"LAOS"}),Le=new y.Asset({key:"lbtc",originSymbol:"LBTC"}),xe=new y.Asset({key:"ewt",originSymbol:"EWT"}),He=new y.Asset({key:"link",originSymbol:"LINK"}),N=new y.Asset({key:"myth",originSymbol:"MYTH"}),We=new y.Asset({key:"neuro",originSymbol:"NEURO"}),ge=new y.Asset({key:"pen",originSymbol:"PEN"}),Me=new y.Asset({key:"paxg",originSymbol:"PAXG"}),re=new y.Asset({key:"prime",originSymbol:"PRIME"}),Ve=new y.Asset({key:"sky",originSymbol:"SKY"}),q=new y.Asset({key:"sol",originSymbol:"SOL"}),ie=new y.Asset({key:"sui",originSymbol:"SUI"}),Ue=new y.Asset({key:"susde",originSymbol:"sUSDe"}),Je=new y.Asset({key:"susds",originSymbol:"sUSDS"}),we=new y.Asset({...Je,key:"susds_mwh"}),Ke=new y.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new y.Asset({key:"trac",originSymbol:"TRAC"}),Ne=new y.Asset({key:"unq",originSymbol:"UNQ"}),p=new y.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new y.Asset({...p,key:"usdt_mwh"}),Et=new y.Asset({...p,key:"usdt_eth"}),x=new y.Asset({key:"usdc",originSymbol:"USDC"}),ke=new y.Asset({...x,key:"usdc_mwh"}),Ft=new y.Asset({...x,key:"usdc_eth"}),J=new y.Asset({key:"vastr",originSymbol:"vASTR"}),U=new y.Asset({key:"vdot",originSymbol:"vDOT"}),Ut=new y.Asset({key:"weth",originSymbol:"WETH"}),te=new y.Asset({...Ut,key:"weth_mwh"}),Qe=new y.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new y.Asset({...Qe,key:"wbtc_mwh"}),Ge=new y.Asset({key:"wsteth",originSymbol:"wstETH"}),st=new y.Asset({key:"wud",originSymbol:"WUD"}),Br=[Xe,Ie,L,En,Re,be,I,ye,ne,g,_e,H,v,$,R,M,F,Se,De,Le,xe,oe,He,N,We,Me,ge,re,Ve,q,ie,Ue,Je,we,Oe,Ke,Ne,x,ke,Ft,p,Ce,Et,J,U,Qe,Te,Ut,te,Ge,st],ma=new Map(Br.map(t=>[t.key,t]));var Es=require("@galacticcouncil/xc-core");var ua=require("viem/chains"),_=new Es.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Xe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Ut,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ye,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ue,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ke,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Qe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,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:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Es.ChainEcosystem.Ethereum,evmChain:ua.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 la=[_];var Fs=require("@galacticcouncil/xc-core");var Kt=new Fs.Parachain({assetsData:[{asset:Ie,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Fs.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 da={assetsData:[{asset:g,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:x,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: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"]},k=new xs.Parachain({...da,key:"assethub",name:"AssetHub Polkadot"}),ut=new xs.Parachain({...da,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Xs=require("@galacticcouncil/xc-core");var se=new Xs.Parachain({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:g,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:x,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:M,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Xs.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 Pr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],W=new Is.Parachain({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,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:p,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset: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:R,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:Pr});var Ot=require("@galacticcouncil/xc-core");var Nt=new Ot.Parachain({assetsData:[{asset:be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ot.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:Ot.XcmVersion.v3});var _s=require("@galacticcouncil/xc-core"),pa=require("viem");var fa=require("@polkadot-api/substrate-bindings"),Er="ETH\0",Rs=class{async toH160(e){let s=(0,fa.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Er),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Fr=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"],Xr=(0,pa.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:$,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:Ie,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:I,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:be,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:ne,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:_e,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:M,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:re,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:xe,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:ge,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ve,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:ie,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:Je,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:Ke,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Oe,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ne,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:x,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset: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:Et,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:J,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Qe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Te,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Ut,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:Ge,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:_s.ChainEcosystem.Polkadot,evmChain:Xr,evmResolver:Fr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Xn,rpcs:Fn});var Gt=require("@galacticcouncil/xc-core");var ve=new Gt.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.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:g,decimals:10,id:{Token:g.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:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:$,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:U,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Gt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",usesLegacyEnhancer:!0,xcmVersion:Gt.XcmVersion.v3});var Ss=require("@galacticcouncil/xc-core");var qt=new Ss.Parachain({assetsData:[{asset:De,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ss.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 Ds=require("@galacticcouncil/xc-core"),ha=require("viem");var Ir=(0,ha.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}),E=new Ds.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:q,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:re,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:we,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ie,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:te,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:$,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ds.ChainEcosystem.Polkadot,evmChain:Ir,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 Ls=require("@galacticcouncil/xc-core");var lt=new Ls.Parachain({assetsData:[{asset:N,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ls.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 Hs=require("@galacticcouncil/xc-core");var jt=new Hs.Parachain({assetsData:[{asset:We,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Hs.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var zt=require("@galacticcouncil/xc-core");var $t=new zt.Parachain({assetsData:[{asset:ge,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:zt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:zt.XcmVersion.v3});var Ws=require("@galacticcouncil/xc-core");var Rr={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ws.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 Ws.Parachain({...Rr,key:"polkadot"});var Ms=require("@galacticcouncil/xc-core");var Jt=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 Qt=require("@galacticcouncil/xc-core");var Yt=new Qt.Parachain({assetsData:[{asset:xe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qt.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesLegacyEnhancer:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:Qt.XcmVersion.v3});var ya=[Kt,k,ut,se,W,Nt,d,qt,jt,ve,E,lt,$t,ba,Jt,Yt];var Vs=require("@galacticcouncil/xc-core");var dt=new Vs.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:q,decimals:9},{asset:oe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:re,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],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 xa=[dt];var Us=require("@galacticcouncil/xc-core");var Zt=new Us.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:Us.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var ga=[Zt];var Ks=require("@galacticcouncil/xc-core");var nt=new Ks.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:Ks.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 Os=require("@galacticcouncil/xc-core");var es=new Os.Parachain({assetsData:[{asset:En,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:Os.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 Aa=[nt,es];var _r=[...la,...ya,...xa,...ga,...Aa],wa=new Map(_r.map(t=>[t.key,t]));var Dt=require("@galacticcouncil/xc-core");var Qn={};Vt(Qn,{AssetMinBuilder:()=>ft,BalanceBuilder:()=>r,ContractBuilder:()=>S,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>rt,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>ws,MoveBuilder:()=>Jn,ProgramBuilder:()=>Cs,XcmTransferType:()=>ue,XcmVersion:()=>ot});var Ns=require("@galacticcouncil/xc-core");function ft(){return{assetRegistry:Sr,assets:Dr}}function Sr(){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 Dr(){return{asset:()=>({build:({asset:t})=>new Ns.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var gs=require("@galacticcouncil/xc-core");function Ca(){return{erc20:Hr,native:Lr}}function Lr(){return{build:({address:t})=>new gs.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Hr(){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 gs.ContractConfig({abi:gs.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var ts=require("@galacticcouncil/xc-core"),ss=require("@galacticcouncil/common");function ka(){return{assets:Wr,system:Vr,tokens:Ur,ormlTokens:Kr,foreignAssets:Mr}}function Wr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Mr(){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 o=(0,ss.encodeLocation)(a);return new ts.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Vr(){return{account:()=>({build:({address:t})=>new ts.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 Ur(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Kr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,ss.encodeAssetId)(n);return new ts.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var In=require("@galacticcouncil/xc-core");function Ta(){return{native:Or,token:Nr}}function Or(){return{build:({address:t})=>new In.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Nr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new In.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var va=require("@galacticcouncil/xc-core");function Ba(){return{native:Gr}}function Gr(){return{build:({address:t})=>new va.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Ca,substrate:ka,solana:Ta,sui:Ba}}var Xt=require("@galacticcouncil/xc-core"),Pa=require("viem"),qr=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],o=s.map(i=>(0,Pa.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,o,[]],func:"batchAll",module:"Batch"})}}),Ea=()=>({batchAll:qr});var as=require("@galacticcouncil/xc-core");function ns(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 Fa(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=as.Wormhole.fromChain(i),c=i.getAssetId(n);return new as.ContractConfig({abi:as.Abi.Erc20,address:at(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var qe=require("@galacticcouncil/xc-core"),Ia=require("@galacticcouncil/common"),{Ss58Addr:Xa}=qe.addr;function jr(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 Rn(t,e){let s=t.getAssetId(e);return typeof s=="string"?jr(s):s}function Ra(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rn(a.chain,s);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Xa.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rn(a.chain,s),i=Rn(a.chain,a.destinationFeeBalance),m=Ia.big.toBigInt(n.fee.amount,n.fee.decimals);return new qe.ContractConfig({abi:qe.Abi.PolkadotXcm,address:qe.Precompile.PolkadotXcm,args:[n.chain.parachainId,Xa.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var pt=require("@galacticcouncil/xc-core");var{Ss58Addr:zr}=pt.addr,$r=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=pt.Snowbridge.fromChain(i),l=i.getAssetId(n),h=at(l),b=n.originSymbol==="ETH",A=o.feeBreakdown.bridgeFeeInDot,T=o.fee.amount;return new pt.ContractConfig({abi:pt.Abi.Snowbridge,address:c.getGateway(),args:[h,m.parachainId,[1,zr.getPubKey(e)],A,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),_a=()=>({sendToken:$r});var V=require("@galacticcouncil/xc-core"),_n=require("@solana/web3.js"),Sa=require("@solana/spl-token");var Jr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=V.Wormhole.fromChain(o.chain),c=V.Wormhole.fromChain(t.moonchain),l=V.Precompile.Bridge,h=o.chain.getAssetId(a),b=0,A=await V.mrl.createPayload(i.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:m.getTokenBridge(),args:[at(h),n,c.getWormholeId(),c.normalizeAddress(l),b,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Qr=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:o}=e,i=V.Wormhole.fromChain(a.chain),m=V.Wormhole.fromChain(t.moonchain),c=V.Precompile.Bridge,l=0,h=await V.mrl.createPayload(o.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,h.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Yr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=V.Wormhole.fromChain(m),h=V.Wormhole.fromChain(c),b=e;if(c.isSolana()){let K=c.getAssetId(n);b=(await(0,Sa.getAssociatedTokenAddress)(new _n.PublicKey(K),new _n.PublicKey(e))).toBase58()}let A=m.getAssetId(n),T=0,X=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:l.getTokenBridge(),args:[at(A),s,h.getWormholeId(),h.normalizeAddress(b),T,X],func:"transferTokens",module:"TokenBridge"})}}),Zr=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,o=V.Wormhole.fromChain(n.chain),i=V.Wormhole.fromChain(a.chain),m=0,c=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Da=()=>({transferTokens:Yr,transferTokensWithPayload:Jr,wrapAndTransferETH:Zr,wrapAndTransferETHWithPayload:Qr});var It=require("@galacticcouncil/xc-core");var ei=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=It.Wormhole.fromChain(m),h=It.Wormhole.fromChain(c),b=0,A=0,T=m.getAssetId(n);return new It.ContractConfig({abi:It.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[at(T),s,b,h.getWormholeId(),h.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),La=()=>({transferTokensWithRelay:ei});function Ha(){return{TokenBridge:Da,TokenRelayer:La}}function S(){return{Batch:Ea,Erc20:Fa,PolkadotXcm:Ra,Snowbridge:_a,Wormhole:Ha}}var Ma=require("@galacticcouncil/xc-core"),Wa="AssetConversion",ti=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,o=n.destinationFeeSwap||n.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(m),b=i.amount+i.amount*BigInt(t.slippage)/100n,A=m.amount;return new Ma.ExtrinsicConfig({module:Wa,func:e,getTx:T=>T.getUnsafeApi().tx[Wa][e]({path:[l,h],amount_out:A,amount_in_max:b,send_to:s,keep_alive:!0})})}}},Va=()=>({swapTokensForExactTokens:ti});var Gs=require("@galacticcouncil/descriptors"),Ua=require("@galacticcouncil/xc-core"),si="Assets",ni=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let o=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new Ua.ExtrinsicConfig({module:si,func:t,getTx:l=>l.getTypedApi(Gs.hub).tx.Assets.transfer({id:Number(c),target:Gs.MultiAddress.Id(n),amount:m})})}}},Ka=()=>({transfer:ni});var Na=require("@galacticcouncil/xc-core"),Oa="Balances",ai=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Na.ExtrinsicConfig({module:Oa,func:e,getTx:n=>n.getUnsafeApi().tx[Oa][e]({dest:s,keep_alive:t})})}},Ga=()=>({transferAll:ai});var qa=require("@galacticcouncil/descriptors"),ja=require("@galacticcouncil/xc-core"),oi="Router",ri=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(o),h=c.getMetadataAssetId(i),b=i.amount,A=o.amount+o.amount*BigInt(t.slippage)/100n;return new ja.ExtrinsicConfig({module:oi,func:"buy",getTx:T=>T.getTypedApi(qa.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:b,max_amount_in:A,route:m})})}}),za=()=>({buy:ri});var Ja=require("@galacticcouncil/xc-core"),$a="Utility",ii=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Ja.ExtrinsicConfig({module:$a,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[$a][e]({calls:o})}})}}},Qa=()=>({batchAll:ii});var qs=require("@galacticcouncil/xc-core"),Sn=require("polkadot-api"),Za=require("viem");var ot=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(ot||{}),ue=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(ue||{});var Ya="EthereumXcm",ci=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=(0,Za.encodeFunctionData)({abi:qs.Abi[n.module],functionName:n.func,args:n.args});return new qs.ExtrinsicConfig({module:Ya,func:e,getTx:i=>i.getUnsafeApi().tx[Ya][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:Sn.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:Sn.Binary.fromHex(o),access_list:void 0}}})})}}},Dn=()=>({transact:ci});var bt=require("@galacticcouncil/xc-core"),$s=require("@galacticcouncil/common");var is=require("@galacticcouncil/xc-core"),Ao=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var eo=require("@galacticcouncil/descriptors"),le=340282366920938463463374607431768211455n,Rt="0x0000000000000000000000000000000000000000000000000000000000000000",os={parents:1,interior:eo.XcmV3Junctions.Here()},to=0,so=1e3,no=1002,ao=1,_t="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var oo="0x0000000000000000000000000000000000000000";var Z=require("@galacticcouncil/descriptors"),ho=require("polkadot-api");var ro=require("@galacticcouncil/common"),Ln=require("@galacticcouncil/descriptors"),Hn=require("polkadot-api"),io=require("@polkadot-api/substrate-bindings"),co=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Ln.XcmV3Junction.AccountKey20({key:Hn.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,io.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Ln.XcmV3Junction.AccountId32({id:Hn.FixedSizeBinary.fromHex((0,co.toHex)(s.publicKey)),network:void 0})}function rs(t,e,s){return ro.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Wn=require("@galacticcouncil/xc-core");function mo(t,e){let s=Wn.multiloc.findNestedKey(t,"GeneralIndex"),n=Wn.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,o=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function Q(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var js={};Vt(js,{ETHER_TOKEN_ADDRESS:()=>Vn,erc20Location:()=>ui,erc20LocationReanchored:()=>li,ethereumLocation:()=>lo,parachainLocation:()=>mi});var Be=require("@galacticcouncil/descriptors"),Mn=require("polkadot-api"),Vn="0x0000000000000000000000000000000000000000",uo=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function lo(t){return{parents:2,interior:Be.XcmV3Junctions.X1(uo(t))}}function mi(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function ui(t,e){return e===Vn?lo(t):{parents:2,interior:Be.XcmV3Junctions.X2([uo(t),Be.XcmV3Junction.AccountKey20({key:Mn.Binary.fromHex(e)})])}}function li(t){return t===Vn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:Mn.Binary.fromHex(t)}))}}var Un=require("@galacticcouncil/common"),fo=require("@galacticcouncil/xc-core");function Y(t,e){return di(e)>=4?(0,Un.encodeLocation)(t):fi(t)}function di(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function fi(t){return{type:"Concrete",value:(0,Un.encodeLocation)(t)}}var pi=1e3;function hi(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 bi(t){if(t)return hi(t)?pi:fo.multiloc.findParachain(t)}function po(t,e,s,n){let a=e.getAssetXcmLocation(t),o=bi(a),i=n?.parachainId??s.parachainId;if(o&&i!==o)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${n.name} (${n.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function Kn(t,e){let s="V4",n=Y(Q(e,t),s),a=ho.Binary.fromHex(Rt);return[Z.XcmV4Instruction.ReserveAssetDeposited([{id:os,fun:Z.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:Z.XcmV3MultiassetFungibility.Fungible(le)}]),Z.XcmV4Instruction.ClearOrigin(),Z.XcmV4Instruction.BuyExecution({fees:{id:os,fun:Z.XcmV3MultiassetFungibility.Fungible(le)},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 Ye=require("@galacticcouncil/descriptors");function bo(t,e){let s="V4",n=Y(Q(e,t),s),a=zs("V4",j(oo),j(_t),n,Rt);return[Ye.XcmV4Instruction.WithdrawAsset([{id:os,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)}]),Ye.XcmV4Instruction.ClearOrigin(),Ye.XcmV4Instruction.BuyExecution({fees:{id:os,fun:Ye.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:Ye.XcmV3WeightLimit.Unlimited()}),...a.value]}var P=require("@galacticcouncil/descriptors"),On=require("polkadot-api");function yo(t,e){let s="V4",n=Y(Q(e,t),s),a=On.Binary.fromHex(Rt);return[P.XcmV4Instruction.WithdrawAsset([{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(j(_t))}}),P.XcmV4Instruction.SetTopic(a)]}function Nn(t,e){let s="V4",n=Y(Q(e,t),s);return[P.XcmV4Instruction.BuyExecution({fees:{id:n,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:P.XcmV3Junctions.X1(j(_t))}})]}function xo(t,e,s){let n="V4",a=Y(Q(e,t),n),o=On.Binary.fromHex(Rt),i=Nn(t,s);return[P.XcmV4Instruction.WithdrawAsset([{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(le)}]),P.XcmV4Instruction.ClearOrigin(),P.XcmV4Instruction.BuyExecution({fees:{id:a,fun:P.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:P.XcmV3WeightLimit.Unlimited()}),P.XcmV4Instruction.DepositReserveAsset({assets:P.XcmV4AssetAssetFilter.Wild(P.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:P.XcmV3Junctions.X1(P.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),P.XcmV4Instruction.SetTopic(o)]}var go=[is.ChainEcosystem.Polkadot,is.ChainEcosystem.Kusama],yi={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},xi=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},gi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:go.includes(t.ecosystem)&&go.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,wo=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},Ze=(t,e,s)=>{if(gi(e,s)){let a=s.ecosystem===is.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===to)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?so: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)}}),Gn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:xi(s)?yi:s}}:{type:e},ht=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),Co=(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 zs=(t,e,s,n,a)=>{let o=Ao.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:js.ethereumLocation(ao),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:Ai(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(o)]}),f.XcmV4Instruction.SetTopic(o)]}},Ai=t=>{let e=is.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},ko=(t,e,s,n,a,o)=>({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:o.refTime,proof_size:o.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)}})]}),To=(t,e,s,n,a,o)=>({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(o)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var de="PolkadotXcm",wi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=Y(Q(i,n.fee),c),b=ht(l,e),A=ht(h,n.fee.amount),T="limited_reserve_transfer_assets";return new bt.ExtrinsicConfig({module:de,func:T,getTx:X=>{let K=X.getUnsafeApi().tx[de][T];return s.key===n.fee.key?K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):mo(l,h)?K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[A,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):K({dest:Ze(c,i,m),beneficiary:St(c,o),assets:{type:c,value:[b,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Ci=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="limited_teleport_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),ki=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="reserve_transfer_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0})})}}),Ti=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=j(t),i=a.chain,m=n.chain,c="V4",l=Y(Q(i,s),c),h=ht(l,e),b=Ze(c,i,m),A=St(c,o),T={type:c,value:[h]},X="transfer_assets";return new bt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),vi=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let l="V4",h=m.chain,b=a.chain,A=a.fee.amount,T=a.fee;c&&(b=c.chain,A=$s.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let X=j(i),K=c||b.usesCexForwarding?rs(h,i,b):e,D=j(K),{transferType:ee}=t,G=Y(Q(h,s),l),C=Y(Q(h,T),l),$e=ht(G,n),Pt=ht(C,A),et=s.isEqual(T),ct=Ze(l,h,b),tt={type:l,value:et?[$e]:[Pt,$e]},mt=Gn(l,ee,G),ys={type:l,value:et?G:C},Bn=Gn(l,ee,C),Mt;wo(G)&&a.chain.isEvmChain()?Mt=zs(l,D,X,G,o):Mt=Co(l,D,tt.value.length);let Ps="transfer_assets_using_type_and_then";return new bt.ExtrinsicConfig({module:de,func:Ps,getTx:Ar=>Ar.getUnsafeApi().tx[de][Ps]({dest:ct,assets:tt,assets_transfer_type:mt,remote_fees_id:ys,fees_transfer_type:Bn,custom_xcm_on_dest:Mt,weight_limit:{type:"Unlimited"}})})}}),Bi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,l=rs(m,n,c),h=j(l),{fee:b}=o,A=Y(Q(c,b),i),T=$s.big.toBigInt(e.fee,b.decimals);return new bt.ExtrinsicConfig({module:de,func:t,getTx:X=>X.getUnsafeApi().tx[de][t]({dest:Ze(i,m,c),message:ko(i,h,A,T,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:o,sender:i,source:m,destination:c}=s,l="V4",h=m.chain,b=c.chain,A=rs(h,i,b),T=j(A),X=j(a),K=Y(Q(b,o),l),{fee:D}=c,ee=$s.big.toBigInt(e.fee,D.decimals),G=n>D.amount?n-(D.amount+ee):n;return new bt.ExtrinsicConfig({module:de,func:t,getTx:C=>C.getUnsafeApi().tx[de][t]({dest:Ze(l,h,b),message:To(l,T,K,G,ee,X)})})}})}},qn=()=>({limitedReserveTransferAssets:wi,limitedTeleportAssets:Ci,reserveTransferAssets:ki,transferAssets:Ti,transferAssetsUsingTypeAndThen:vi,send:Bi});var Po=require("@galacticcouncil/xc-core"),Eo=require("@galacticcouncil/common");var As=require("@galacticcouncil/descriptors"),vo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:As.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:As.XcmV3Junctions.X2([As.XcmV3Junction.Parachain(e.parachainId),s])}};var Bo="XTokens",Pi=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:o})=>{let i=o.chain,m=n.chain,c="V3",l=m.usesCexForwarding?rs(i,a,m):t,h=j(l),b=i.getAssetId(s),A=(0,Eo.encodeAssetId)(b),T="transfer";return new Po.ExtrinsicConfig({module:Bo,func:T,getTx:X=>X.getUnsafeApi().tx[Bo][T]({currency_id:A,amount:e,dest:vo(c,m,h),dest_weight_limit:{type:"Unlimited"}})})}}),jn=()=>({transfer:Pi});function u(){return{assetConversion:Va,assets:Ka,balances:Ga,ethereumXcm:Dn,polkadotXcm:qn,router:za,utility:Qa,xTokens:jn}}function rt(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}var yt=require("@galacticcouncil/xc-core");var zn={};Vt(zn,{AssethubClient:()=>fe,BaseClient:()=>Pe,HydrationClient:()=>je});var Fo=require("@galacticcouncil/common"),Js=require("@galacticcouncil/descriptors"),Pe=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:o}=n;return BigInt(a)-BigInt(o)}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 o=(0,Fo.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Js.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var cs=require("@galacticcouncil/descriptors"),Xo=require("@galacticcouncil/common"),Qs=require("@polkadot-api/substrate-bindings"),Io=require("@polkadot-api/utils");var fe=class extends Pe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=(0,Xo.encodeLocation)(n);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.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,Io.toHex)((0,Qs.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=Qs.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=cs.XcmVersionedLocation.V5({parents:1,interior:cs.XcmV5Junctions.X1(cs.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 o=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var Ro=require("@galacticcouncil/descriptors");var je=class extends Pe{constructor(e){super(e,Ro.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:o}=n;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}};function Ei(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=yt.Wormhole.fromChain(n),i=yt.Wormhole.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:yt.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Fi(){return{TokenRelayer:Ei}}function Xi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=yt.Snowbridge.fromChain(a),m=new Pe(o),c=new fe(t.hub),l=Kn(e,o),[h,b]=await Promise.all([m.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,o.parachainId)]),A=b+ns(h,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:yt.Abi.Snowbridge,address:i.getGateway(),args:[T,o.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new fe(t.hub),i=bo(e,a),m=Kn(e,a),[c,l,h,b,A]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,no),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+ns(h,25n)+b+ns(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:A}}}})}}function Ii(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(po(e,a,o,i),i){let A=new Pe(o),T=new Pe(i),X=Nn(e,o),K=xo(e,i,o),[D,ee]=await Promise.all([A.calculateDestinationFee(X,e),T.calculateDestinationFee(K,e)]),G=ee+D,C=ns(G,20n),$e=C-G;return{amount:C,breakdown:{reserveFee:ee,destinationFee:D,margin:$e}}}let m=new Pe(o),c=yo(e,o),l=await m.calculateDestinationFee(c,e),h=ns(l,20n),b=h-l;return{amount:h,breakdown:{totalFee:l,margin:b}}}})}}function w(){return{XcmPaymentApi:Ii,Snowbridge:Xi,Wormhole:Fi}}var Ri="0";function _i(){return{build:async({address:t,chain:e})=>{let n=await new je(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Ri,o=e.findAssetById(a);return o?o.asset:$}}}var Si=()=>({accountCurrencyMap:_i});function ws(){return{multiTransactionPayment:Si}}var pe=require("@galacticcouncil/xc-core"),ce=require("@solana/spl-token"),ze=require("@solana/web3.js"),$n=require("@wormhole-foundation/sdk-connect"),xt=require("@wormhole-foundation/sdk-solana-tokenbridge"),Di=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=pe.Wormhole.fromChain(m),h=pe.Wormhole.fromChain(t.moonchain),b=pe.Precompile.Bridge,A=await pe.mrl.createPayload(i.chain,s),T=new ze.PublicKey(o),X=new $n.UniversalAddress(b),K=h.getWormholeId(),D=T,ee=0,G=ze.Keypair.generate(),C=ze.Keypair.generate(),$e=await(0,ce.getMinimumBalanceForRentExemptAccount)(c.connection),Pt=ze.SystemProgram.createAccount({fromPubkey:D,newAccountPubkey:C.publicKey,lamports:$e,space:ce.ACCOUNT_SIZE,programId:ce.TOKEN_PROGRAM_ID}),et=ze.SystemProgram.transfer({fromPubkey:D,lamports:n,toPubkey:C.publicKey}),ct=(0,ce.createInitializeAccountInstruction)(C.publicKey,ce.NATIVE_MINT,D),tt=(0,xt.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),C.publicKey,D,n),mt=(0,xt.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,G.publicKey,C.publicKey,ce.NATIVE_MINT,ee,n,X.toUint8Array(),K,A.toU8a()),ys=(0,ce.createCloseAccountInstruction)(C.publicKey,D,D);return new pe.ProgramConfig({instructions:[Pt,et,ct,tt,mt,ys],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt($e)})}})}),Li=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,l=c,h=pe.Wormhole.fromChain(c),b=pe.Wormhole.fromChain(t.moonchain),A=pe.Precompile.Bridge,T=await pe.mrl.createPayload(m.chain,s),X=new ze.PublicKey(i),K=o.chain.getAssetId(a),D=new ze.PublicKey(K),ee=await(0,ce.getAssociatedTokenAddress)(D,X),G=new $n.UniversalAddress(A),C=b.getWormholeId();if(await(0,xt.getWrappedMeta)(l.connection,h.getTokenBridge(),D).catch(mt=>null).then(mt=>mt!=null))throw new Error("Wrapped assets not supported yet");let Pt=0,et=ze.Keypair.generate(),ct=(0,xt.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),ee,X,n),tt=(0,xt.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,et.publicKey,ee,D,Pt,n,G.toUint8Array(),C,T.toU8a());return new pe.ProgramConfig({instructions:[ct,tt],signers:[et],func:"TransferWithPayload",module:"TokenBridge"})}})}),_o=()=>({transferNativeWithPayload:Di,transferTokenWithPayload:Li});function So(){return{TokenBridge:_o}}function Cs(){return{Wormhole:So}}var it=require("@galacticcouncil/xc-core"),Do=require("@mysten/sui/transactions"),Ys=require("@mysten/sui/utils"),Lo=require("@wormhole-foundation/sdk-connect"),ks=require("@wormhole-foundation/sdk-sui"),Hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=it.Wormhole.fromChain(m),h=it.Wormhole.fromChain(t.moonchain),b=0,A=it.Precompile.Bridge,T=await it.mrl.createPayload(i.chain,s),X=new Lo.UniversalAddress(A),K=h.getWormholeId(),D=Ys.SUI_TYPE_ARG,[ee,G]=await Promise.all([(0,ks.getPackageId)(c.client,l.coreBridge),(0,ks.getPackageId)(c.client,l.tokenBridge)]),C=new Do.Transaction,[$e]=C.splitCoins(C.gas,[C.pure.u64(n)]),[Pt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[et]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[D]}),ct=!1,tt=await(async()=>{let Mt=await(0,ks.getOldestEmitterCapObjectId)(c.client,ee,o);if(Mt!==null)return C.object(Mt);{let[Ps]=C.moveCall({target:`${ee}::emitter::new`,arguments:[C.object(l.coreBridge)]});return ct=!0,Ps}})(),[mt,ys]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[tt,et,$e,C.pure.u16(K),C.pure.vector("u8",X.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[D]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[ys],typeArguments:[D]});let[Bn]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),mt],typeArguments:[D]});return C.moveCall({target:`${ee}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),Pt,Bn,C.object(Ys.SUI_CLOCK_OBJECT_ID)]}),ct&&C.transferObjects([tt],C.pure.address(o)),new it.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ho=()=>({transferNativeWithPayload:Hi});function Wo(){return{TokenBridge:Ho}}function Jn(){return{Wormhole:Wo}}var Yn={};Vt(Yn,{Tag:()=>gt});var gt=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(gt||{});var Zn=require("@galacticcouncil/xc-core");function ms(t,e){return new Zn.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:S().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}function me(t,e){return new Zn.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:H}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Wi=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),destinationFee:{asset:H,balance:r().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),ms(ye,ne),ms(Qe,Te),ms(x,ke),ms(p,Ce),ms(Je,we)],Mi=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),fee:{asset:H,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:H,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:H}},contract:S().Snowbridge().sendToken(),tags:["Snowbridge"]}),me(Xe,Xe),me(Re,Re),me(_e,_e),me(Me,Me),me(Ue,Ue),me(Ke,Ke),me(Le,Le),me(Se,Se),me(He,He),me(Ve,Ve),me(Oe,Oe),me(Ge,Ge),me(x,Ft),me(p,Et)],ff=[new Dt.AssetRoute({source:{asset:H,balance:r().evm().native(),destinationFee:{asset:H,balance:r().evm().erc20()}},destination:{chain:E,asset:te,fee:{amount:0,asset:te}},contract:S().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Dt.AssetRoute({source:{asset:ye,balance:r().evm().erc20(),fee:{asset:H,balance:r().evm().native()},destinationFee:{asset:ye,balance:r().evm().erc20()}},destination:{chain:E,asset:ne,fee:{amount:0,asset:ne}},contract:S().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Mo=new Dt.ChainRoutes({chain:_,routes:[...Wi,...Mi]});var Vo=[Mo];var At=require("@galacticcouncil/xc-core");var Zs=require("@galacticcouncil/xc-core");var Lt=0,Vi=t=>{let{source:e}=t;return!!e.feeSwap},Ui=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Uo=u().assetConversion().swapTokensForExactTokens({slippage:30});function Ki(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:rt(Ui,Uo).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function en(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:rt(Vi,Uo).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ht(t,e,s){return new Zs.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function tn(t){return Ki(t,d,.02)}var Oi=[new At.AssetRoute({source:{asset:g,balance:r().substrate().system().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().system().account()},min:ft().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new At.AssetRoute({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ht(p,d,.02),Ht(x,d,.02),tn(st)],Ni=[new At.AssetRoute({source:{asset:F,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:nt,asset:F,fee:{amount:.001,asset:F}},extrinsic:u().polkadotXcm().transferAssets()})],Gi=[Ht(p,E,.25),Ht(x,E,.25)],qi=[Ht(p,W,.03),Ht(x,W,.03)],ji=[new At.AssetRoute({source:{asset:N,balance:r().substrate().foreignAssets().account(),fee:{asset:g,balance:r().substrate().system().account(),extra:Lt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Ko=new At.ChainRoutes({chain:ut,routes:[en(p,d,.02),en(x,d,.02),en(g,d,.001)]}),Oo=new At.ChainRoutes({chain:k,routes:[...Oi,...Ni,...Gi,...qi,...ji]});var Ee=require("@galacticcouncil/xc-core");var zi=[new Ee.AssetRoute({source:{asset:L,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ee.AssetRoute({source:{asset:I,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:v,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:R,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:U,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:J,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:J,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:J}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:p,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:x,balance:r().substrate().assets().account(),fee:{asset:L,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],No=new Ee.ChainRoutes({chain:se,routes:[...zi]});var he=require("@galacticcouncil/xc-core");var $i=[new he.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:I,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:U,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:U,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:J,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new he.AssetRoute({source:{asset:L,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:L,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:se}),asset:L}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:v,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:R,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ji=[new he.AssetRoute({source:{asset:p,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:I,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Go=new he.ChainRoutes({chain:W,routes:[...$i,...Ji]});var Ae=require("@galacticcouncil/xc-core");var Qi="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Qi?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),z=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:B()});var wt=require("@galacticcouncil/xc-core");var Yi=.9,Zi=1,ec=1,sn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},nn=u().router().buy({slippage:30});function O(t,e,s){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function us(t,e,s){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Ct(t,e){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function an(t){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function tc(t,e,s="LocalReserve"){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:ec,asset:v}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function kt(t){return tc(t,E,"DestinationReserve")}function qo(t,e,s,n,a,o){return new wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:rt(sn,nn).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:Yi})]),transact:{chain:E,fee:{amount:Zi,asset:v,balance:B()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function on(t,e,s){return qo(t,e,s,0,S().Batch().batchAll([S().Erc20().approve(n=>n.getTokenBridge()),S().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Tt(t,e,s){return qo(t,e,s,w().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 wt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:s,asset:e,fee:{amount:w().Snowbridge().calculateOutboundFee({hub:k}),asset:g}},extrinsic:rt(sn,nn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var sc=[Ct(g,k),Ct(F,k),Ct(p,k),Ct(x,k),an(st)],nc=[O(L,se),O(I,se,W),O(v,se,E),new Ae.AssetRoute({source:{asset:R,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:M,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(U,se,W),O(J,se,W),O(p,se,k),O(x,se,k)],ac=[O(I,W),O(U,W),O(J,W),O(L,W,se),O(v,W,E),new Ae.AssetRoute({source:{asset:R,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(p,W,k),O(x,W,k),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],oc=[us(R,ve,62e-8),us(M,ve,.0019213457),us($,ve,.5),us(p,ve,.3),us(x,ve,.3),new Ae.AssetRoute({source:{asset:U,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:U,fee:{amount:.01,asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:g,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:g,fee:{amount:.05,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],rc=[O($,E),O(v,E),O(p,E,k),O(x,E,k),kt(ne),kt(we),kt(ke),kt(Ce),kt(Te),kt(te),kt(q)],ic=[new Ae.AssetRoute({source:{asset:N,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:lt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],cc=[O(Ne,Jt)],mc=[new Ae.AssetRoute({source:{asset:be,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Nt,asset:be,fee:{amount:.04,asset:be}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],uc=[O(De,qt)],lc=[new Ae.AssetRoute({source:{asset:xe,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Yt,asset:xe,fee:{amount:.02,asset:xe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],dc=[new Ae.AssetRoute({source:{asset:ge,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:$t,asset:ge,fee:{amount:1.1,asset:ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],fc=[O(We,jt)],pc=[O(Ie,Kt)],hc=[Tt(ne,ye,_),Tt(te,H,_),Tt(Te,Qe,_),Tt(Ce,p,_),Tt(ke,x,_),on(we,Je,_)],bc=[ae(H,H,_),ae(Xe,Xe,_),ae(Re,Re,_),ae(_e,_e,_),ae(Me,Me,_),ae(Ue,Ue,_),ae(Ke,Ke,_),ae(Oe,Oe,_),ae(Le,Le,_),ae(Se,Se,_),ae(He,He,_),ae(Ve,Ve,_),ae(Ge,Ge,_),ae(Ft,x,_),ae(Et,p,_)],yc=[Tt(q,q,dt),on(oe,oe,dt),on(re,re,dt)],xc=[Tt(ie,ie,Zt)],gc=[Ct(g,ut),Ct(p,ut),Ct(x,ut)],jo=new Ae.ChainRoutes({chain:d,routes:[...pc,...sc,...nc,...ac,...gc,...mc,...bc,...hc,...oc,...uc,...lc,...rc,...ic,...fc,...dc,...yc,...xc,...cc]});var Wt=require("@galacticcouncil/xc-core");var ea=()=>r().substrate().tokens().accounts();function rn(t,e){return new Wt.AssetRoute({source:{asset:t,balance:ea(),fee:{asset:M,balance:ea()},destinationFee:{balance:ea()}},destination:{chain:d,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var Ac=[new Wt.AssetRoute({source:{asset:M,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Wt.AssetRoute({source:{asset:R,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Wt.AssetRoute({source:{asset:$,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:$,fee:{amount:.5,asset:$}},extrinsic:u().xTokens().transfer()}),rn(U,W),rn(p,k),rn(x,k),rn(g,k)],zo=new Wt.ChainRoutes({chain:ve,routes:[...Ac]});var Bt=require("@galacticcouncil/xc-core");var ta=require("@galacticcouncil/xc-core");function wc(t,e,s){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function Cc(t,e,s){return new ta.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:v,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:S().PolkadotXcm().transferAssetsToPara32()})}function vt(t,e){return wc(t,d,e)}function cn(t,e){return Cc(t,d,e)}var kc=[new Bt.AssetRoute({source:{asset:v,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:S().PolkadotXcm().transferAssetsToPara32()}),cn($,.6),cn(p,.3),cn(x,.3),vt(ne,.004),vt(we,.004),vt(ke,.004),vt(Ce,.004),vt(Te,1e-7),vt(te,2e-6),vt(q,2e-5)],Tc=[new Bt.AssetRoute({source:{asset:p,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:p,fee:{amount:.18,asset:p}},contract:S().PolkadotXcm().transferAssetsToPara32()}),new Bt.AssetRoute({source:{asset:x,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:x,fee:{amount:.18,asset:x}},contract:S().PolkadotXcm().transferAssetsToPara32()})],Ap=[new Bt.AssetRoute({source:{asset:te,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:te,balance:r().evm().erc20()}},destination:{chain:_,asset:H,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Bt.AssetRoute({source:{asset:ne,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{asset:ne,balance:r().evm().erc20()}},destination:{chain:_,asset:ye,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:ye}},contract:S().Batch().batchAll([S().Erc20().approve(t=>t.getTokenRelayer()),S().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],$o=new Bt.ChainRoutes({chain:E,routes:[...kc,...Tc]});var Ts=require("@galacticcouncil/xc-core");var vc=[new Ts.AssetRoute({source:{asset:N,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:N,fee:{amount:.01,asset:N}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Bc=[new Ts.AssetRoute({source:{asset:N,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:N,fee:{amount:.1,asset:N}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Jo=new Ts.ChainRoutes({chain:lt,routes:[...vc,...Bc]});var mn=require("@galacticcouncil/xc-core");var Pc=[new mn.AssetRoute({source:{asset:Ne,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ne,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Qo=new mn.ChainRoutes({chain:Jt,routes:[...Pc]});var un=require("@galacticcouncil/xc-core");var Ec=[new un.AssetRoute({source:{asset:be,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:be,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:be}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],Yo=new un.ChainRoutes({chain:Nt,routes:[...Ec]});var ln=require("@galacticcouncil/xc-core");var Fc=[new ln.AssetRoute({source:{asset:ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.2,asset:ge}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],Zo=new ln.ChainRoutes({chain:$t,routes:[...Fc]});var dn=require("@galacticcouncil/xc-core");var Xc=[new dn.AssetRoute({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ie,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],er=new dn.ChainRoutes({chain:Kt,routes:[...Xc]});var fn=require("@galacticcouncil/xc-core");var Ic=[new fn.AssetRoute({source:{asset:De,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:De,fee:{amount:2,asset:De}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],tr=new fn.ChainRoutes({chain:qt,routes:[...Ic]});var pn=require("@galacticcouncil/xc-core");var Rc=[new pn.AssetRoute({source:{asset:xe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:xe,fee:{amount:.03,asset:xe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],sr=new pn.ChainRoutes({chain:Yt,routes:[...Rc]});var hn=require("@galacticcouncil/xc-core");var _c=[new hn.AssetRoute({source:{asset:We,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:.205,asset:We}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],nr=new hn.ChainRoutes({chain:jt,routes:[..._c]});var ar=[er,Oo,Ko,No,Go,jo,zo,$o,Jo,nr,Qo,Yo,Zo,tr,sr];var ls=require("@galacticcouncil/xc-core");var Sc=[new ls.AssetRoute({source:{asset:q,balance:r().solana().native(),destinationFee:{asset:q,balance:r().solana().native()}},destination:{chain:d,asset:q,fee:{amount:0,asset:q}},program:Cs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ls.AssetRoute({source:{asset:oe,balance:r().solana().token(),fee:{asset:q,balance:r().solana().native()},destinationFee:{asset:oe,balance:r().solana().token()}},destination:{chain:d,asset:oe,fee:{amount:0,asset:oe}},program:Cs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ls.AssetRoute({source:{asset:re,balance:r().solana().token(),fee:{asset:q,balance:r().solana().native()},destinationFee:{asset:re,balance:r().solana().token()}},destination:{chain:d,asset:re,fee:{amount:0,asset:re}},program:Cs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],or=new ls.ChainRoutes({chain:dt,routes:[...Sc]});var rr=[or];var bn=require("@galacticcouncil/xc-core");var Dc=[new bn.AssetRoute({source:{asset:ie,balance:r().sui().native(),destinationFee:{asset:ie,balance:r().sui().native()}},destination:{chain:d,asset:ie,fee:{amount:0,asset:ie}},move:Jn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],ir=new bn.ChainRoutes({chain:Zt,routes:[...Dc]});var cr=[ir];var vs=require("@galacticcouncil/xc-core");var Lc=require("@galacticcouncil/xc-core");var sa=.0015;var Hc=new vs.AssetRoute({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:sa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Wc=new vs.AssetRoute({source:{asset:F,balance:r().substrate().system().account(),fee:{asset:F,balance:r().substrate().system().account(),extra:sa},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:es,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),mr=new vs.ChainRoutes({chain:nt,routes:[Wc,Hc]});var Bs=require("@galacticcouncil/xc-core");var Mc="0",ds=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Mc?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),na=()=>({asset:ws().multiTransactionPayment().accountCurrencyMap(),balance:ds()});var Vc=[new Bs.AssetRoute({source:{asset:p,balance:ds(),fee:na(),destinationFee:{balance:ds()}},destination:{chain:nt,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Uc=[new Bs.AssetRoute({source:{asset:F,balance:ds(),fee:na(),destinationFee:{balance:ds()}},destination:{chain:nt,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],ur=new Bs.ChainRoutes({chain:es,routes:[...Vc,...Uc]});var lr=[mr,ur];var Kc=[...Vo,...ar,...rr,...cr,...lr],dr=new Map(Kc.map(t=>[t.chain.key,t]));var aa=require("@galacticcouncil/xc-core");var fs=require("@galacticcouncil/xc-core");var yn=class extends fs.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new fs.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},xn=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:o,destinationFeeBalance:i}=n,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});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 fe(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};var ps=require("@galacticcouncil/xc-core");var gn=class extends ps.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new fe(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain;if(await new fe(o).getSystemAccountBalance(n)===0n)throw new ps.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},An=class extends ps.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,o=a.chain;if(await new fe(o).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 Oc=12,Nc=1,Gc=18,wn=class extends hs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new je(n),o=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain,i=new je(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||Nc,h=c.decimals||Oc,b=l*Math.pow(10,h),A=await i.getAssetBalance(n,m);if(BigInt(b*1.1)>A)throw new hs.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Cn=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,o=a.chain,i=new je(o),m=o.getBalanceAssetId(v),c=o.getAssetDecimals(v)||Gc,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new hs.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Fe={isAny:()=>!0,isHydration:t=>t instanceof aa.Parachain&&t.parachainId===2034,isHub:t=>t instanceof aa.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},fr=[new yn(Fe.isAny,Fe.isAny),new xn(Fe.isAny,Fe.isAny),new gn(Fe.isAny,Fe.isHub),new An(Fe.isHub,Fe.isAny),new wn(Fe.isAny,Fe.isHydration),new Cn(Fe.isHydration,Fe.isAny)];var ca={};Vt(ca,{AssethubDex:()=>ia,HydrationDex:()=>oa});var bs=require("@galacticcouncil/sdk-next"),hr=require("@galacticcouncil/common");var pr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:kn}=bs.pool,{TradeRouteBuilder:qc,TradeRouter:jc}=bs.sor,{TxBuilderFactory:zc}=bs.tx,oa=class{chain;client;poolCtx;txBuilder;getCtx=pr(async e=>{console.log("init swap router",e,"\u2705");let s=new jc(this.poolCtx);return s.withFilter({useOnly:[kn.Aave,kn.Omni,kn.Stable,kn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new je(this.chain),this.txBuilder=new zc(s.client,s.evm)}async getCalldata(e,s,n,a,o=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),h=await l.getMostLiquidRoute(i,m),b=await l.getBuy(i,m,c,h);return(await(await this.txBuilder.trade(b).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(o,i),h=await c.getBuy(o,i,m,l);return{amount:h.amountIn,route:qc.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 o=a*s,i=Math.pow(10,hr.RUNTIME_DECIMALS);return o/BigInt(i)}};var ra=require("@galacticcouncil/common"),ia=class{chain;client;constructor(e){this.chain=e,this.client=new fe(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),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,ra.encodeLocation)(a),(0,ra.encodeLocation)(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var gr=require("@galacticcouncil/xc-core");var br=require("@galacticcouncil/xc-core");function Tn(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new br.Asset({key:[a,s,e].join("_"),originSymbol:n})}function yr(t){let{decimals:e,id:s}=t;return{asset:Tn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function xr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:Tn(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 vn=class extends gr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=Tn(o),m=yr(o),c=xr(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,tn(i)),this.updateChainRoute(s,an(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Ro=Object.defineProperty;var Nt=(t,e)=>{for(var s in e)Ro(t,s,{get:e[s],enumerable:!0})};import{Asset as y}from"@galacticcouncil/xc-core";var ke=new y({key:"aave",originSymbol:"AAVE"}),Te=new y({key:"ajun",originSymbol:"AJUN"}),S=new y({key:"astr",originSymbol:"ASTR"}),F=new y({key:"bnc",originSymbol:"BNC"}),Ps=new y({key:"bsx",originSymbol:"BSX"}),ve=new y({key:"cfg_new",originSymbol:"CFG"}),ue=new y({key:"cru",originSymbol:"CRU"}),le=new y({key:"dai",originSymbol:"DAI"}),ee=new y({...le,key:"dai_mwh"}),x=new y({key:"dot",originSymbol:"DOT"}),D=new y({key:"eth",originSymbol:"ETH"}),Be=new y({key:"ena",originSymbol:"ENA"}),T=new y({key:"glmr",originSymbol:"GLMR"}),q=new y({key:"hdx",originSymbol:"HDX"}),X=new y({key:"ibtc",originSymbol:"IBTC"}),H=new y({key:"intr",originSymbol:"INTR"}),se=new y({key:"jitoSol",originSymbol:"jitoSOL"}),P=new y({key:"ksm",originSymbol:"KSM"}),Pe=new y({key:"ldo",originSymbol:"LDO"}),Ee=new y({key:"laos",originSymbol:"LAOS"}),Fe=new y({key:"lbtc",originSymbol:"LBTC"}),de=new y({key:"ewt",originSymbol:"EWT"}),Xe=new y({key:"link",originSymbol:"LINK"}),U=new y({key:"myth",originSymbol:"MYTH"}),Ie=new y({key:"neuro",originSymbol:"NEURO"}),fe=new y({key:"pen",originSymbol:"PEN"}),Re=new y({key:"paxg",originSymbol:"PAXG"}),ne=new y({key:"prime",originSymbol:"PRIME"}),_e=new y({key:"sky",originSymbol:"SKY"}),O=new y({key:"sol",originSymbol:"SOL"}),ae=new y({key:"sui",originSymbol:"SUI"}),Se=new y({key:"susde",originSymbol:"sUSDe"}),Ke=new y({key:"susds",originSymbol:"sUSDS"}),he=new y({...Ke,key:"susds_mwh"}),De=new y({key:"tbtc",originSymbol:"tBTC"}),Le=new y({key:"trac",originSymbol:"TRAC"}),He=new y({key:"unq",originSymbol:"UNQ"}),f=new y({key:"usdt",originSymbol:"USDT"}),be=new y({...f,key:"usdt_mwh"}),pt=new y({...f,key:"usdt_eth"}),b=new y({key:"usdc",originSymbol:"USDC"}),ye=new y({...b,key:"usdc_mwh"}),ht=new y({...b,key:"usdc_eth"}),j=new y({key:"vastr",originSymbol:"vASTR"}),W=new y({key:"vdot",originSymbol:"vDOT"}),vt=new y({key:"weth",originSymbol:"WETH"}),Y=new y({...vt,key:"weth_mwh"}),Oe=new y({key:"wbtc",originSymbol:"WBTC"}),xe=new y({...Oe,key:"wbtc_mwh"}),We=new y({key:"wsteth",originSymbol:"wstETH"}),ze=new y({key:"wud",originSymbol:"WUD"}),_o=[ke,Te,S,Ps,ve,ue,F,le,ee,x,Be,D,T,q,X,H,P,Pe,Ee,Fe,de,se,Xe,U,Ie,Re,fe,ne,_e,O,ae,Se,Ke,he,Le,De,He,b,ye,ht,f,be,pt,j,W,Oe,xe,vt,Y,We,ze],So=new Map(_o.map(t=>[t.key,t]));import{ChainEcosystem as Do,EvmChain as Lo}from"@galacticcouncil/xc-core";import{mainnet as Ho}from"viem/chains";var I=new Lo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ke,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ve,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:vt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:le,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Se,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ke,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:De,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Oe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Fe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Pe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Re,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:_e,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Le,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:We,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Do.Ethereum,evmChain:Ho,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 cn=[I];import{ChainEcosystem as Wo,Parachain as Mo}from"@galacticcouncil/xc-core";var Bt=new Mo({assetsData:[{asset:Te,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Wo.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 Vo,Parachain as mn}from"@galacticcouncil/xc-core";var un={assetsData:[{asset:x,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:ze,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:Vo.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 mn({...un,key:"assethub",name:"AssetHub Polkadot"}),st=new mn({...un,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Uo,Parachain as Ko}from"@galacticcouncil/xc-core";var Z=new Ko({assetsData:[{asset:S,xcmLocation:{parents:0,interior:"Here"}},{asset:x,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:F,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:X,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,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:j,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Uo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Oo,Parachain as No}from"@galacticcouncil/xc-core";var Go=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new No({assetsData:[{asset:F,id:{Native:F.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:j,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset: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:S,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:X,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Oo.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Go});import{ChainEcosystem as qo,Parachain as jo,XcmVersion as zo}from"@galacticcouncil/xc-core";var Pt=new jo({assetsData:[{asset:ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qo.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:zo.v3});import{ChainEcosystem as Qo,EvmParachain as Yo}from"@galacticcouncil/xc-core";import{defineChain as Zo}from"viem";import{getSs58AddressInfo as $o}from"@polkadot-api/substrate-bindings";var Jo="ETH\0",Zt=class{async toH160(e){let s=$o(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Jo),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var er=new Zt,Es=["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"],tr=Zo({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Es,webSocket:Fs},default:{http:Es,webSocket:Fs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Yo({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:ke,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Te,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:ue,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,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:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:X,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,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:ne,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:de,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Pe,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:Ee,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:Re,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:Ie,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:_e,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:O,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:Se,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ke,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:he,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:De,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Le,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:He,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:ye,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ht,decimals:6,id: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:be,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:pt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:j,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:Oe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:xe,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:Y,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:We,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ze,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Qo.Polkadot,evmChain:tr,evmResolver:er,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Fs,rpcs:Es});import{ChainEcosystem as sr,Parachain as nr,XcmVersion as ar}from"@galacticcouncil/xc-core";var ge=new nr({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:X,decimals:8,id:{Token:X.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset: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:q,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:sr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",usesLegacyEnhancer:!0,xcmVersion:ar.v3});import{ChainEcosystem as or,Parachain as rr}from"@galacticcouncil/xc-core";var Et=new rr({assetsData:[{asset:Ee,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:or.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 ir,EvmParachain as cr}from"@galacticcouncil/xc-core";import{defineChain as mr}from"viem";var ur=mr({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 cr({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:O,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:ne,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:he,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:ye,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:be,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:xe,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:x,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: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:ir.Polkadot,evmChain:ur,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 lr,Parachain as dr}from"@galacticcouncil/xc-core";var nt=new dr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:lr.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 fr,Parachain as pr}from"@galacticcouncil/xc-core";var Ft=new pr({assetsData:[{asset:Ie,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:fr.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 hr,Parachain as br,XcmVersion as yr}from"@galacticcouncil/xc-core";var Xt=new br({assetsData:[{asset:fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:hr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:yr.v3});import{ChainEcosystem as xr,Parachain as gr}from"@galacticcouncil/xc-core";var Ar={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:xr.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 gr({...Ar,key:"polkadot"});import{ChainEcosystem as wr,Parachain as Cr}from"@galacticcouncil/xc-core";var It=new Cr({assetsData:[{asset:He,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:wr.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 kr,Parachain as Tr,XcmVersion as vr}from"@galacticcouncil/xc-core";var Rt=new Tr({assetsData:[{asset:de,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:kr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesLegacyEnhancer:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:vr.v3});var dn=[Bt,C,st,Z,L,Pt,d,Et,Ft,ge,B,nt,Xt,ln,It,Rt];import{ChainEcosystem as Br,SolanaChain as Pr}from"@galacticcouncil/xc-core";var at=new Pr({id:101,key:"solana",name:"Solana",assetsData:[{asset:O,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ne,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],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 fn=[at];import{ChainEcosystem as Er,SuiChain as Fr}from"@galacticcouncil/xc-core";var _t=new Fr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Er.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var pn=[_t];import{ChainEcosystem as Xr,Parachain as Ir}from"@galacticcouncil/xc-core";var $e=new Ir({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:Xr.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 Rr,Parachain as _r}from"@galacticcouncil/xc-core";var St=new _r({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:Rr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var hn=[$e,St];var Sr=[...cn,...dn,...fn,...pn,...hn],Dr=new Map(Sr.map(t=>[t.key,t]));import{AssetRoute as is,ChainRoutes as cm}from"@galacticcouncil/xc-core";var Wa={};Nt(Wa,{AssetMinBuilder:()=>ot,BalanceBuilder:()=>r,ContractBuilder:()=>R,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>Ye,FeeAmountBuilder:()=>A,FeeAssetBuilder:()=>$t,MoveBuilder:()=>Ys,ProgramBuilder:()=>Jt,XcmTransferType:()=>re,XcmVersion:()=>Qe});import{SubstrateQueryConfig as Xs}from"@galacticcouncil/xc-core";function ot(){return{assetRegistry:Lr,assets:Hr}}function Lr(){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 Hr(){return{asset:()=>({build:({asset:t})=>new Xs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Wr,ContractConfig as bn}from"@galacticcouncil/xc-core";function yn(){return{erc20:Vr,native:Mr}}function Mr(){return{build:({address:t})=>new bn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Vr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new bn({abi:Wr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as Gt}from"@galacticcouncil/xc-core";import{encodeAssetId as Is,encodeLocation as Ur}from"@galacticcouncil/common";function xn(){return{assets:Kr,system:Nr,tokens:Gr,ormlTokens:qr,foreignAssets:Or}}function Kr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Or(){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 o=Ur(a);return new Gt({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Nr(){return{account:()=>({build:({address:t})=>new Gt({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 Gr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as gn}from"@galacticcouncil/xc-core";function An(){return{native:jr,token:zr}}function jr(){return{build:({address:t})=>new gn({address:t,func:"rpc_getBalance",module:"Native"})}}function zr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new gn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as $r}from"@galacticcouncil/xc-core";function wn(){return{native:Jr}}function Jr(){return{build:({address:t})=>new $r({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:yn,substrate:xn,solana:An,sui:wn}}import{Abi as Cn,ContractConfig as Qr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Zr}from"viem";var ei=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],o=s.map(i=>Zr({abi:Cn[i.module],functionName:i.func,args:i.args}));return new Qr({abi:Cn.Batch,address:Yr.Batch,args:[n,a,o,[]],func:"batchAll",module:"Batch"})}}),kn=()=>({batchAll:ei});import{Abi as ti,ContractConfig as si,Wormhole as ni}from"@galacticcouncil/xc-core";function Dt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Je(t){return typeof t=="object"?Object.values(t)[0]:t}function Tn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=ni.fromChain(i),c=i.getAssetId(n);return new si({abi:ti.Erc20,address:Je(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{addr as ai,Abi as vn,ContractConfig as Bn,Precompile as Pn}from"@galacticcouncil/xc-core";import{big as oi}from"@galacticcouncil/common";var{Ss58Addr:En}=ai;function ri(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 Rs(t,e){let s=t.getAssetId(e);return typeof s=="string"?ri(s):s}function Fn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rs(a.chain,s);return new Bn({abi:vn.PolkadotXcm,address:Pn.PolkadotXcm,args:[n.chain.parachainId,En.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rs(a.chain,s),i=Rs(a.chain,a.destinationFeeBalance),m=oi.toBigInt(n.fee.amount,n.fee.decimals);return new Bn({abi:vn.PolkadotXcm,address:Pn.PolkadotXcm,args:[n.chain.parachainId,En.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as ii,Abi as ci,ContractConfig as mi,Snowbridge as ui}from"@galacticcouncil/xc-core";var{Ss58Addr:li}=ii,di=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=ui.fromChain(i),l=i.getAssetId(n),p=Je(l),h=n.originSymbol==="ETH",g=o.feeBreakdown.bridgeFeeInDot,k=o.fee.amount;return new mi({abi:ci.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,li.getPubKey(e)],g,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),Xn=()=>({sendToken:di});import{mrl as Rn,Abi as es,ContractConfig as ts,Precompile as _n,Wormhole as rt}from"@galacticcouncil/xc-core";import{PublicKey as In}from"@solana/web3.js";import{getAssociatedTokenAddress as fi}from"@solana/spl-token";var pi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=rt.fromChain(o.chain),c=rt.fromChain(t.moonchain),l=_n.Bridge,p=o.chain.getAssetId(a),h=0,g=await Rn.createPayload(i.chain,s);return new ts({abi:es.TokenBridge,address:m.getTokenBridge(),args:[Je(p),n,c.getWormholeId(),c.normalizeAddress(l),h,g.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:o}=e,i=rt.fromChain(a.chain),m=rt.fromChain(t.moonchain),c=_n.Bridge,l=0,p=await Rn.createPayload(o.chain,s);return new ts({abi:es.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),bi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=rt.fromChain(m),p=rt.fromChain(c),h=e;if(c.isSolana()){let M=c.getAssetId(n);h=(await fi(new In(M),new In(e))).toBase58()}let g=m.getAssetId(n),k=0,E=0;return new ts({abi:es.TokenBridge,address:l.getTokenBridge(),args:[Je(g),s,p.getWormholeId(),p.normalizeAddress(h),k,E],func:"transferTokens",module:"TokenBridge"})}}),yi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,o=rt.fromChain(n.chain),i=rt.fromChain(a.chain),m=0,c=0;return new ts({abi:es.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Sn=()=>({transferTokens:bi,transferTokensWithPayload:pi,wrapAndTransferETH:yi,wrapAndTransferETHWithPayload:hi});import{Abi as xi,ContractConfig as gi,Wormhole as Dn}from"@galacticcouncil/xc-core";var Ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=Dn.fromChain(m),p=Dn.fromChain(c),h=0,g=0,k=m.getAssetId(n);return new gi({abi:xi.TokenRelayer,address:l.getTokenRelayer(),args:[Je(k),s,h,p.getWormholeId(),p.normalizeAddress(e),g],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ln=()=>({transferTokensWithRelay:Ai});function Hn(){return{TokenBridge:Sn,TokenRelayer:Ln}}function R(){return{Batch:kn,Erc20:Tn,PolkadotXcm:Fn,Snowbridge:Xn,Wormhole:Hn}}import{ExtrinsicConfig as wi}from"@galacticcouncil/xc-core";var Wn="AssetConversion",Ci=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,o=n.destinationFeeSwap||n.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),h=i.amount+i.amount*BigInt(t.slippage)/100n,g=m.amount;return new wi({module:Wn,func:e,getTx:k=>k.getUnsafeApi().tx[Wn][e]({path:[l,p],amount_out:g,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Mn=()=>({swapTokensForExactTokens:Ci});import{hub as ki,MultiAddress as Ti}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as vi}from"@galacticcouncil/xc-core";var Bi="Assets",Pi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let o=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new vi({module:Bi,func:t,getTx:l=>l.getTypedApi(ki).tx.Assets.transfer({id:Number(c),target:Ti.Id(n),amount:m})})}}},Vn=()=>({transfer:Pi});import{ExtrinsicConfig as Ei}from"@galacticcouncil/xc-core";var Un="Balances",Fi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Ei({module:Un,func:e,getTx:n=>n.getUnsafeApi().tx[Un][e]({dest:s,keep_alive:t})})}},Kn=()=>({transferAll:Fi});import{hydration as Xi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ii}from"@galacticcouncil/xc-core";var Ri="Router",_i=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(o),p=c.getMetadataAssetId(i),h=i.amount,g=o.amount+o.amount*BigInt(t.slippage)/100n;return new Ii({module:Ri,func:"buy",getTx:k=>k.getTypedApi(Xi).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:h,max_amount_in:g,route:m})})}}),On=()=>({buy:_i});import{ExtrinsicConfig as Si}from"@galacticcouncil/xc-core";var Nn="Utility",Di=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Si({module:Nn,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Nn][e]({calls:o})}})}}},Gn=()=>({batchAll:Di});import{Abi as Li,ExtrinsicConfig as Hi}from"@galacticcouncil/xc-core";import{Binary as qn}from"polkadot-api";import{encodeFunctionData as Wi}from"viem";var Qe=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(Qe||{}),re=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(re||{});var jn="EthereumXcm",Mi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=Wi({abi:Li[n.module],functionName:n.func,args:n.args});return new Hi({module:jn,func:e,getTx:i=>i.getUnsafeApi().tx[jn][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:qn.fromHex(n.address)},value:[0n,0n,0n,0n],input:qn.fromHex(o),access_list:void 0}}})})}}},_s=()=>({transact:Mi});import{ExtrinsicConfig as At}from"@galacticcouncil/xc-core";import{big as js}from"@galacticcouncil/common";import{multiloc as ic,ChainEcosystem as Ns}from"@galacticcouncil/xc-core";import{Binary as cc}from"polkadot-api";import{XcmV3Junctions as pe,XcmV3Junction as zt,XcmV3JunctionNetworkId as da,XcmV3MultiassetFungibility as xt,XcmV4Instruction as J,XcmV4AssetAssetFilter as Wt,XcmV4AssetWildAsset as Mt,XcmV3WeightLimit as Gs,XcmV2MultiassetWildFungibility as mc,XcmV2OriginKind as uc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Vi}from"@galacticcouncil/descriptors";var ie=340282366920938463463374607431768211455n,bt="0x0000000000000000000000000000000000000000000000000000000000000000",Lt={parents:1,interior:Vi.Here()},zn=0,$n=1e3,Jn=1002,Qn=1,yt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var Yn="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as ec,XcmV3MultiassetFungibility as Ds,XcmV3WeightLimit as tc,XcmV4AssetAssetFilter as sc,XcmV4AssetWildAsset as nc,XcmV4Instruction as qt}from"@galacticcouncil/descriptors";import{Binary as ac}from"polkadot-api";import{acc as Ui}from"@galacticcouncil/common";import{XcmV3Junction as Zn}from"@galacticcouncil/descriptors";import{FixedSizeBinary as ea}from"polkadot-api";import{getSs58AddressInfo as Ki}from"@polkadot-api/substrate-bindings";import{toHex as Oi}from"@polkadot-api/utils";function N(t){if(t.length===42&&t.startsWith("0x"))return Zn.AccountKey20({key:ea.fromHex(t),network:void 0});let s=Ki(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Zn.AccountId32({id:ea.fromHex(Oi(s.publicKey)),network:void 0})}function Ht(t,e,s){return Ui.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as ta}from"@galacticcouncil/xc-core";function sa(t,e){let s=ta.findNestedKey(t,"GeneralIndex"),n=ta.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,o=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var as={};Nt(as,{ETHER_TOKEN_ADDRESS:()=>Ss,erc20Location:()=>qi,erc20LocationReanchored:()=>ji,ethereumLocation:()=>oa,parachainLocation:()=>Gi});import{XcmV3Junctions as ss,XcmV3Junction as ns,XcmV3JunctionNetworkId as Ni}from"@galacticcouncil/descriptors";import{Binary as na}from"polkadot-api";var Ss="0x0000000000000000000000000000000000000000",aa=t=>ns.GlobalConsensus(Ni.Ethereum({chain_id:BigInt(t)}));function oa(t){return{parents:2,interior:ss.X1(aa(t))}}function Gi(t){return{parents:1,interior:ss.X1(ns.Parachain(t))}}function qi(t,e){return e===Ss?oa(t):{parents:2,interior:ss.X2([aa(t),ns.AccountKey20({key:na.fromHex(e)})])}}function ji(t){return t===Ss?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ss.X1(ns.AccountKey20({key:na.fromHex(t)}))}}import{encodeLocation as ra}from"@galacticcouncil/common";import{multiloc as zi}from"@galacticcouncil/xc-core";function $(t,e){return $i(e)>=4?ra(t):Ji(t)}function $i(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Ji(t){return{type:"Concrete",value:ra(t)}}var Qi=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 Zi(t){if(t)return Yi(t)?Qi:zi.findParachain(t)}function ia(t,e,s,n){let a=e.getAssetXcmLocation(t),o=Zi(a),i=n?.parachainId??s.parachainId;if(o&&i!==o)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${n.name} (${n.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function Ls(t,e){let s="V4",n=$(z(e,t),s),a=ac.fromHex(bt);return[qt.ReserveAssetDeposited([{id:Lt,fun:Ds.Fungible(ie)},{id:n,fun:Ds.Fungible(ie)}]),qt.ClearOrigin(),qt.BuyExecution({fees:{id:Lt,fun:Ds.Fungible(ie)},weight_limit:tc.Unlimited()}),qt.DepositAsset({assets:sc.Wild(nc.AllCounted(2)),beneficiary:{parents:0,interior:ec.X1(N(yt))}}),qt.SetTopic(a)]}import{XcmV4Instruction as Hs,XcmV3MultiassetFungibility as Ws,XcmV3WeightLimit as oc}from"@galacticcouncil/descriptors";function ca(t,e){let s="V4",n=$(z(e,t),s),a=os("V4",N(Yn),N(yt),n,bt);return[Hs.WithdrawAsset([{id:Lt,fun:Ws.Fungible(ie)},{id:n,fun:Ws.Fungible(ie)}]),Hs.ClearOrigin(),Hs.BuyExecution({fees:{id:Lt,fun:Ws.Fungible(ie)},weight_limit:oc.Unlimited()}),...a.value]}import{XcmV3Junctions as Ms,XcmV3Junction as rc,XcmV3MultiassetFungibility as jt,XcmV3WeightLimit as Vs,XcmV4AssetAssetFilter as Us,XcmV4AssetWildAsset as Ks,XcmV4Instruction as Ae}from"@galacticcouncil/descriptors";import{Binary as ma}from"polkadot-api";function ua(t,e){let s="V4",n=$(z(e,t),s),a=ma.fromHex(bt);return[Ae.WithdrawAsset([{id:n,fun:jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:n,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositAsset({assets:Us.Wild(Ks.AllCounted(1)),beneficiary:{parents:0,interior:Ms.X1(N(yt))}}),Ae.SetTopic(a)]}function Os(t,e){let s="V4",n=$(z(e,t),s);return[Ae.BuyExecution({fees:{id:n,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositAsset({assets:Us.Wild(Ks.AllCounted(1)),beneficiary:{parents:0,interior:Ms.X1(N(yt))}})]}function la(t,e,s){let n="V4",a=$(z(e,t),n),o=ma.fromHex(bt),i=Os(t,s);return[Ae.WithdrawAsset([{id:a,fun:jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:a,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositReserveAsset({assets:Us.Wild(Ks.AllCounted(1)),dest:{parents:1,interior:Ms.X1(rc.Parachain(s.parachainId))},xcm:i}),Ae.SetTopic(o)]}var fa=[Ns.Polkadot,Ns.Kusama],lc={parents:1,interior:pe.X1(zt.Parachain(1e3))},dc=t=>t.parents===1&&t.interior==="Here",fc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:fa.includes(t.ecosystem)&&fa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,pa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},Ne=(t,e,s)=>{if(fc(e,s)){let a=s.ecosystem===Ns.Polkadot?da.Polkadot():da.Kusama();return{type:t,value:{parents:2,interior:pe.X2([zt.GlobalConsensus(a),zt.Parachain(s.parachainId)])}}}if(s.parachainId===zn)return{type:t,value:{parents:1,interior:pe.Here()}};let n=s.key==="ethereum"?$n:s.parachainId;return{type:t,value:{parents:1,interior:pe.X1(zt.Parachain(n))}}},gt=(t,e)=>({type:t,value:{parents:0,interior:pe.X1(e)}}),qs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:dc(s)?lc:s}}:{type:e},it=(t,e)=>({id:t,fun:xt.Fungible(e)}),ha=(t,e,s)=>({type:t,value:[J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(s)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var os=(t,e,s,n,a)=>{let o=cc.fromHex(a);return{type:t,value:[J.SetAppendix([J.DepositAsset({assets:Wt.Wild(Mt.All()),beneficiary:{parents:0,interior:pe.X1(s)}})]),J.InitiateReserveWithdraw({assets:Wt.Wild(Mt.AllOf({id:n,fun:mc.Fungible()})),reserve:as.ethereumLocation(Qn),xcm:[J.BuyExecution({fees:{id:pc(n),fun:xt.Fungible(1n)},weight_limit:Gs.Unlimited()}),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}}),J.SetTopic(o)]}),J.SetTopic(o)]}},pc=t=>{let e=ic.findNestedKey(t,"key");return e?{parents:0,interior:pe.X1(zt.AccountKey20({key:e.key}))}:{parents:0,interior:pe.Here()}},ba=(t,e,s,n,a,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(n)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(n)},weight_limit:Gs.Unlimited()}),J.Transact({origin_kind:uc.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:a}),J.RefundSurplus(),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]}),ya=(t,e,s,n,a,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(a)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(a)},weight_limit:Gs.Unlimited()}),J.TransferAsset({assets:[{id:s,fun:xt.Fungible(n)}],beneficiary:{parents:0,interior:pe.X1(o)}}),J.RefundSurplus(),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var ce="PolkadotXcm",hc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=$(z(i,n.fee),c),h=it(l,e),g=it(p,n.fee.amount),k="limited_reserve_transfer_assets";return new At({module:ce,func:k,getTx:E=>{let M=E.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):sa(l,p)?M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[g,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[h,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),bc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="limited_teleport_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),yc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="reserve_transfer_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0})})}}),xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="transfer_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gc=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let l="V4",p=m.chain,h=a.chain,g=a.fee.amount,k=a.fee;c&&(h=c.chain,g=js.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let E=N(i),M=c||h.usesCexForwarding?Ht(p,i,h):e,_=N(M),{transferType:Q}=t,K=$(z(p,s),l),w=$(z(p,k),l),Ue=it(K,n),ft=it(w,g),qe=s.isEqual(k),et=Ne(l,p,h),je={type:l,value:qe?[Ue]:[ft,Ue]},tt=qs(l,Q,K),Ot={type:l,value:qe?K:w},Bs=qs(l,Q,w),Tt;pa(K)&&a.chain.isEvmChain()?Tt=os(l,_,E,K,o):Tt=ha(l,_,je.value.length);let Yt="transfer_assets_using_type_and_then";return new At({module:ce,func:Yt,getTx:Io=>Io.getUnsafeApi().tx[ce][Yt]({dest:et,assets:je,assets_transfer_type:tt,remote_fees_id:Ot,fees_transfer_type:Bs,custom_xcm_on_dest:Tt,weight_limit:{type:"Unlimited"}})})}}),Ac=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,l=Ht(m,n,c),p=N(l),{fee:h}=o,g=$(z(c,h),i),k=js.toBigInt(e.fee,h.decimals);return new At({module:ce,func:t,getTx:E=>E.getUnsafeApi().tx[ce][t]({dest:Ne(i,m,c),message:ba(i,p,g,k,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:o,sender:i,source:m,destination:c}=s,l="V4",p=m.chain,h=c.chain,g=Ht(p,i,h),k=N(g),E=N(a),M=$(z(h,o),l),{fee:_}=c,Q=js.toBigInt(e.fee,_.decimals),K=n>_.amount?n-(_.amount+Q):n;return new At({module:ce,func:t,getTx:w=>w.getUnsafeApi().tx[ce][t]({dest:Ne(l,p,h),message:ya(l,k,M,K,Q,E)})})}})}},zs=()=>({limitedReserveTransferAssets:hc,limitedTeleportAssets:bc,reserveTransferAssets:yc,transferAssets:xc,transferAssetsUsingTypeAndThen:gc,send:Ac});import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";import{encodeAssetId as kc}from"@galacticcouncil/common";import{XcmV3Junctions as xa,XcmV3Junction as wc}from"@galacticcouncil/descriptors";var ga=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:xa.X1(s)}}:{type:t,value:{parents:1,interior:xa.X2([wc.Parachain(e.parachainId),s])}};var Aa="XTokens",Tc=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:o})=>{let i=o.chain,m=n.chain,c="V3",l=m.usesCexForwarding?Ht(i,a,m):t,p=N(l),h=i.getAssetId(s),g=kc(h),k="transfer";return new Cc({module:Aa,func:k,getTx:E=>E.getUnsafeApi().tx[Aa][k]({currency_id:g,amount:e,dest:ga(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),$s=()=>({transfer:Tc});function u(){return{assetConversion:Mn,assets:Vn,balances:Kn,ethereumXcm:_s,polkadotXcm:zs,router:On,utility:Gn,xTokens:$s}}function Ye(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}import{Abi as ka,Snowbridge as Lc,Wormhole as Ca}from"@galacticcouncil/xc-core";var wa={};Nt(wa,{AssethubClient:()=>me,BaseClient:()=>we,HydrationClient:()=>Me});import{encodeLocation as vc}from"@galacticcouncil/common";import{hub as Bc,XcmVersionedAssetId as Pc}from"@galacticcouncil/descriptors";var we=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Bc}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:o}=n;return BigInt(a)-BigInt(o)}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 o=vc(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Pc.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Ec,XcmV5Junction as Fc,XcmVersionedLocation as Xc}from"@galacticcouncil/descriptors";import{encodeLocation as Ic}from"@galacticcouncil/common";import{Twox128 as Rc,u128 as _c}from"@polkadot-api/substrate-bindings";import{toHex as Sc}from"@polkadot-api/utils";var me=class extends we{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=Ic(n);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.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=Sc(Rc(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=_c.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=Xc.V5({parents:1,interior:Ec.X1(Fc.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 o=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as Dc}from"@galacticcouncil/descriptors";var Me=class extends we{constructor(e){super(e,Dc)}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:o}=n;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}};function Hc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=Ca.fromChain(n),i=Ca.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:ka.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Wc(){return{TokenRelayer:Hc}}function Mc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=Lc.fromChain(a),m=new we(o),c=new me(t.hub),l=Ls(e,o),[p,h]=await Promise.all([m.calculateDestinationFee(l,x),c.calculateDeliveryFee(l,o.parachainId)]),g=h+Dt(p,25n),k=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:ka.Snowbridge,address:i.getGateway(),args:[k,o.parachainId,g],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:g}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new me(t.hub),i=ca(e,a),m=Ls(e,a),[c,l,p,h,g]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,Jn),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+Dt(p,25n)+h+Dt(g,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:g}}}})}}function Vc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(ia(e,a,o,i),i){let g=new we(o),k=new we(i),E=Os(e,o),M=la(e,i,o),[_,Q]=await Promise.all([g.calculateDestinationFee(E,e),k.calculateDestinationFee(M,e)]),K=Q+_,w=Dt(K,20n),Ue=w-K;return{amount:w,breakdown:{reserveFee:Q,destinationFee:_,margin:Ue}}}let m=new we(o),c=ua(e,o),l=await m.calculateDestinationFee(c,e),p=Dt(l,20n),h=p-l;return{amount:p,breakdown:{totalFee:l,margin:h}}}})}}function A(){return{XcmPaymentApi:Vc,Snowbridge:Mc,Wormhole:Wc}}var Uc="0";function Kc(){return{build:async({address:t,chain:e})=>{let n=await new Me(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Uc,o=e.findAssetById(a);return o?o.asset:q}}}var Oc=()=>({accountCurrencyMap:Kc});function $t(){return{multiTransactionPayment:Oc}}import{mrl as Ba,Precompile as Pa,ProgramConfig as Ea,Wormhole as rs}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as Nc,NATIVE_MINT as Ta,TOKEN_PROGRAM_ID as Gc,createCloseAccountInstruction as qc,createInitializeAccountInstruction as jc,getMinimumBalanceForRentExemptAccount as zc,getAssociatedTokenAddress as $c}from"@solana/spl-token";import{Keypair as Js,PublicKey as Qs,SystemProgram as va}from"@solana/web3.js";import{UniversalAddress as Fa}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Xa,createTransferNativeWithPayloadInstruction as Ia,getWrappedMeta as Jc}from"@wormhole-foundation/sdk-solana-tokenbridge";var Qc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=rs.fromChain(m),p=rs.fromChain(t.moonchain),h=Pa.Bridge,g=await Ba.createPayload(i.chain,s),k=new Qs(o),E=new Fa(h),M=p.getWormholeId(),_=k,Q=0,K=Js.generate(),w=Js.generate(),Ue=await zc(c.connection),ft=va.createAccount({fromPubkey:_,newAccountPubkey:w.publicKey,lamports:Ue,space:Nc,programId:Gc}),qe=va.transfer({fromPubkey:_,lamports:n,toPubkey:w.publicKey}),et=jc(w.publicKey,Ta,_),je=Xa(l.getTokenBridge(),w.publicKey,_,n),tt=Ia(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,K.publicKey,w.publicKey,Ta,Q,n,E.toUint8Array(),M,g.toU8a()),Ot=qc(w.publicKey,_,_);return new Ea({instructions:[ft,qe,et,je,tt,Ot],signers:[K,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ue)})}})}),Yc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,l=c,p=rs.fromChain(c),h=rs.fromChain(t.moonchain),g=Pa.Bridge,k=await Ba.createPayload(m.chain,s),E=new Qs(i),M=o.chain.getAssetId(a),_=new Qs(M),Q=await $c(_,E),K=new Fa(g),w=h.getWormholeId();if(await Jc(l.connection,p.getTokenBridge(),_).catch(tt=>null).then(tt=>tt!=null))throw new Error("Wrapped assets not supported yet");let ft=0,qe=Js.generate(),et=Xa(p.getTokenBridge(),Q,E,n),je=Ia(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,qe.publicKey,Q,_,ft,n,K.toUint8Array(),w,k.toU8a());return new Ea({instructions:[et,je],signers:[qe],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ra=()=>({transferNativeWithPayload:Qc,transferTokenWithPayload:Yc});function _a(){return{TokenBridge:Ra}}function Jt(){return{Wormhole:_a}}import{mrl as Zc,MoveConfig as em,Precompile as tm,Wormhole as Sa}from"@galacticcouncil/xc-core";import{Transaction as sm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as nm,SUI_TYPE_ARG as am}from"@mysten/sui/utils";import{UniversalAddress as om}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as rm,getPackageId as Da}from"@wormhole-foundation/sdk-sui";var im=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=Sa.fromChain(m),p=Sa.fromChain(t.moonchain),h=0,g=tm.Bridge,k=await Zc.createPayload(i.chain,s),E=new om(g),M=p.getWormholeId(),_=am,[Q,K]=await Promise.all([Da(c.client,l.coreBridge),Da(c.client,l.tokenBridge)]),w=new sm,[Ue]=w.splitCoins(w.gas,[w.pure.u64(n)]),[ft]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[qe]=w.moveCall({target:`${K}::state::verified_asset`,arguments:[w.object(l.tokenBridge)],typeArguments:[_]}),et=!1,je=await(async()=>{let Tt=await rm(c.client,Q,o);if(Tt!==null)return w.object(Tt);{let[Yt]=w.moveCall({target:`${Q}::emitter::new`,arguments:[w.object(l.coreBridge)]});return et=!0,Yt}})(),[tt,Ot]=w.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[je,qe,Ue,w.pure.u16(M),w.pure.vector("u8",E.toUint8Array()),w.pure.vector("u8",k.toU8a()),w.pure.u32(h)],typeArguments:[_]});w.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[Ot],typeArguments:[_]});let[Bs]=w.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(l.tokenBridge),tt],typeArguments:[_]});return w.moveCall({target:`${Q}::publish_message::publish_message`,arguments:[w.object(l.coreBridge),ft,Bs,w.object(nm)]}),et&&w.transferObjects([je],w.pure.address(o)),new em({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),La=()=>({transferNativeWithPayload:im});function Ha(){return{TokenBridge:La}}function Ys(){return{Wormhole:Ha}}var Ma={};Nt(Ma,{Tag:()=>ct});var ct=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(ct||{});import{AssetRoute as Va}from"@galacticcouncil/xc-core";function Vt(t,e){return new Va({source:{asset:t,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:R().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new Va({source:{asset:t,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:D}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]})}var mm=[new is({source:{asset:D,balance:r().evm().native(),destinationFee:{asset:D,balance:r().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Vt(le,ee),Vt(Oe,xe),Vt(b,ye),Vt(f,be),Vt(Ke,he)],um=[new is({source:{asset:D,balance:r().evm().native(),fee:{asset:D,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:D,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:D}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(ke,ke),oe(ve,ve),oe(Be,Be),oe(Re,Re),oe(Se,Se),oe(De,De),oe(Fe,Fe),oe(Pe,Pe),oe(Xe,Xe),oe(_e,_e),oe(Le,Le),oe(We,We),oe(b,ht),oe(f,pt)],ny=[new is({source:{asset:D,balance:r().evm().native(),destinationFee:{asset:D,balance:r().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new is({source:{asset:le,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{asset:le,balance:r().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:R().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Ua=new cm({chain:I,routes:[...mm,...um]});var Ka=[Ua];import{AssetRoute as us,ChainRoutes as Na}from"@galacticcouncil/xc-core";import{AssetRoute as Zs}from"@galacticcouncil/xc-core";var wt=0,lm=t=>{let{source:e}=t;return!!e.feeSwap},dm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Oa=u().assetConversion().swapTokensForExactTokens({slippage:30});function fm(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:Ye(dm,Oa).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function cs(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:Ye(lm,Oa).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ct(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ms(t){return fm(t,d,.02)}var pm=[new us({source:{asset:x,balance:r().substrate().system().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().system().account()},min:ot().assets().asset()},destination:{chain:d,asset:x,fee:{amount:.001,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new us({source:{asset:P,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ct(f,d,.02),Ct(b,d,.02),ms(ze)],hm=[new us({source:{asset:P,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:$e,asset:P,fee:{amount:.001,asset:P}},extrinsic:u().polkadotXcm().transferAssets()})],bm=[Ct(f,B,.25),Ct(b,B,.25)],ym=[Ct(f,L,.03),Ct(b,L,.03)],xm=[new us({source:{asset:U,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:nt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Ga=new Na({chain:st,routes:[cs(f,d,.02),cs(b,d,.02),cs(x,d,.001)]}),qa=new Na({chain:C,routes:[...pm,...hm,...bm,...ym,...xm]});import{AssetRoute as Ze,ChainRoutes as gm}from"@galacticcouncil/xc-core";var Am=[new Ze({source:{asset:S,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:S,fee:{amount:.044306118,asset:S}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ze({source:{asset:F,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:F,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:F}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:T,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:X,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:H,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:W,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:j,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:j,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:j}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:f,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:b,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ja=new gm({chain:Z,routes:[...Am]});import{AssetRoute as Ve,ChainRoutes as wm}from"@galacticcouncil/xc-core";var Cm=[new Ve({source:{asset:F,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:F,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:W,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:j,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:j,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:j}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ve({source:{asset:S,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:S,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:T,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:X,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:625e-8,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:f,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],km=[new Ve({source:{asset:f,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:C,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],za=new wm({chain:L,routes:[...Cm,...km]});import{AssetRoute as Ge,ChainRoutes as Fm}from"@galacticcouncil/xc-core";var Tm="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Tm?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as kt}from"@galacticcouncil/xc-core";var vm=.9,Bm=1,Pm=1,ls=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ds=u().router().buy({slippage:30});function V(t,e,s){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Ut(t,e,s){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function mt(t,e){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function fs(t){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:C,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function Em(t,e,s="LocalReserve"){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:Pm,asset:T}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ut(t){return Em(t,B,"DestinationReserve")}function $a(t,e,s,n,a,o){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:Ye(ls,ds).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:vm})]),transact:{chain:B,fee:{amount:Bm,asset:T,balance:v()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function ps(t,e,s){return $a(t,e,s,0,R().Batch().batchAll([R().Erc20().approve(n=>n.getTokenBridge()),R().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function lt(t,e,s){return $a(t,e,s,A().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 kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:s,asset:e,fee:{amount:A().Snowbridge().calculateOutboundFee({hub:C}),asset:x}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Xm=[mt(x,C),mt(P,C),mt(f,C),mt(b,C),fs(ze)],Im=[V(S,Z),V(F,Z,L),V(T,Z,B),new Ge({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ge({source:{asset:H,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(W,Z,L),V(j,Z,L),V(f,Z,C),V(b,Z,C)],Rm=[V(F,L),V(W,L),V(j,L),V(S,L,Z),V(T,L,B),new Ge({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:X,fee:{amount:5e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(f,L,C),V(b,L,C),new Ge({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],_m=[Ut(X,ge,62e-8),Ut(H,ge,.0019213457),Ut(q,ge,.5),Ut(f,ge,.3),Ut(b,ge,.3),new Ge({source:{asset:W,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:W,fee:{amount:.01,asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ge({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:x,fee:{amount:.05,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Sm=[V(q,B),V(T,B),V(f,B,C),V(b,B,C),ut(ee),ut(he),ut(ye),ut(be),ut(xe),ut(Y),ut(O)],Dm=[new Ge({source:{asset:U,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:nt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Lm=[V(He,It)],Hm=[new Ge({source:{asset:ue,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Pt,asset:ue,fee:{amount:.04,asset:ue}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Wm=[V(Ee,Et)],Mm=[new Ge({source:{asset:de,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Rt,asset:de,fee:{amount:.02,asset:de}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Vm=[new Ge({source:{asset:fe,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Xt,asset:fe,fee:{amount:1.1,asset:fe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Um=[V(Ie,Ft)],Km=[V(Te,Bt)],Om=[lt(ee,le,I),lt(Y,D,I),lt(xe,Oe,I),lt(be,f,I),lt(ye,b,I),ps(he,Ke,I)],Nm=[te(D,D,I),te(ke,ke,I),te(ve,ve,I),te(Be,Be,I),te(Re,Re,I),te(Se,Se,I),te(De,De,I),te(Le,Le,I),te(Fe,Fe,I),te(Pe,Pe,I),te(Xe,Xe,I),te(_e,_e,I),te(We,We,I),te(ht,b,I),te(pt,f,I)],Gm=[lt(O,O,at),ps(se,se,at),ps(ne,ne,at)],qm=[lt(ae,ae,_t)],jm=[mt(x,st),mt(f,st),mt(b,st)],Ja=new Fm({chain:d,routes:[...Km,...Xm,...Im,...Rm,...jm,...Hm,...Nm,...Om,..._m,...Wm,...Mm,...Sm,...Dm,...Um,...Vm,...Gm,...qm,...Lm]});import{AssetRoute as bs,ChainRoutes as zm}from"@galacticcouncil/xc-core";var en=()=>r().substrate().tokens().accounts();function hs(t,e){return new bs({source:{asset:t,balance:en(),fee:{asset:H,balance:en()},destinationFee:{balance:en()}},destination:{chain:d,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var $m=[new bs({source:{asset:H,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new bs({source:{asset:X,balance:r().substrate().tokens().accounts(),fee:{asset:H,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new bs({source:{asset:q,balance:r().substrate().tokens().accounts(),fee:{asset:H,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:q,fee:{amount:.5,asset:q}},extrinsic:u().xTokens().transfer()}),hs(W,L),hs(f,C),hs(b,C),hs(x,C)],Qa=new zm({chain:ge,routes:[...$m]});import{AssetRoute as Qt,ChainRoutes as Ym}from"@galacticcouncil/xc-core";import{AssetRoute as Ya}from"@galacticcouncil/xc-core";function Jm(t,e,s){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function Qm(t,e,s){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:T,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function dt(t,e){return Jm(t,d,e)}function ys(t,e){return Qm(t,d,e)}var Zm=[new Qt({source:{asset:T,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:R().PolkadotXcm().transferAssetsToPara32()}),ys(q,.6),ys(f,.3),ys(b,.3),dt(ee,.004),dt(he,.004),dt(ye,.004),dt(be,.004),dt(xe,1e-7),dt(Y,2e-6),dt(O,2e-5)],e0=[new Qt({source:{asset:f,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:C,asset:f,fee:{amount:.18,asset:f}},contract:R().PolkadotXcm().transferAssetsToPara32()}),new Qt({source:{asset:b,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:R().PolkadotXcm().transferAssetsToPara32()})],gx=[new Qt({source:{asset:Y,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{asset:Y,balance:r().evm().erc20()}},destination:{chain:I,asset:D,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:D}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Qt({source:{asset:ee,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{asset:ee,balance:r().evm().erc20()}},destination:{chain:I,asset:le,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:le}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Za=new Ym({chain:B,routes:[...Zm,...e0]});import{AssetRoute as eo,ChainRoutes as t0}from"@galacticcouncil/xc-core";var s0=[new eo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:U,fee:{amount:.01,asset:U}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],n0=[new eo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:C,asset:U,fee:{amount:.1,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],to=new t0({chain:nt,routes:[...s0,...n0]});import{AssetRoute as a0,ChainRoutes as o0}from"@galacticcouncil/xc-core";var r0=[new a0({source:{asset:He,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:He,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],so=new o0({chain:It,routes:[...r0]});import{AssetRoute as i0,ChainRoutes as c0}from"@galacticcouncil/xc-core";var m0=[new i0({source:{asset:ue,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ue,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ue}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],no=new c0({chain:Pt,routes:[...m0]});import{AssetRoute as u0,ChainRoutes as l0}from"@galacticcouncil/xc-core";var d0=[new u0({source:{asset:fe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.2,asset:fe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ao=new l0({chain:Xt,routes:[...d0]});import{AssetRoute as f0,ChainRoutes as p0}from"@galacticcouncil/xc-core";var h0=[new f0({source:{asset:Te,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Te,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:Te}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],oo=new p0({chain:Bt,routes:[...h0]});import{AssetRoute as b0,ChainRoutes as y0}from"@galacticcouncil/xc-core";var x0=[new b0({source:{asset:Ee,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ee,fee:{amount:2,asset:Ee}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],ro=new y0({chain:Et,routes:[...x0]});import{AssetRoute as g0,ChainRoutes as A0}from"@galacticcouncil/xc-core";var w0=[new g0({source:{asset:de,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:de,fee:{amount:.03,asset:de}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],io=new A0({chain:Rt,routes:[...w0]});import{AssetRoute as C0,ChainRoutes as k0}from"@galacticcouncil/xc-core";var T0=[new C0({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ie,fee:{amount:.205,asset:Ie}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],co=new k0({chain:Ft,routes:[...T0]});var mo=[oo,qa,Ga,ja,za,Ja,Qa,Za,to,co,so,no,ao,ro,io];import{AssetRoute as tn,ChainRoutes as v0}from"@galacticcouncil/xc-core";var B0=[new tn({source:{asset:O,balance:r().solana().native(),destinationFee:{asset:O,balance:r().solana().native()}},destination:{chain:d,asset:O,fee:{amount:0,asset:O}},program:Jt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new tn({source:{asset:se,balance:r().solana().token(),fee:{asset:O,balance:r().solana().native()},destinationFee:{asset:se,balance:r().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:Jt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new tn({source:{asset:ne,balance:r().solana().token(),fee:{asset:O,balance:r().solana().native()},destinationFee:{asset:ne,balance:r().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:Jt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],uo=new v0({chain:at,routes:[...B0]});var lo=[uo];import{AssetRoute as P0,ChainRoutes as E0}from"@galacticcouncil/xc-core";var F0=[new P0({source:{asset:ae,balance:r().sui().native(),destinationFee:{asset:ae,balance:r().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:Ys().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],fo=new E0({chain:_t,routes:[...F0]});var po=[fo];import{AssetRoute as ho,ChainRoutes as X0}from"@galacticcouncil/xc-core";import{AssetRoute as Ug}from"@galacticcouncil/xc-core";var sn=.0015;var I0=new ho({source:{asset:P,balance:r().substrate().system().account(),fee:{asset:P,balance:r().substrate().system().account(),extra:sn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:C,asset:P,fee:{amount:.002,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),R0=new ho({source:{asset:P,balance:r().substrate().system().account(),fee:{asset:P,balance:r().substrate().system().account(),extra:sn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:St,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),bo=new X0({chain:$e,routes:[R0,I0]});import{AssetRoute as yo,ChainRoutes as S0}from"@galacticcouncil/xc-core";var _0="0",Kt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===_0?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),nn=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap(),balance:Kt()});var D0=[new yo({source:{asset:f,balance:Kt(),fee:nn(),destinationFee:{balance:Kt()}},destination:{chain:$e,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],L0=[new yo({source:{asset:P,balance:Kt(),fee:nn(),destinationFee:{balance:Kt()}},destination:{chain:$e,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],xo=new S0({chain:St,routes:[...D0,...L0]});var go=[bo,xo];var H0=[...Ka,...mo,...lo,...po,...go],W0=new Map(H0.map(t=>[t.chain.key,t]));import{Parachain as Bo}from"@galacticcouncil/xc-core";import{TransferValidation as Ao,TransferValidationError as wo}from"@galacticcouncil/xc-core";var xs=class extends Ao{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new wo("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},gs=class extends Ao{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:o,destinationFeeBalance:i}=n,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});if(i.amount<c.amount)throw new wo("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 me(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};import{TransferValidation as Co,TransferValidationError as ko}from"@galacticcouncil/xc-core";var As=class extends Co{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new me(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain;if(await new me(o).getSystemAccountBalance(n)===0n)throw new ko("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},ws=class extends Co{async validate(e){let{asset:s,sender:n,source:a}=e,o=a.chain;if(await new me(o).checkIfFrozen(n,s))throw new ko("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};import{TransferValidation as To,TransferValidationError as vo}from"@galacticcouncil/xc-core";var M0=12,V0=1,U0=18,Cs=class extends To{async skipFor(e){let{destination:s}=e,n=s.chain,a=new Me(n),o=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain,i=new Me(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||V0,p=c.decimals||M0,h=l*Math.pow(10,p),g=await i.getAssetBalance(n,m);if(BigInt(h*1.1)>g)throw new vo("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},ks=class extends To{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,o=a.chain,i=new Me(o),m=o.getBalanceAssetId(T),c=o.getAssetDecimals(T)||U0,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new vo("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ce={isAny:()=>!0,isHydration:t=>t instanceof Bo&&t.parachainId===2034,isHub:t=>t instanceof Bo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},K0=[new xs(Ce.isAny,Ce.isAny),new gs(Ce.isAny,Ce.isAny),new As(Ce.isAny,Ce.isHub),new ws(Ce.isHub,Ce.isAny),new Cs(Ce.isAny,Ce.isHydration),new ks(Ce.isHydration,Ce.isAny)];var Eo={};Nt(Eo,{AssethubDex:()=>on,HydrationDex:()=>an});import{pool as O0,sor as N0,tx as G0}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as q0}from"@galacticcouncil/common";import{memoize1 as j0}from"@thi.ng/memoize";var{PoolType:Ts}=O0,{TradeRouteBuilder:z0,TradeRouter:$0}=N0,{TxBuilderFactory:J0}=G0,an=class{chain;client;poolCtx;txBuilder;getCtx=j0(async e=>{console.log("init swap router",e,"\u2705");let s=new $0(this.poolCtx);return s.withFilter({useOnly:[Ts.Aave,Ts.Omni,Ts.Stable,Ts.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Me(this.chain),this.txBuilder=new J0(s.client,s.evm)}async getCalldata(e,s,n,a,o=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),p=await l.getMostLiquidRoute(i,m),h=await l.getBuy(i,m,c,p);return(await(await this.txBuilder.trade(h).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(o,i),p=await c.getBuy(o,i,m,l);return{amount:p.amountIn,route:z0.build(p.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 o=a*s,i=Math.pow(10,q0);return o/BigInt(i)}};import{encodeLocation as Po}from"@galacticcouncil/common";var on=class{chain;client;constructor(e){this.chain=e,this.client=new me(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),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Po(a),Po(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as Y0}from"@galacticcouncil/xc-core";import{Asset as Q0}from"@galacticcouncil/xc-core";function vs(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new Q0({key:[a,s,e].join("_"),originSymbol:n})}function Fo(t){let{decimals:e,id:s}=t;return{asset:vs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Xo(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:vs(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 rn=class extends Y0{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=vs(o),m=Fo(o),c=Xo(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,ms(i)),this.updateChainRoute(s,fs(i))})}};export{rn as HydrationConfigService,So as assetsMap,Wa as builders,Dr as chainsMap,wa as clients,Eo as dex,W0 as routesMap,Ma as tags,K0 as validations};
|
|
1
|
+
var Ro=Object.defineProperty;var Nt=(t,e)=>{for(var s in e)Ro(t,s,{get:e[s],enumerable:!0})};import{Asset as y}from"@galacticcouncil/xc-core";var ke=new y({key:"aave",originSymbol:"AAVE"}),Te=new y({key:"ajun",originSymbol:"AJUN"}),S=new y({key:"astr",originSymbol:"ASTR"}),F=new y({key:"bnc",originSymbol:"BNC"}),Ps=new y({key:"bsx",originSymbol:"BSX"}),ve=new y({key:"cfg_new",originSymbol:"CFG"}),ue=new y({key:"cru",originSymbol:"CRU"}),le=new y({key:"dai",originSymbol:"DAI"}),ee=new y({...le,key:"dai_mwh"}),x=new y({key:"dot",originSymbol:"DOT"}),D=new y({key:"eth",originSymbol:"ETH"}),Be=new y({key:"ena",originSymbol:"ENA"}),T=new y({key:"glmr",originSymbol:"GLMR"}),q=new y({key:"hdx",originSymbol:"HDX"}),X=new y({key:"ibtc",originSymbol:"IBTC"}),H=new y({key:"intr",originSymbol:"INTR"}),se=new y({key:"jitoSol",originSymbol:"jitoSOL"}),P=new y({key:"ksm",originSymbol:"KSM"}),Pe=new y({key:"ldo",originSymbol:"LDO"}),Ee=new y({key:"laos",originSymbol:"LAOS"}),Fe=new y({key:"lbtc",originSymbol:"LBTC"}),de=new y({key:"ewt",originSymbol:"EWT"}),Xe=new y({key:"link",originSymbol:"LINK"}),U=new y({key:"myth",originSymbol:"MYTH"}),Ie=new y({key:"neuro",originSymbol:"NEURO"}),fe=new y({key:"pen",originSymbol:"PEN"}),Re=new y({key:"paxg",originSymbol:"PAXG"}),ne=new y({key:"prime",originSymbol:"PRIME"}),_e=new y({key:"sky",originSymbol:"SKY"}),O=new y({key:"sol",originSymbol:"SOL"}),ae=new y({key:"sui",originSymbol:"SUI"}),Se=new y({key:"susde",originSymbol:"sUSDe"}),Ke=new y({key:"susds",originSymbol:"sUSDS"}),he=new y({...Ke,key:"susds_mwh"}),De=new y({key:"tbtc",originSymbol:"tBTC"}),Le=new y({key:"trac",originSymbol:"TRAC"}),He=new y({key:"unq",originSymbol:"UNQ"}),f=new y({key:"usdt",originSymbol:"USDT"}),be=new y({...f,key:"usdt_mwh"}),pt=new y({...f,key:"usdt_eth"}),b=new y({key:"usdc",originSymbol:"USDC"}),ye=new y({...b,key:"usdc_mwh"}),ht=new y({...b,key:"usdc_eth"}),j=new y({key:"vastr",originSymbol:"vASTR"}),W=new y({key:"vdot",originSymbol:"vDOT"}),vt=new y({key:"weth",originSymbol:"WETH"}),Y=new y({...vt,key:"weth_mwh"}),Oe=new y({key:"wbtc",originSymbol:"WBTC"}),xe=new y({...Oe,key:"wbtc_mwh"}),We=new y({key:"wsteth",originSymbol:"wstETH"}),ze=new y({key:"wud",originSymbol:"WUD"}),_o=[ke,Te,S,Ps,ve,ue,F,le,ee,x,Be,D,T,q,X,H,P,Pe,Ee,Fe,de,se,Xe,U,Ie,Re,fe,ne,_e,O,ae,Se,Ke,he,Le,De,He,b,ye,ht,f,be,pt,j,W,Oe,xe,vt,Y,We,ze],So=new Map(_o.map(t=>[t.key,t]));import{ChainEcosystem as Do,EvmChain as Lo}from"@galacticcouncil/xc-core";import{mainnet as Ho}from"viem/chains";var I=new Lo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ke,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ve,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:vt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:le,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Se,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ke,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:De,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Oe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Fe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Pe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Re,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:_e,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Le,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:We,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Do.Ethereum,evmChain:Ho,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 cn=[I];import{ChainEcosystem as Wo,Parachain as Mo}from"@galacticcouncil/xc-core";var Bt=new Mo({assetsData:[{asset:Te,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Wo.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 Vo,Parachain as mn}from"@galacticcouncil/xc-core";var un={assetsData:[{asset:x,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:ze,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:Vo.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 mn({...un,key:"assethub",name:"AssetHub Polkadot"}),st=new mn({...un,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Uo,Parachain as Ko}from"@galacticcouncil/xc-core";var Z=new Ko({assetsData:[{asset:S,xcmLocation:{parents:0,interior:"Here"}},{asset:x,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:F,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:X,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,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:j,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Uo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Oo,Parachain as No}from"@galacticcouncil/xc-core";var Go=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new No({assetsData:[{asset:F,id:{Native:F.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:j,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset: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:S,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:X,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Oo.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Go});import{ChainEcosystem as qo,Parachain as jo,XcmVersion as zo}from"@galacticcouncil/xc-core";var Pt=new jo({assetsData:[{asset:ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qo.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:zo.v3});import{ChainEcosystem as Qo,EvmParachain as Yo}from"@galacticcouncil/xc-core";import{defineChain as Zo}from"viem";import{getSs58AddressInfo as $o}from"@polkadot-api/substrate-bindings";var Jo="ETH\0",Zt=class{async toH160(e){let s=$o(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Jo),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var er=new Zt,Es=["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"],tr=Zo({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Es,webSocket:Fs},default:{http:Es,webSocket:Fs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Yo({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:ke,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Te,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:ue,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,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:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:X,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,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:ne,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:de,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Pe,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:Ee,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:Re,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:Ie,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:_e,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:O,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:Se,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ke,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:he,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:De,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Le,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:He,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:ye,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ht,decimals:6,id: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:be,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:pt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:j,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:Oe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:xe,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:Y,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:We,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ze,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Qo.Polkadot,evmChain:tr,evmResolver:er,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Fs,rpcs:Es});import{ChainEcosystem as sr,Parachain as nr,XcmVersion as ar}from"@galacticcouncil/xc-core";var ge=new nr({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:X,decimals:8,id:{Token:X.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset: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:q,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:sr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",usesLegacyEnhancer:!0,xcmVersion:ar.v3});import{ChainEcosystem as or,Parachain as rr}from"@galacticcouncil/xc-core";var Et=new rr({assetsData:[{asset:Ee,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:or.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 ir,EvmParachain as cr}from"@galacticcouncil/xc-core";import{defineChain as mr}from"viem";var ur=mr({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 cr({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:O,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:ne,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:he,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:ye,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:be,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:xe,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:x,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: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:ir.Polkadot,evmChain:ur,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 lr,Parachain as dr}from"@galacticcouncil/xc-core";var nt=new dr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:lr.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 fr,Parachain as pr}from"@galacticcouncil/xc-core";var Ft=new pr({assetsData:[{asset:Ie,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:fr.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 hr,Parachain as br,XcmVersion as yr}from"@galacticcouncil/xc-core";var Xt=new br({assetsData:[{asset:fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:hr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:yr.v3});import{ChainEcosystem as xr,Parachain as gr}from"@galacticcouncil/xc-core";var Ar={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:xr.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 gr({...Ar,key:"polkadot"});import{ChainEcosystem as wr,Parachain as Cr}from"@galacticcouncil/xc-core";var It=new Cr({assetsData:[{asset:He,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:wr.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 kr,Parachain as Tr,XcmVersion as vr}from"@galacticcouncil/xc-core";var Rt=new Tr({assetsData:[{asset:de,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:kr.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,usesLegacyEnhancer:!0,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:vr.v3});var dn=[Bt,C,st,Z,L,Pt,d,Et,Ft,ge,B,nt,Xt,ln,It,Rt];import{ChainEcosystem as Br,SolanaChain as Pr}from"@galacticcouncil/xc-core";var at=new Pr({id:101,key:"solana",name:"Solana",assetsData:[{asset:O,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ne,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],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 fn=[at];import{ChainEcosystem as Er,SuiChain as Fr}from"@galacticcouncil/xc-core";var _t=new Fr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Er.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var pn=[_t];import{ChainEcosystem as Xr,Parachain as Ir}from"@galacticcouncil/xc-core";var $e=new Ir({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:Xr.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 Rr,Parachain as _r}from"@galacticcouncil/xc-core";var St=new _r({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:Rr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var hn=[$e,St];var Sr=[...cn,...dn,...fn,...pn,...hn],Dr=new Map(Sr.map(t=>[t.key,t]));import{AssetRoute as is,ChainRoutes as cm}from"@galacticcouncil/xc-core";var Wa={};Nt(Wa,{AssetMinBuilder:()=>ot,BalanceBuilder:()=>r,ContractBuilder:()=>R,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>Ye,FeeAmountBuilder:()=>A,FeeAssetBuilder:()=>$t,MoveBuilder:()=>Ys,ProgramBuilder:()=>Jt,XcmTransferType:()=>re,XcmVersion:()=>Qe});import{SubstrateQueryConfig as Xs}from"@galacticcouncil/xc-core";function ot(){return{assetRegistry:Lr,assets:Hr}}function Lr(){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 Hr(){return{asset:()=>({build:({asset:t})=>new Xs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Wr,ContractConfig as bn}from"@galacticcouncil/xc-core";function yn(){return{erc20:Vr,native:Mr}}function Mr(){return{build:({address:t})=>new bn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Vr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new bn({abi:Wr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as Gt}from"@galacticcouncil/xc-core";import{encodeAssetId as Is,encodeLocation as Ur}from"@galacticcouncil/common";function xn(){return{assets:Kr,system:Nr,tokens:Gr,ormlTokens:qr,foreignAssets:Or}}function Kr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Or(){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 o=Ur(a);return new Gt({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Nr(){return{account:()=>({build:({address:t})=>new Gt({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 Gr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"Tokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=Is(n);return new Gt({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),m=BigInt(o?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as gn}from"@galacticcouncil/xc-core";function An(){return{native:jr,token:zr}}function jr(){return{build:({address:t})=>new gn({address:t,func:"rpc_getBalance",module:"Native"})}}function zr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new gn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as $r}from"@galacticcouncil/xc-core";function wn(){return{native:Jr}}function Jr(){return{build:({address:t})=>new $r({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:yn,substrate:xn,solana:An,sui:wn}}import{Abi as Cn,ContractConfig as Qr,Precompile as Yr}from"@galacticcouncil/xc-core";import{encodeFunctionData as Zr}from"viem";var ei=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],o=s.map(i=>Zr({abi:Cn[i.module],functionName:i.func,args:i.args}));return new Qr({abi:Cn.Batch,address:Yr.Batch,args:[n,a,o,[]],func:"batchAll",module:"Batch"})}}),kn=()=>({batchAll:ei});import{Abi as ti,ContractConfig as si,Wormhole as ni}from"@galacticcouncil/xc-core";function Dt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Je(t){return typeof t=="object"?Object.values(t)[0]:t}function Tn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=ni.fromChain(i),c=i.getAssetId(n);return new si({abi:ti.Erc20,address:Je(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{addr as ai,Abi as vn,ContractConfig as Bn,Precompile as Pn}from"@galacticcouncil/xc-core";import{big as oi}from"@galacticcouncil/common";var{Ss58Addr:En}=ai;function ri(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 Rs(t,e){let s=t.getAssetId(e);return typeof s=="string"?ri(s):s}function Fn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rs(a.chain,s);return new Bn({abi:vn.PolkadotXcm,address:Pn.PolkadotXcm,args:[n.chain.parachainId,En.getPubKey(t),[{asset:o,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Rs(a.chain,s),i=Rs(a.chain,a.destinationFeeBalance),m=oi.toBigInt(n.fee.amount,n.fee.decimals);return new Bn({abi:vn.PolkadotXcm,address:Pn.PolkadotXcm,args:[n.chain.parachainId,En.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as ii,Abi as ci,ContractConfig as mi,Snowbridge as ui}from"@galacticcouncil/xc-core";var{Ss58Addr:li}=ii,di=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=ui.fromChain(i),l=i.getAssetId(n),p=Je(l),h=n.originSymbol==="ETH",g=o.feeBreakdown.bridgeFeeInDot,k=o.fee.amount;return new mi({abi:ci.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,li.getPubKey(e)],g,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),Xn=()=>({sendToken:di});import{mrl as Rn,Abi as es,ContractConfig as ts,Precompile as _n,Wormhole as rt}from"@galacticcouncil/xc-core";import{PublicKey as In}from"@solana/web3.js";import{getAssociatedTokenAddress as fi}from"@solana/spl-token";var pi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=rt.fromChain(o.chain),c=rt.fromChain(t.moonchain),l=_n.Bridge,p=o.chain.getAssetId(a),h=0,g=await Rn.createPayload(i.chain,s);return new ts({abi:es.TokenBridge,address:m.getTokenBridge(),args:[Je(p),n,c.getWormholeId(),c.normalizeAddress(l),h,g.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),hi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:o}=e,i=rt.fromChain(a.chain),m=rt.fromChain(t.moonchain),c=_n.Bridge,l=0,p=await Rn.createPayload(o.chain,s);return new ts({abi:es.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),bi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=rt.fromChain(m),p=rt.fromChain(c),h=e;if(c.isSolana()){let M=c.getAssetId(n);h=(await fi(new In(M),new In(e))).toBase58()}let g=m.getAssetId(n),k=0,E=0;return new ts({abi:es.TokenBridge,address:l.getTokenBridge(),args:[Je(g),s,p.getWormholeId(),p.normalizeAddress(h),k,E],func:"transferTokens",module:"TokenBridge"})}}),yi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,o=rt.fromChain(n.chain),i=rt.fromChain(a.chain),m=0,c=0;return new ts({abi:es.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Sn=()=>({transferTokens:bi,transferTokensWithPayload:pi,wrapAndTransferETH:yi,wrapAndTransferETHWithPayload:hi});import{Abi as xi,ContractConfig as gi,Wormhole as Dn}from"@galacticcouncil/xc-core";var Ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o,transact:i}=t,m=i?i.chain:a.chain,c=o.chain,l=Dn.fromChain(m),p=Dn.fromChain(c),h=0,g=0,k=m.getAssetId(n);return new gi({abi:xi.TokenRelayer,address:l.getTokenRelayer(),args:[Je(k),s,h,p.getWormholeId(),p.normalizeAddress(e),g],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ln=()=>({transferTokensWithRelay:Ai});function Hn(){return{TokenBridge:Sn,TokenRelayer:Ln}}function R(){return{Batch:kn,Erc20:Tn,PolkadotXcm:Fn,Snowbridge:Xn,Wormhole:Hn}}import{ExtrinsicConfig as wi}from"@galacticcouncil/xc-core";var Wn="AssetConversion",Ci=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,o=n.destinationFeeSwap||n.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=o,c=a,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),h=i.amount+i.amount*BigInt(t.slippage)/100n,g=m.amount;return new wi({module:Wn,func:e,getTx:k=>k.getUnsafeApi().tx[Wn][e]({path:[l,p],amount_out:g,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Mn=()=>({swapTokensForExactTokens:Ci});import{hub as ki,MultiAddress as Ti}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as vi}from"@galacticcouncil/xc-core";var Bi="Assets",Pi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let o=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new vi({module:Bi,func:t,getTx:l=>l.getTypedApi(ki).tx.Assets.transfer({id:Number(c),target:Ti.Id(n),amount:m})})}}},Vn=()=>({transfer:Pi});import{ExtrinsicConfig as Ei}from"@galacticcouncil/xc-core";var Un="Balances",Fi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Ei({module:Un,func:e,getTx:n=>n.getUnsafeApi().tx[Un][e]({dest:s,keep_alive:t})})}},Kn=()=>({transferAll:Fi});import{hydration as Xi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ii}from"@galacticcouncil/xc-core";var Ri="Router",_i=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(o),p=c.getMetadataAssetId(i),h=i.amount,g=o.amount+o.amount*BigInt(t.slippage)/100n;return new Ii({module:Ri,func:"buy",getTx:k=>k.getTypedApi(Xi).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:h,max_amount_in:g,route:m})})}}),On=()=>({buy:_i});import{ExtrinsicConfig as Si}from"@galacticcouncil/xc-core";var Nn="Utility",Di=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Si({module:Nn,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Nn][e]({calls:o})}})}}},Gn=()=>({batchAll:Di});import{Abi as Li,ExtrinsicConfig as Hi}from"@galacticcouncil/xc-core";import{Binary as qn}from"polkadot-api";import{encodeFunctionData as Wi}from"viem";var Qe=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(Qe||{}),re=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(re||{});var jn="EthereumXcm",Mi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=Wi({abi:Li[n.module],functionName:n.func,args:n.args});return new Hi({module:jn,func:e,getTx:i=>i.getUnsafeApi().tx[jn][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:qn.fromHex(n.address)},value:[0n,0n,0n,0n],input:qn.fromHex(o),access_list:void 0}}})})}}},_s=()=>({transact:Mi});import{ExtrinsicConfig as At}from"@galacticcouncil/xc-core";import{big as js}from"@galacticcouncil/common";import{multiloc as ic,ChainEcosystem as Ns}from"@galacticcouncil/xc-core";import{Binary as cc}from"polkadot-api";import{XcmV3Junctions as pe,XcmV3Junction as zt,XcmV3JunctionNetworkId as da,XcmV3MultiassetFungibility as xt,XcmV4Instruction as J,XcmV4AssetAssetFilter as Wt,XcmV4AssetWildAsset as Mt,XcmV3WeightLimit as Gs,XcmV2MultiassetWildFungibility as mc,XcmV2OriginKind as uc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Vi}from"@galacticcouncil/descriptors";var ie=340282366920938463463374607431768211455n,bt="0x0000000000000000000000000000000000000000000000000000000000000000",Lt={parents:1,interior:Vi.Here()},zn=0,$n=1e3,Jn=1002,Qn=1,yt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var Yn="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as ec,XcmV3MultiassetFungibility as Ds,XcmV3WeightLimit as tc,XcmV4AssetAssetFilter as sc,XcmV4AssetWildAsset as nc,XcmV4Instruction as qt}from"@galacticcouncil/descriptors";import{Binary as ac}from"polkadot-api";import{acc as Ui}from"@galacticcouncil/common";import{XcmV3Junction as Zn}from"@galacticcouncil/descriptors";import{FixedSizeBinary as ea}from"polkadot-api";import{getSs58AddressInfo as Ki}from"@polkadot-api/substrate-bindings";import{toHex as Oi}from"@polkadot-api/utils";function N(t){if(t.length===42&&t.startsWith("0x"))return Zn.AccountKey20({key:ea.fromHex(t),network:void 0});let s=Ki(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Zn.AccountId32({id:ea.fromHex(Oi(s.publicKey)),network:void 0})}function Ht(t,e,s){return Ui.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as ta}from"@galacticcouncil/xc-core";function sa(t,e){let s=ta.findNestedKey(t,"GeneralIndex"),n=ta.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,o=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(o)?!1:Number(a)>Number(o)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var as={};Nt(as,{ETHER_TOKEN_ADDRESS:()=>Ss,erc20Location:()=>qi,erc20LocationReanchored:()=>ji,ethereumLocation:()=>oa,parachainLocation:()=>Gi});import{XcmV3Junctions as ss,XcmV3Junction as ns,XcmV3JunctionNetworkId as Ni}from"@galacticcouncil/descriptors";import{Binary as na}from"polkadot-api";var Ss="0x0000000000000000000000000000000000000000",aa=t=>ns.GlobalConsensus(Ni.Ethereum({chain_id:BigInt(t)}));function oa(t){return{parents:2,interior:ss.X1(aa(t))}}function Gi(t){return{parents:1,interior:ss.X1(ns.Parachain(t))}}function qi(t,e){return e===Ss?oa(t):{parents:2,interior:ss.X2([aa(t),ns.AccountKey20({key:na.fromHex(e)})])}}function ji(t){return t===Ss?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ss.X1(ns.AccountKey20({key:na.fromHex(t)}))}}import{encodeLocation as ra}from"@galacticcouncil/common";import{multiloc as zi}from"@galacticcouncil/xc-core";function $(t,e){return $i(e)>=4?ra(t):Ji(t)}function $i(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Ji(t){return{type:"Concrete",value:ra(t)}}var Qi=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 Zi(t){if(t)return Yi(t)?Qi:zi.findParachain(t)}function ia(t,e,s,n){let a=e.getAssetXcmLocation(t),o=Zi(a),i=n?.parachainId??s.parachainId;if(o&&i!==o)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${o}, got ${n.name} (${n.parachainId})`:`Reserve chain ${o} required for "${t.originSymbol}"`)}function Ls(t,e){let s="V4",n=$(z(e,t),s),a=ac.fromHex(bt);return[qt.ReserveAssetDeposited([{id:Lt,fun:Ds.Fungible(ie)},{id:n,fun:Ds.Fungible(ie)}]),qt.ClearOrigin(),qt.BuyExecution({fees:{id:Lt,fun:Ds.Fungible(ie)},weight_limit:tc.Unlimited()}),qt.DepositAsset({assets:sc.Wild(nc.AllCounted(2)),beneficiary:{parents:0,interior:ec.X1(N(yt))}}),qt.SetTopic(a)]}import{XcmV4Instruction as Hs,XcmV3MultiassetFungibility as Ws,XcmV3WeightLimit as oc}from"@galacticcouncil/descriptors";function ca(t,e){let s="V4",n=$(z(e,t),s),a=os("V4",N(Yn),N(yt),n,bt);return[Hs.WithdrawAsset([{id:Lt,fun:Ws.Fungible(ie)},{id:n,fun:Ws.Fungible(ie)}]),Hs.ClearOrigin(),Hs.BuyExecution({fees:{id:Lt,fun:Ws.Fungible(ie)},weight_limit:oc.Unlimited()}),...a.value]}import{XcmV3Junctions as Ms,XcmV3Junction as rc,XcmV3MultiassetFungibility as jt,XcmV3WeightLimit as Vs,XcmV4AssetAssetFilter as Us,XcmV4AssetWildAsset as Ks,XcmV4Instruction as Ae}from"@galacticcouncil/descriptors";import{Binary as ma}from"polkadot-api";function ua(t,e){let s="V4",n=$(z(e,t),s),a=ma.fromHex(bt);return[Ae.WithdrawAsset([{id:n,fun:jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:n,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositAsset({assets:Us.Wild(Ks.AllCounted(1)),beneficiary:{parents:0,interior:Ms.X1(N(yt))}}),Ae.SetTopic(a)]}function Os(t,e){let s="V4",n=$(z(e,t),s);return[Ae.BuyExecution({fees:{id:n,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositAsset({assets:Us.Wild(Ks.AllCounted(1)),beneficiary:{parents:0,interior:Ms.X1(N(yt))}})]}function la(t,e,s){let n="V4",a=$(z(e,t),n),o=ma.fromHex(bt),i=Os(t,s);return[Ae.WithdrawAsset([{id:a,fun:jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:a,fun:jt.Fungible(ie)},weight_limit:Vs.Unlimited()}),Ae.DepositReserveAsset({assets:Us.Wild(Ks.AllCounted(1)),dest:{parents:1,interior:Ms.X1(rc.Parachain(s.parachainId))},xcm:i}),Ae.SetTopic(o)]}var fa=[Ns.Polkadot,Ns.Kusama],lc={parents:1,interior:pe.X1(zt.Parachain(1e3))},dc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},fc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:fa.includes(t.ecosystem)&&fa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,pa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},Ne=(t,e,s)=>{if(fc(e,s)){let a=s.ecosystem===Ns.Polkadot?da.Polkadot():da.Kusama();return{type:t,value:{parents:2,interior:pe.X2([zt.GlobalConsensus(a),zt.Parachain(s.parachainId)])}}}if(s.parachainId===zn)return{type:t,value:{parents:1,interior:pe.Here()}};let n=s.key==="ethereum"?$n:s.parachainId;return{type:t,value:{parents:1,interior:pe.X1(zt.Parachain(n))}}},gt=(t,e)=>({type:t,value:{parents:0,interior:pe.X1(e)}}),qs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:dc(s)?lc:s}}:{type:e},it=(t,e)=>({id:t,fun:xt.Fungible(e)}),ha=(t,e,s)=>({type:t,value:[J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(s)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var os=(t,e,s,n,a)=>{let o=cc.fromHex(a);return{type:t,value:[J.SetAppendix([J.DepositAsset({assets:Wt.Wild(Mt.All()),beneficiary:{parents:0,interior:pe.X1(s)}})]),J.InitiateReserveWithdraw({assets:Wt.Wild(Mt.AllOf({id:n,fun:mc.Fungible()})),reserve:as.ethereumLocation(Qn),xcm:[J.BuyExecution({fees:{id:pc(n),fun:xt.Fungible(1n)},weight_limit:Gs.Unlimited()}),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}}),J.SetTopic(o)]}),J.SetTopic(o)]}},pc=t=>{let e=ic.findNestedKey(t,"key");return e?{parents:0,interior:pe.X1(zt.AccountKey20({key:e.key}))}:{parents:0,interior:pe.Here()}},ba=(t,e,s,n,a,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(n)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(n)},weight_limit:Gs.Unlimited()}),J.Transact({origin_kind:uc.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:a}),J.RefundSurplus(),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]}),ya=(t,e,s,n,a,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:xt.Fungible(a)}]),J.BuyExecution({fees:{id:s,fun:xt.Fungible(a)},weight_limit:Gs.Unlimited()}),J.TransferAsset({assets:[{id:s,fun:xt.Fungible(n)}],beneficiary:{parents:0,interior:pe.X1(o)}}),J.RefundSurplus(),J.DepositAsset({assets:Wt.Wild(Mt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var ce="PolkadotXcm",hc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=$(z(i,n.fee),c),h=it(l,e),g=it(p,n.fee.amount),k="limited_reserve_transfer_assets";return new At({module:ce,func:k,getTx:E=>{let M=E.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):sa(l,p)?M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[g,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):M({dest:Ne(c,i,m),beneficiary:gt(c,o),assets:{type:c,value:[h,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),bc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="limited_teleport_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),yc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="reserve_transfer_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0})})}}),xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=N(t),i=a.chain,m=n.chain,c="V4",l=$(z(i,s),c),p=it(l,e),h=Ne(c,i,m),g=gt(c,o),k={type:c,value:[p]},E="transfer_assets";return new At({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gc=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:o,sender:i,source:m,transact:c})=>{let l="V4",p=m.chain,h=a.chain,g=a.fee.amount,k=a.fee;c&&(h=c.chain,g=js.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let E=N(i),M=c||h.usesCexForwarding?Ht(p,i,h):e,_=N(M),{transferType:Q}=t,K=$(z(p,s),l),w=$(z(p,k),l),Ue=it(K,n),ft=it(w,g),qe=s.isEqual(k),et=Ne(l,p,h),je={type:l,value:qe?[Ue]:[ft,Ue]},tt=qs(l,Q,K),Ot={type:l,value:qe?K:w},Bs=qs(l,Q,w),Tt;pa(K)&&a.chain.isEvmChain()?Tt=os(l,_,E,K,o):Tt=ha(l,_,je.value.length);let Yt="transfer_assets_using_type_and_then";return new At({module:ce,func:Yt,getTx:Io=>Io.getUnsafeApi().tx[ce][Yt]({dest:et,assets:je,assets_transfer_type:tt,remote_fees_id:Ot,fees_transfer_type:Bs,custom_xcm_on_dest:Tt,weight_limit:{type:"Unlimited"}})})}}),Ac=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=o.chain,l=Ht(m,n,c),p=N(l),{fee:h}=o,g=$(z(c,h),i),k=js.toBigInt(e.fee,h.decimals);return new At({module:ce,func:t,getTx:E=>E.getUnsafeApi().tx[ce][t]({dest:Ne(i,m,c),message:ba(i,p,g,k,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:o,sender:i,source:m,destination:c}=s,l="V4",p=m.chain,h=c.chain,g=Ht(p,i,h),k=N(g),E=N(a),M=$(z(h,o),l),{fee:_}=c,Q=js.toBigInt(e.fee,_.decimals),K=n>_.amount?n-(_.amount+Q):n;return new At({module:ce,func:t,getTx:w=>w.getUnsafeApi().tx[ce][t]({dest:Ne(l,p,h),message:ya(l,k,M,K,Q,E)})})}})}},zs=()=>({limitedReserveTransferAssets:hc,limitedTeleportAssets:bc,reserveTransferAssets:yc,transferAssets:xc,transferAssetsUsingTypeAndThen:gc,send:Ac});import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";import{encodeAssetId as kc}from"@galacticcouncil/common";import{XcmV3Junctions as xa,XcmV3Junction as wc}from"@galacticcouncil/descriptors";var ga=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:xa.X1(s)}}:{type:t,value:{parents:1,interior:xa.X2([wc.Parachain(e.parachainId),s])}};var Aa="XTokens",Tc=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:o})=>{let i=o.chain,m=n.chain,c="V3",l=m.usesCexForwarding?Ht(i,a,m):t,p=N(l),h=i.getAssetId(s),g=kc(h),k="transfer";return new Cc({module:Aa,func:k,getTx:E=>E.getUnsafeApi().tx[Aa][k]({currency_id:g,amount:e,dest:ga(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),$s=()=>({transfer:Tc});function u(){return{assetConversion:Mn,assets:Vn,balances:Kn,ethereumXcm:_s,polkadotXcm:zs,router:On,utility:Gn,xTokens:$s}}function Ye(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}import{Abi as ka,Snowbridge as Lc,Wormhole as Ca}from"@galacticcouncil/xc-core";var wa={};Nt(wa,{AssethubClient:()=>me,BaseClient:()=>we,HydrationClient:()=>Me});import{encodeLocation as vc}from"@galacticcouncil/common";import{hub as Bc,XcmVersionedAssetId as Pc}from"@galacticcouncil/descriptors";var we=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Bc}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:o}=n;return BigInt(a)-BigInt(o)}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 o=vc(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Pc.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Ec,XcmV5Junction as Fc,XcmVersionedLocation as Xc}from"@galacticcouncil/descriptors";import{encodeLocation as Ic}from"@galacticcouncil/common";import{Twox128 as Rc,u128 as _c}from"@polkadot-api/substrate-bindings";import{toHex as Sc}from"@polkadot-api/utils";var me=class extends we{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),a=Ic(n);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.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=Sc(Rc(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=_c.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=Xc.V5({parents:1,interior:Ec.X1(Fc.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 o=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as Dc}from"@galacticcouncil/descriptors";var Me=class extends we{constructor(e){super(e,Dc)}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:o}=n;return BigInt(a)-BigInt(o)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:o,frozen:i}=a;return BigInt(o)-BigInt(i)}};function Hc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=Ca.fromChain(n),i=Ca.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:ka.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Wc(){return{TokenRelayer:Hc}}function Mc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=Lc.fromChain(a),m=new we(o),c=new me(t.hub),l=Ls(e,o),[p,h]=await Promise.all([m.calculateDestinationFee(l,x),c.calculateDeliveryFee(l,o.parachainId)]),g=h+Dt(p,25n),k=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:ka.Snowbridge,address:i.getGateway(),args:[k,o.parachainId,g],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:g}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new me(t.hub),i=ca(e,a),m=Ls(e,a),[c,l,p,h,g]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,Jn),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+Dt(p,25n)+h+Dt(g,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:g}}}})}}function Vc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(ia(e,a,o,i),i){let g=new we(o),k=new we(i),E=Os(e,o),M=la(e,i,o),[_,Q]=await Promise.all([g.calculateDestinationFee(E,e),k.calculateDestinationFee(M,e)]),K=Q+_,w=Dt(K,20n),Ue=w-K;return{amount:w,breakdown:{reserveFee:Q,destinationFee:_,margin:Ue}}}let m=new we(o),c=ua(e,o),l=await m.calculateDestinationFee(c,e),p=Dt(l,20n),h=p-l;return{amount:p,breakdown:{totalFee:l,margin:h}}}})}}function A(){return{XcmPaymentApi:Vc,Snowbridge:Mc,Wormhole:Wc}}var Uc="0";function Kc(){return{build:async({address:t,chain:e})=>{let n=await new Me(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Uc,o=e.findAssetById(a);return o?o.asset:q}}}var Oc=()=>({accountCurrencyMap:Kc});function $t(){return{multiTransactionPayment:Oc}}import{mrl as Ba,Precompile as Pa,ProgramConfig as Ea,Wormhole as rs}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as Nc,NATIVE_MINT as Ta,TOKEN_PROGRAM_ID as Gc,createCloseAccountInstruction as qc,createInitializeAccountInstruction as jc,getMinimumBalanceForRentExemptAccount as zc,getAssociatedTokenAddress as $c}from"@solana/spl-token";import{Keypair as Js,PublicKey as Qs,SystemProgram as va}from"@solana/web3.js";import{UniversalAddress as Fa}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Xa,createTransferNativeWithPayloadInstruction as Ia,getWrappedMeta as Jc}from"@wormhole-foundation/sdk-solana-tokenbridge";var Qc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=rs.fromChain(m),p=rs.fromChain(t.moonchain),h=Pa.Bridge,g=await Ba.createPayload(i.chain,s),k=new Qs(o),E=new Fa(h),M=p.getWormholeId(),_=k,Q=0,K=Js.generate(),w=Js.generate(),Ue=await zc(c.connection),ft=va.createAccount({fromPubkey:_,newAccountPubkey:w.publicKey,lamports:Ue,space:Nc,programId:Gc}),qe=va.transfer({fromPubkey:_,lamports:n,toPubkey:w.publicKey}),et=jc(w.publicKey,Ta,_),je=Xa(l.getTokenBridge(),w.publicKey,_,n),tt=Ia(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,K.publicKey,w.publicKey,Ta,Q,n,E.toUint8Array(),M,g.toU8a()),Ot=qc(w.publicKey,_,_);return new Ea({instructions:[ft,qe,et,je,tt,Ot],signers:[K,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ue)})}})}),Yc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,sender:i,destination:m}=e,c=o.chain,l=c,p=rs.fromChain(c),h=rs.fromChain(t.moonchain),g=Pa.Bridge,k=await Ba.createPayload(m.chain,s),E=new Qs(i),M=o.chain.getAssetId(a),_=new Qs(M),Q=await $c(_,E),K=new Fa(g),w=h.getWormholeId();if(await Jc(l.connection,p.getTokenBridge(),_).catch(tt=>null).then(tt=>tt!=null))throw new Error("Wrapped assets not supported yet");let ft=0,qe=Js.generate(),et=Xa(p.getTokenBridge(),Q,E,n),je=Ia(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,qe.publicKey,Q,_,ft,n,K.toUint8Array(),w,k.toU8a());return new Ea({instructions:[et,je],signers:[qe],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ra=()=>({transferNativeWithPayload:Qc,transferTokenWithPayload:Yc});function _a(){return{TokenBridge:Ra}}function Jt(){return{Wormhole:_a}}import{mrl as Zc,MoveConfig as em,Precompile as tm,Wormhole as Sa}from"@galacticcouncil/xc-core";import{Transaction as sm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as nm,SUI_TYPE_ARG as am}from"@mysten/sui/utils";import{UniversalAddress as om}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as rm,getPackageId as Da}from"@wormhole-foundation/sdk-sui";var im=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=Sa.fromChain(m),p=Sa.fromChain(t.moonchain),h=0,g=tm.Bridge,k=await Zc.createPayload(i.chain,s),E=new om(g),M=p.getWormholeId(),_=am,[Q,K]=await Promise.all([Da(c.client,l.coreBridge),Da(c.client,l.tokenBridge)]),w=new sm,[Ue]=w.splitCoins(w.gas,[w.pure.u64(n)]),[ft]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[qe]=w.moveCall({target:`${K}::state::verified_asset`,arguments:[w.object(l.tokenBridge)],typeArguments:[_]}),et=!1,je=await(async()=>{let Tt=await rm(c.client,Q,o);if(Tt!==null)return w.object(Tt);{let[Yt]=w.moveCall({target:`${Q}::emitter::new`,arguments:[w.object(l.coreBridge)]});return et=!0,Yt}})(),[tt,Ot]=w.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[je,qe,Ue,w.pure.u16(M),w.pure.vector("u8",E.toUint8Array()),w.pure.vector("u8",k.toU8a()),w.pure.u32(h)],typeArguments:[_]});w.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[Ot],typeArguments:[_]});let[Bs]=w.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(l.tokenBridge),tt],typeArguments:[_]});return w.moveCall({target:`${Q}::publish_message::publish_message`,arguments:[w.object(l.coreBridge),ft,Bs,w.object(nm)]}),et&&w.transferObjects([je],w.pure.address(o)),new em({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),La=()=>({transferNativeWithPayload:im});function Ha(){return{TokenBridge:La}}function Ys(){return{Wormhole:Ha}}var Ma={};Nt(Ma,{Tag:()=>ct});var ct=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(ct||{});import{AssetRoute as Va}from"@galacticcouncil/xc-core";function Vt(t,e){return new Va({source:{asset:t,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:R().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new Va({source:{asset:t,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:D}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]})}var mm=[new is({source:{asset:D,balance:r().evm().native(),destinationFee:{asset:D,balance:r().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Vt(le,ee),Vt(Oe,xe),Vt(b,ye),Vt(f,be),Vt(Ke,he)],um=[new is({source:{asset:D,balance:r().evm().native(),fee:{asset:D,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:D,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:D}},contract:R().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(ke,ke),oe(ve,ve),oe(Be,Be),oe(Re,Re),oe(Se,Se),oe(De,De),oe(Fe,Fe),oe(Pe,Pe),oe(Xe,Xe),oe(_e,_e),oe(Le,Le),oe(We,We),oe(b,ht),oe(f,pt)],ny=[new is({source:{asset:D,balance:r().evm().native(),destinationFee:{asset:D,balance:r().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:R().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new is({source:{asset:le,balance:r().evm().erc20(),fee:{asset:D,balance:r().evm().native()},destinationFee:{asset:le,balance:r().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:R().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Ua=new cm({chain:I,routes:[...mm,...um]});var Ka=[Ua];import{AssetRoute as us,ChainRoutes as Na}from"@galacticcouncil/xc-core";import{AssetRoute as Zs}from"@galacticcouncil/xc-core";var wt=0,lm=t=>{let{source:e}=t;return!!e.feeSwap},dm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Oa=u().assetConversion().swapTokensForExactTokens({slippage:30});function fm(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:Ye(dm,Oa).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function cs(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:t,balance:r().substrate().assets().account(),swap:!0},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:Ye(lm,Oa).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ct(t,e,s){return new Zs({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().assets().account()},min:ot().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ms(t){return fm(t,d,.02)}var pm=[new us({source:{asset:x,balance:r().substrate().system().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().system().account()},min:ot().assets().asset()},destination:{chain:d,asset:x,fee:{amount:.001,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new us({source:{asset:P,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ct(f,d,.02),Ct(b,d,.02),ms(ze)],hm=[new us({source:{asset:P,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:$e,asset:P,fee:{amount:.001,asset:P}},extrinsic:u().polkadotXcm().transferAssets()})],bm=[Ct(f,B,.25),Ct(b,B,.25)],ym=[Ct(f,L,.03),Ct(b,L,.03)],xm=[new us({source:{asset:U,balance:r().substrate().foreignAssets().account(),fee:{asset:x,balance:r().substrate().system().account(),extra:wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:nt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Ga=new Na({chain:st,routes:[cs(f,d,.02),cs(b,d,.02),cs(x,d,.001)]}),qa=new Na({chain:C,routes:[...pm,...hm,...bm,...ym,...xm]});import{AssetRoute as Ze,ChainRoutes as gm}from"@galacticcouncil/xc-core";var Am=[new Ze({source:{asset:S,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:S,fee:{amount:.044306118,asset:S}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ze({source:{asset:F,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:F,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:F}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:T,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:X,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:H,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:W,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:j,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:j,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:j}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:f,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:b,balance:r().substrate().assets().account(),fee:{asset:S,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ja=new gm({chain:Z,routes:[...Am]});import{AssetRoute as Ve,ChainRoutes as wm}from"@galacticcouncil/xc-core";var Cm=[new Ve({source:{asset:F,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:F,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:W,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:j,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:j,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:j}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:x,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ve({source:{asset:S,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:S,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:T,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:X,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:625e-8,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:f,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],km=[new Ve({source:{asset:f,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:C,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ve({source:{asset:b,balance:r().substrate().tokens().accounts(),fee:{asset:F,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],za=new wm({chain:L,routes:[...Cm,...km]});import{AssetRoute as Ge,ChainRoutes as Fm}from"@galacticcouncil/xc-core";var Tm="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Tm?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as kt}from"@galacticcouncil/xc-core";var vm=.9,Bm=1,Pm=1,ls=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ds=u().router().buy({slippage:30});function V(t,e,s){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Ut(t,e,s){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function mt(t,e){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function fs(t){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:C,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function Em(t,e,s="LocalReserve"){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:Pm,asset:T}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ut(t){return Em(t,B,"DestinationReserve")}function $a(t,e,s,n,a,o){return new kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:Ye(ls,ds).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:vm})]),transact:{chain:B,fee:{amount:Bm,asset:T,balance:v()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function ps(t,e,s){return $a(t,e,s,0,R().Batch().batchAll([R().Erc20().approve(n=>n.getTokenBridge()),R().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function lt(t,e,s){return $a(t,e,s,A().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 kt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:s,asset:e,fee:{amount:A().Snowbridge().calculateOutboundFee({hub:C}),asset:x}},extrinsic:Ye(ls,ds).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Xm=[mt(x,C),mt(P,C),mt(f,C),mt(b,C),fs(ze)],Im=[V(S,Z),V(F,Z,L),V(T,Z,B),new Ge({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:X,fee:{amount:2e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ge({source:{asset:H,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(W,Z,L),V(j,Z,L),V(f,Z,C),V(b,Z,C)],Rm=[V(F,L),V(W,L),V(j,L),V(S,L,Z),V(T,L,B),new Ge({source:{asset:X,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:X,fee:{amount:5e-6,asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(f,L,C),V(b,L,C),new Ge({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],_m=[Ut(X,ge,62e-8),Ut(H,ge,.0019213457),Ut(q,ge,.5),Ut(f,ge,.3),Ut(b,ge,.3),new Ge({source:{asset:W,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:W,fee:{amount:.01,asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ge({source:{asset:x,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:x,fee:{amount:.05,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Sm=[V(q,B),V(T,B),V(f,B,C),V(b,B,C),ut(ee),ut(he),ut(ye),ut(be),ut(xe),ut(Y),ut(O)],Dm=[new Ge({source:{asset:U,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:nt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Lm=[V(He,It)],Hm=[new Ge({source:{asset:ue,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Pt,asset:ue,fee:{amount:.04,asset:ue}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Wm=[V(Ee,Et)],Mm=[new Ge({source:{asset:de,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Rt,asset:de,fee:{amount:.02,asset:de}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Vm=[new Ge({source:{asset:fe,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Xt,asset:fe,fee:{amount:1.1,asset:fe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Um=[V(Ie,Ft)],Km=[V(Te,Bt)],Om=[lt(ee,le,I),lt(Y,D,I),lt(xe,Oe,I),lt(be,f,I),lt(ye,b,I),ps(he,Ke,I)],Nm=[te(D,D,I),te(ke,ke,I),te(ve,ve,I),te(Be,Be,I),te(Re,Re,I),te(Se,Se,I),te(De,De,I),te(Le,Le,I),te(Fe,Fe,I),te(Pe,Pe,I),te(Xe,Xe,I),te(_e,_e,I),te(We,We,I),te(ht,b,I),te(pt,f,I)],Gm=[lt(O,O,at),ps(se,se,at),ps(ne,ne,at)],qm=[lt(ae,ae,_t)],jm=[mt(x,st),mt(f,st),mt(b,st)],Ja=new Fm({chain:d,routes:[...Km,...Xm,...Im,...Rm,...jm,...Hm,...Nm,...Om,..._m,...Wm,...Mm,...Sm,...Dm,...Um,...Vm,...Gm,...qm,...Lm]});import{AssetRoute as bs,ChainRoutes as zm}from"@galacticcouncil/xc-core";var en=()=>r().substrate().tokens().accounts();function hs(t,e){return new bs({source:{asset:t,balance:en(),fee:{asset:H,balance:en()},destinationFee:{balance:en()}},destination:{chain:d,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var $m=[new bs({source:{asset:H,balance:r().substrate().tokens().accounts(),destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new bs({source:{asset:X,balance:r().substrate().tokens().accounts(),fee:{asset:H,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new bs({source:{asset:q,balance:r().substrate().tokens().accounts(),fee:{asset:H,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:q,fee:{amount:.5,asset:q}},extrinsic:u().xTokens().transfer()}),hs(W,L),hs(f,C),hs(b,C),hs(x,C)],Qa=new zm({chain:ge,routes:[...$m]});import{AssetRoute as Qt,ChainRoutes as Ym}from"@galacticcouncil/xc-core";import{AssetRoute as Ya}from"@galacticcouncil/xc-core";function Jm(t,e,s){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function Qm(t,e,s){return new Ya({source:{asset:t,balance:r().evm().erc20(),fee:{asset:T,balance:r().evm().erc20()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:R().PolkadotXcm().transferAssetsToPara32()})}function dt(t,e){return Jm(t,d,e)}function ys(t,e){return Qm(t,d,e)}var Zm=[new Qt({source:{asset:T,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:R().PolkadotXcm().transferAssetsToPara32()}),ys(q,.6),ys(f,.3),ys(b,.3),dt(ee,.004),dt(he,.004),dt(ye,.004),dt(be,.004),dt(xe,1e-7),dt(Y,2e-6),dt(O,2e-5)],e0=[new Qt({source:{asset:f,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:C,asset:f,fee:{amount:.18,asset:f}},contract:R().PolkadotXcm().transferAssetsToPara32()}),new Qt({source:{asset:b,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:R().PolkadotXcm().transferAssetsToPara32()})],gx=[new Qt({source:{asset:Y,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{asset:Y,balance:r().evm().erc20()}},destination:{chain:I,asset:D,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:D}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Qt({source:{asset:ee,balance:r().evm().erc20(),fee:{asset:T,balance:r().substrate().system().account()},destinationFee:{asset:ee,balance:r().evm().erc20()}},destination:{chain:I,asset:le,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:le}},contract:R().Batch().batchAll([R().Erc20().approve(t=>t.getTokenRelayer()),R().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Za=new Ym({chain:B,routes:[...Zm,...e0]});import{AssetRoute as eo,ChainRoutes as t0}from"@galacticcouncil/xc-core";var s0=[new eo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:U,fee:{amount:.01,asset:U}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],n0=[new eo({source:{asset:U,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:C,asset:U,fee:{amount:.1,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],to=new t0({chain:nt,routes:[...s0,...n0]});import{AssetRoute as a0,ChainRoutes as o0}from"@galacticcouncil/xc-core";var r0=[new a0({source:{asset:He,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:He,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],so=new o0({chain:It,routes:[...r0]});import{AssetRoute as i0,ChainRoutes as c0}from"@galacticcouncil/xc-core";var m0=[new i0({source:{asset:ue,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ue,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ue}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],no=new c0({chain:Pt,routes:[...m0]});import{AssetRoute as u0,ChainRoutes as l0}from"@galacticcouncil/xc-core";var d0=[new u0({source:{asset:fe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.2,asset:fe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ao=new l0({chain:Xt,routes:[...d0]});import{AssetRoute as f0,ChainRoutes as p0}from"@galacticcouncil/xc-core";var h0=[new f0({source:{asset:Te,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Te,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:Te}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],oo=new p0({chain:Bt,routes:[...h0]});import{AssetRoute as b0,ChainRoutes as y0}from"@galacticcouncil/xc-core";var x0=[new b0({source:{asset:Ee,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ee,fee:{amount:2,asset:Ee}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],ro=new y0({chain:Et,routes:[...x0]});import{AssetRoute as g0,ChainRoutes as A0}from"@galacticcouncil/xc-core";var w0=[new g0({source:{asset:de,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:de,fee:{amount:.03,asset:de}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],io=new A0({chain:Rt,routes:[...w0]});import{AssetRoute as C0,ChainRoutes as k0}from"@galacticcouncil/xc-core";var T0=[new C0({source:{asset:Ie,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Ie,fee:{amount:.205,asset:Ie}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],co=new k0({chain:Ft,routes:[...T0]});var mo=[oo,qa,Ga,ja,za,Ja,Qa,Za,to,co,so,no,ao,ro,io];import{AssetRoute as tn,ChainRoutes as v0}from"@galacticcouncil/xc-core";var B0=[new tn({source:{asset:O,balance:r().solana().native(),destinationFee:{asset:O,balance:r().solana().native()}},destination:{chain:d,asset:O,fee:{amount:0,asset:O}},program:Jt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new tn({source:{asset:se,balance:r().solana().token(),fee:{asset:O,balance:r().solana().native()},destinationFee:{asset:se,balance:r().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:Jt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new tn({source:{asset:ne,balance:r().solana().token(),fee:{asset:O,balance:r().solana().native()},destinationFee:{asset:ne,balance:r().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:Jt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],uo=new v0({chain:at,routes:[...B0]});var lo=[uo];import{AssetRoute as P0,ChainRoutes as E0}from"@galacticcouncil/xc-core";var F0=[new P0({source:{asset:ae,balance:r().sui().native(),destinationFee:{asset:ae,balance:r().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:Ys().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],fo=new E0({chain:_t,routes:[...F0]});var po=[fo];import{AssetRoute as ho,ChainRoutes as X0}from"@galacticcouncil/xc-core";import{AssetRoute as Ug}from"@galacticcouncil/xc-core";var sn=.0015;var I0=new ho({source:{asset:P,balance:r().substrate().system().account(),fee:{asset:P,balance:r().substrate().system().account(),extra:sn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:C,asset:P,fee:{amount:.002,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),R0=new ho({source:{asset:P,balance:r().substrate().system().account(),fee:{asset:P,balance:r().substrate().system().account(),extra:sn},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:St,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),bo=new X0({chain:$e,routes:[R0,I0]});import{AssetRoute as yo,ChainRoutes as S0}from"@galacticcouncil/xc-core";var _0="0",Kt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===_0?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),nn=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap(),balance:Kt()});var D0=[new yo({source:{asset:f,balance:Kt(),fee:nn(),destinationFee:{balance:Kt()}},destination:{chain:$e,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],L0=[new yo({source:{asset:P,balance:Kt(),fee:nn(),destinationFee:{balance:Kt()}},destination:{chain:$e,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],xo=new S0({chain:St,routes:[...D0,...L0]});var go=[bo,xo];var H0=[...Ka,...mo,...lo,...po,...go],W0=new Map(H0.map(t=>[t.chain.key,t]));import{Parachain as Bo}from"@galacticcouncil/xc-core";import{TransferValidation as Ao,TransferValidationError as wo}from"@galacticcouncil/xc-core";var xs=class extends Ao{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new wo("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},gs=class extends Ao{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:o,destinationFeeBalance:i}=n,m=await this.getMin(a,o),c=o.copyWith({amount:o.amount+m});if(i.amount<c.amount)throw new wo("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 me(e).getAssetMin(s);let a=e.getAssetMin(s)*10**s.decimals;return BigInt(a)}};import{TransferValidation as Co,TransferValidationError as ko}from"@galacticcouncil/xc-core";var As=class extends Co{async skipFor(e){let{asset:s,destination:n}=e,a=n.chain;return await new me(a).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain;if(await new me(o).getSystemAccountBalance(n)===0n)throw new ko("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},ws=class extends Co{async validate(e){let{asset:s,sender:n,source:a}=e,o=a.chain;if(await new me(o).checkIfFrozen(n,s))throw new ko("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};import{TransferValidation as To,TransferValidationError as vo}from"@galacticcouncil/xc-core";var M0=12,V0=1,U0=18,Cs=class extends To{async skipFor(e){let{destination:s}=e,n=s.chain,a=new Me(n),o=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,o=a.chain,i=new Me(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||V0,p=c.decimals||M0,h=l*Math.pow(10,p),g=await i.getAssetBalance(n,m);if(BigInt(h*1.1)>g)throw new vo("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},ks=class extends To{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,o=a.chain,i=new Me(o),m=o.getBalanceAssetId(T),c=o.getAssetDecimals(T)||U0,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new vo("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ce={isAny:()=>!0,isHydration:t=>t instanceof Bo&&t.parachainId===2034,isHub:t=>t instanceof Bo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},K0=[new xs(Ce.isAny,Ce.isAny),new gs(Ce.isAny,Ce.isAny),new As(Ce.isAny,Ce.isHub),new ws(Ce.isHub,Ce.isAny),new Cs(Ce.isAny,Ce.isHydration),new ks(Ce.isHydration,Ce.isAny)];var Eo={};Nt(Eo,{AssethubDex:()=>on,HydrationDex:()=>an});import{pool as O0,sor as N0,tx as G0}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as q0}from"@galacticcouncil/common";import{memoize1 as j0}from"@thi.ng/memoize";var{PoolType:Ts}=O0,{TradeRouteBuilder:z0,TradeRouter:$0}=N0,{TxBuilderFactory:J0}=G0,an=class{chain;client;poolCtx;txBuilder;getCtx=j0(async e=>{console.log("init swap router",e,"\u2705");let s=new $0(this.poolCtx);return s.withFilter({useOnly:[Ts.Aave,Ts.Omni,Ts.Stable,Ts.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Me(this.chain),this.txBuilder=new J0(s.client,s.evm)}async getCalldata(e,s,n,a,o=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=a.amount,l=await this.getCtx(1),p=await l.getMostLiquidRoute(i,m),h=await l.getBuy(i,m,c,p);return(await(await this.txBuilder.trade(h).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),m=n.amount,c=await this.getCtx(1);try{let l=await c.getMostLiquidRoute(o,i),p=await c.getBuy(o,i,m,l);return{amount:p.amountIn,route:z0.build(p.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 o=a*s,i=Math.pow(10,q0);return o/BigInt(i)}};import{encodeLocation as Po}from"@galacticcouncil/common";var on=class{chain;client;constructor(e){this.chain=e,this.client=new me(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),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Po(a),Po(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as Y0}from"@galacticcouncil/xc-core";import{Asset as Q0}from"@galacticcouncil/xc-core";function vs(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new Q0({key:[a,s,e].join("_"),originSymbol:n})}function Fo(t){let{decimals:e,id:s}=t;return{asset:vs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Xo(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:vs(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 rn=class extends Y0{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!a(o)&&o.origin===1e3).forEach(o=>{let i=vs(o),m=Fo(o),c=Xo(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,ms(i)),this.updateChainRoute(s,fs(i))})}};export{rn as HydrationConfigService,So as assetsMap,Wa as builders,Dr as chainsMap,wa as clients,Eo as dex,W0 as routesMap,Ma as tags,K0 as validations};
|