@galacticcouncil/xc-cfg 0.17.0-pr294-e720946 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _n=Object.defineProperty;var Sr=Object.getOwnPropertyDescriptor;var Dr=Object.getOwnPropertyNames;var Lr=Object.prototype.hasOwnProperty;var Kt=(t,e)=>{for(var s in e)_n(t,s,{get:e[s],enumerable:!0})},Hr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Dr(e))!Lr.call(t,a)&&a!==s&&_n(t,a,{get:()=>e[a],enumerable:!(n=Sr(e,a))||n.enumerable});return t};var Wr=t=>Hr(_n({},"__esModule",{value:!0}),t);var hm={};Kt(hm,{HydrationConfigService:()=>Xn,assetsMap:()=>ba,builders:()=>na,chainsMap:()=>Ia,clients:()=>ea,dex:()=>ha,routesMap:()=>vr,tags:()=>aa,validations:()=>Br});module.exports=Wr(hm);var y=require("@galacticcouncil/xc-core"),Fe=new y.Asset({key:"aave",originSymbol:"AAVE"}),Xe=new y.Asset({key:"ajun",originSymbol:"AJUN"}),H=new y.Asset({key:"astr",originSymbol:"ASTR"}),_=new y.Asset({key:"bnc",originSymbol:"BNC"}),Sn=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"}),A=new y.Asset({key:"dot",originSymbol:"DOT"}),R=new y.Asset({key:"eth",originSymbol:"ETH"}),_e=new y.Asset({key:"ena",originSymbol:"ENA"}),at=new y.Asset({key:"eurc",originSymbol:"EURC"}),Qe=new y.Asset({...at,key:"eurc_mwh"}),v=new y.Asset({key:"glmr",originSymbol:"GLMR"}),J=new y.Asset({key:"hdx",originSymbol:"HDX"}),S=new y.Asset({key:"ibtc",originSymbol:"IBTC"}),M=new y.Asset({key:"intr",originSymbol:"INTR"}),oe=new y.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),I=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"}),ge=new y.Asset({key:"ewt",originSymbol:"EWT"}),He=new y.Asset({key:"link",originSymbol:"LINK"}),O=new y.Asset({key:"myth",originSymbol:"MYTH"}),We=new y.Asset({key:"neuro",originSymbol:"NEURO"}),xe=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"}),Ye=new y.Asset({key:"susds",originSymbol:"sUSDS"}),we=new y.Asset({...Ye,key:"susds_mwh"}),Ke=new y.Asset({key:"tbtc",originSymbol:"tBTC"}),Ne=new y.Asset({key:"trac",originSymbol:"TRAC"}),Oe=new y.Asset({key:"unq",originSymbol:"UNQ"}),h=new y.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new y.Asset({...h,key:"usdt_mwh"}),Ft=new y.Asset({...h,key:"usdt_eth"}),g=new y.Asset({key:"usdc",originSymbol:"USDC"}),ke=new y.Asset({...g,key:"usdc_mwh"}),Xt=new y.Asset({...g,key:"usdc_eth"}),Q=new y.Asset({key:"vastr",originSymbol:"vASTR"}),U=new y.Asset({key:"vdot",originSymbol:"vDOT"}),Nt=new y.Asset({key:"weth",originSymbol:"WETH"}),te=new y.Asset({...Nt,key:"weth_mwh"}),Ze=new y.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new y.Asset({...Ze,key:"wbtc_mwh"}),Ge=new y.Asset({key:"wsteth",originSymbol:"wstETH"}),ot=new y.Asset({key:"wud",originSymbol:"WUD"}),Mr=[Fe,Xe,H,Sn,Re,be,_,ye,ne,A,_e,at,Qe,R,v,J,S,M,I,Se,De,Le,ge,oe,He,O,We,Me,xe,re,Ve,q,ie,Ue,Ye,we,Ne,Ke,Oe,g,ke,Xt,h,Ce,Ft,Q,U,Ze,Te,Nt,te,Ge,ot],ba=new Map(Mr.map(t=>[t.key,t]));var _s=require("@galacticcouncil/xc-core");var ya=require("viem/chains"),Ot=new _s.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:R,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:at,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:g,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:_s.ChainEcosystem.Ethereum,evmChain:ya.base,explorer:"https://basescan.org/",instaBridge:{address:"0x73bab4cec782e1530117932cef8492ebe64e112e"},rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});var Ss=require("@galacticcouncil/xc-core");var ga=require("viem/chains"),D=new Ss.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:R,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Fe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Nt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ye,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ue,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ye,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ke,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ze,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Le,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,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:Ne,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Ss.ChainEcosystem.Ethereum,evmChain:ga.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 xa=[Ot,D];var Ds=require("@galacticcouncil/xc-core");var Gt=new Ds.Parachain({assetsData:[{asset:Xe,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ds.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Cs=require("@galacticcouncil/xc-core");var Aa={assetsData:[{asset:A,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ot,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:I,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Cs.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 Cs.Parachain({...Aa,key:"assethub",name:"AssetHub Polkadot"}),ft=new Cs.Parachain({...Aa,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Ls=require("@galacticcouncil/xc-core");var se=new Ls.Parachain({assetsData:[{asset:H,xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:_,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:S,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:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ls.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Hs=require("@galacticcouncil/xc-core");var Vr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],W=new Hs.Parachain({assetsData:[{asset:_,id:{Native:_.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:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:H,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:S,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Hs.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Vr});var qt=require("@galacticcouncil/xc-core");var jt=new qt.Parachain({assetsData:[{asset:be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:qt.XcmVersion.v3});var Ms=require("@galacticcouncil/xc-core"),Ca=require("viem");var wa=require("@polkadot-api/substrate-bindings"),Ur="ETH\0",Ws=class{async toH160(e){let s=(0,wa.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Ur),o=n.slice(a.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Kr=new Ws,Dn=["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"],Ln=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Nr=(0,Ca.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Dn,webSocket:Ln},default:{http:Dn,webSocket:Ln}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Ms.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Fe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Xe,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:_,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:A,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ne,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:R,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:S,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:ge,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Se,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:I,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:O,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:xe,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:Ye,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:Ne,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Oe,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:g,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:Qe,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:Xt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,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:Ft,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:U,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ze,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:Nt,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:ot,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Ms.ChainEcosystem.Polkadot,evmChain:Nr,evmResolver:Kr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Ln,rpcs:Dn});var $t=require("@galacticcouncil/xc-core");var ve=new $t.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:S,decimals:8,id:{Token:S.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:A,decimals:10,id:{Token:A.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:U,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:$t.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:$t.XcmVersion.v3});var Vs=require("@galacticcouncil/xc-core");var zt=new Vs.Parachain({assetsData:[{asset:De,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Vs.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 Us=require("@galacticcouncil/xc-core"),ka=require("viem");var Or=(0,ka.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}),P=new Us.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:Qe,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{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:A,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:g,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Us.ChainEcosystem.Polkadot,evmChain:Or,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});var Ks=require("@galacticcouncil/xc-core");var pt=new Ks.Parachain({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ks.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 Ns=require("@galacticcouncil/xc-core");var Jt=new Ns.Parachain({assetsData:[{asset:We,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Ns.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var Qt=require("@galacticcouncil/xc-core");var Yt=new Qt.Parachain({assetsData:[{asset:xe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Qt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Qt.XcmVersion.v3});var Os=require("@galacticcouncil/xc-core");var Gr={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Os.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"},Ta=new Os.Parachain({...Gr,key:"polkadot"});var Gs=require("@galacticcouncil/xc-core");var Zt=new Gs.Parachain({assetsData:[{asset:Oe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Gs.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var es=require("@galacticcouncil/xc-core");var ts=new es.Parachain({assetsData:[{asset:ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:es.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:es.XcmVersion.v3});var va=[Gt,k,ft,se,W,jt,d,zt,Jt,ve,P,pt,Yt,Ta,Zt,ts];var qs=require("@galacticcouncil/xc-core");var ht=new qs.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:qs.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 Ba=[ht];var js=require("@galacticcouncil/xc-core");var ss=new js.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:js.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Pa=[ss];var $s=require("@galacticcouncil/xc-core");var rt=new $s.Parachain({assetsData:[{asset:I,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:$s.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 zs=require("@galacticcouncil/xc-core");var ns=new zs.Parachain({assetsData:[{asset:Sn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:I,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:zs.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 Ea=[rt,ns];var qr=[...xa,...va,...Ba,...Pa,...Ea],Ia=new Map(qr.map(t=>[t.key,t]));var Jo=require("@galacticcouncil/xc-core");var oa=require("@galacticcouncil/xc-core");var na={};Kt(na,{AssetMinBuilder:()=>bt,BalanceBuilder:()=>r,ContractBuilder:()=>F,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>ct,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>vs,MoveBuilder:()=>sa,ProgramBuilder:()=>Bs,XcmTransferType:()=>ue,XcmVersion:()=>it});var Js=require("@galacticcouncil/xc-core");function bt(){return{assetRegistry:jr,assets:$r}}function jr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Js.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Js.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function $r(){return{asset:()=>({build:({asset:t})=>new Js.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var ks=require("@galacticcouncil/xc-core");function Fa(){return{erc20:Jr,native:zr}}function zr(){return{build:({address:t})=>new ks.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Jr(){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 ks.ContractConfig({abi:ks.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var as=require("@galacticcouncil/xc-core"),os=require("@galacticcouncil/common");function Xa(){return{assets:Qr,system:Zr,tokens:ei,ormlTokens:ti,foreignAssets:Yr}}function Qr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Yr(){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,os.encodeLocation)(a);return new as.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Zr(){return{account:()=>({build:({address:t})=>new as.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 ei(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.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 ti(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.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 Hn=require("@galacticcouncil/xc-core");function Ra(){return{native:si,token:ni}}function si(){return{build:({address:t})=>new Hn.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function ni(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Hn.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var _a=require("@galacticcouncil/xc-core");function Sa(){return{native:ai}}function ai(){return{build:({address:t})=>new _a.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function r(){return{evm:Fa,substrate:Xa,solana:Ra,sui:Sa}}var Rt=require("@galacticcouncil/xc-core"),Da=require("viem"),oi=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,Da.encodeFunctionData)({abi:Rt.Abi[i.module],functionName:i.func,args:i.args}));return new Rt.ContractConfig({abi:Rt.Abi.Batch,address:Rt.Precompile.Batch,args:[n,a,o,[]],func:"batchAll",module:"Batch"})}}),La=()=>({batchAll:oi});var is=require("@galacticcouncil/xc-core");function rs(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function qe(t){return typeof t=="object"?Object.values(t)[0]:t}function Ha(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:o}=e,i=o?o.chain:a.chain,m=is.Wormhole.fromChain(i),c=i.getAssetId(n);return new is.ContractConfig({abi:is.Abi.Erc20,address:qe(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var cs=require("@galacticcouncil/xc-core");var Wa=require("@galacticcouncil/common"),{H160:ri}=Wa.h160;function ii(t){let e=new Uint8Array(20);return e[15]=1,e[16]=t>>24&255,e[17]=t>>16&255,e[18]=t>>8&255,e[19]=t&255,"0x"+Buffer.from(e).toString("hex")}function ci(t){let e=t.replace("0x","").toLowerCase();return`0x${"0".repeat(24)}${e}`}var mi=t=>({build:async e=>{let{address:s,amount:n,asset:a,source:o,destination:i}=e,m=o.chain,c=i.chain,l=cs.Wormhole.fromChain(t.destChain),p=m.getAssetId(a),b=c.getAssetId(t.destAsset),x=m.getInstaBridge();if(!x)throw new Error(`InstaBridge not configured for ${m.name}`);return new cs.ContractConfig({abi:cs.Abi.InstaBridge,address:x,args:[qe(p),n,l.getWormholeId(),ii(b),ci(ri.fromAccount(s))],func:"bridgeViaWormhole",module:"InstaBridge"})}}),Ma=()=>({bridgeViaWormhole:mi});var je=require("@galacticcouncil/xc-core"),Ua=require("@galacticcouncil/common"),{Ss58Addr:Va}=je.addr;function ui(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Wn(t,e){let s=t.getAssetId(e);return typeof s=="string"?ui(s):s}function Ka(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let o=Wn(a.chain,s);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Va.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=Wn(a.chain,s),i=Wn(a.chain,a.destinationFeeBalance),m=Ua.big.toBigInt(n.fee.amount,n.fee.decimals);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Va.getPubKey(t),[{asset:o,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var yt=require("@galacticcouncil/xc-core");var{Ss58Addr:li}=yt.addr,di=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:o}=t,i=a.chain,m=o.chain,c=yt.Snowbridge.fromChain(i),l=i.getAssetId(n),p=qe(l),b=n.originSymbol==="ETH",x=o.feeBreakdown.bridgeFeeInDot,T=o.fee.amount;return new yt.ContractConfig({abi:yt.Abi.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,li.getPubKey(e)],x,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),Na=()=>({sendToken:di});var V=require("@galacticcouncil/xc-core"),Mn=require("@solana/web3.js"),Qs=require("@solana/spl-token");var fi=()=>({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,p=o.chain.getAssetId(a),b=0,x=await V.mrl.createPayload(i.chain,s);return new V.ContractConfig({abi:V.Abi.TokenBridge,address:m.getTokenBridge(),args:[qe(p),n,c.getWormholeId(),c.normalizeAddress(l),b,x.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),pi=()=>({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,p=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,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),hi=()=>({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),p=V.Wormhole.fromChain(c),b=c.getAssetId(n),x=e;if(c.isSolana()){let L=b==="SOL"?Qs.NATIVE_MINT:new Mn.PublicKey(b);x=(await(0,Qs.getAssociatedTokenAddress)(L,new Mn.PublicKey(e))).toBase58()}let T=m.getAssetId(n),X=0,K=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:l.getTokenBridge(),args:[qe(T),s,p.getWormholeId(),p.normalizeAddress(x),X,K],func:"transferTokens",module:"TokenBridge"})}}),bi=()=>({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"})}}),Oa=()=>({transferTokens:hi,transferTokensWithPayload:fi,wrapAndTransferETH:bi,wrapAndTransferETHWithPayload:pi});var _t=require("@galacticcouncil/xc-core");var yi=()=>({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=_t.Wormhole.fromChain(m),p=_t.Wormhole.fromChain(c),b=0,x=0,T=m.getAssetId(n);return new _t.ContractConfig({abi:_t.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[qe(T),s,b,p.getWormholeId(),p.normalizeAddress(e),x],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Ga=()=>({transferTokensWithRelay:yi});function qa(){return{TokenBridge:Oa,TokenRelayer:Ga}}function F(){return{Batch:La,Erc20:Ha,InstaBridge:Ma,PolkadotXcm:Ka,Snowbridge:Na,Wormhole:qa}}var $a=require("@galacticcouncil/xc-core"),ja="AssetConversion",gi=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),b=i.amount+i.amount*BigInt(t.slippage)/100n,x=m.amount;return new $a.ExtrinsicConfig({module:ja,func:e,getTx:T=>T.getUnsafeApi().tx[ja][e]({path:[l,p],amount_out:x,amount_in_max:b,send_to:s,keep_alive:!0})})}}},za=()=>({swapTokensForExactTokens:gi});var Ys=require("@galacticcouncil/descriptors"),Ja=require("@galacticcouncil/xc-core"),xi="Assets",Ai=()=>{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 Ja.ExtrinsicConfig({module:xi,func:t,getTx:l=>l.getTypedApi(Ys.hub).tx.Assets.transfer({id:Number(c),target:Ys.MultiAddress.Id(n),amount:m})})}}},Qa=()=>({transfer:Ai});var Za=require("@galacticcouncil/xc-core"),Ya="Balances",wi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Za.ExtrinsicConfig({module:Ya,func:e,getTx:n=>n.getUnsafeApi().tx[Ya][e]({dest:s,keep_alive:t})})}},eo=()=>({transferAll:wi});var to=require("@galacticcouncil/descriptors"),so=require("@galacticcouncil/xc-core"),Ci="Router",ki=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),b=i.amount,x=o.amount+o.amount*BigInt(t.slippage)/100n;return new so.ExtrinsicConfig({module:Ci,func:"buy",getTx:T=>T.getTypedApi(to.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:b,max_amount_in:x,route:m})})}}),no=()=>({buy:ki});var oo=require("@galacticcouncil/xc-core"),ao="Utility",Ti=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new oo.ExtrinsicConfig({module:ao,func:e,getTx:a=>{let o=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[ao][e]({calls:o})}})}}},ro=()=>({batchAll:Ti});var Zs=require("@galacticcouncil/xc-core"),Vn=require("polkadot-api"),co=require("viem");var it=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(it||{}),ue=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(ue||{});var io="EthereumXcm",vi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",o=(0,co.encodeFunctionData)({abi:Zs.Abi[n.module],functionName:n.func,args:n.args});return new Zs.ExtrinsicConfig({module:io,func:e,getTx:i=>i.getUnsafeApi().tx[io][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:Vn.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:Vn.Binary.fromHex(o),access_list:void 0}}})})}}},Un=()=>({transact:vi});var xt=require("@galacticcouncil/xc-core"),sn=require("@galacticcouncil/common");var ls=require("@galacticcouncil/xc-core"),Io=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var mo=require("@galacticcouncil/descriptors"),le=340282366920938463463374607431768211455n,St="0x0000000000000000000000000000000000000000000000000000000000000000",ms={parents:1,interior:mo.XcmV3Junctions.Here()},uo=0,lo=1e3,fo=1002,po=1,Dt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var ho="0x0000000000000000000000000000000000000000";var ee=require("@galacticcouncil/descriptors"),To=require("polkadot-api");var bo=require("@galacticcouncil/common"),Kn=require("@galacticcouncil/descriptors"),Nn=require("polkadot-api"),yo=require("@polkadot-api/substrate-bindings"),go=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Kn.XcmV3Junction.AccountKey20({key:Nn.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,yo.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Kn.XcmV3Junction.AccountId32({id:Nn.FixedSizeBinary.fromHex((0,go.toHex)(s.publicKey)),network:void 0})}function us(t,e,s){return bo.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var On=require("@galacticcouncil/xc-core");function xo(t,e){let s=On.multiloc.findNestedKey(t,"GeneralIndex"),n=On.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 Y(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var en={};Kt(en,{ETHER_TOKEN_ADDRESS:()=>qn,erc20Location:()=>Pi,erc20LocationReanchored:()=>Ei,ethereumLocation:()=>wo,parachainLocation:()=>Bi});var Be=require("@galacticcouncil/descriptors"),Gn=require("polkadot-api"),qn="0x0000000000000000000000000000000000000000",Ao=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function wo(t){return{parents:2,interior:Be.XcmV3Junctions.X1(Ao(t))}}function Bi(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function Pi(t,e){return e===qn?wo(t):{parents:2,interior:Be.XcmV3Junctions.X2([Ao(t),Be.XcmV3Junction.AccountKey20({key:Gn.Binary.fromHex(e)})])}}function Ei(t){return t===qn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:Gn.Binary.fromHex(t)}))}}var jn=require("@galacticcouncil/common"),Co=require("@galacticcouncil/xc-core");function Z(t,e){return Ii(e)>=4?(0,jn.encodeLocation)(t):Fi(t)}function Ii(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Fi(t){return{type:"Concrete",value:(0,jn.encodeLocation)(t)}}var Xi=1e3;function Ri(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 _i(t){if(t)return Ri(t)?Xi:Co.multiloc.findParachain(t)}function ko(t,e,s,n){let a=e.getAssetXcmLocation(t),o=_i(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 $n(t,e){let s="V4",n=Z(Y(e,t),s),a=To.Binary.fromHex(St);return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:ms,fun:ee.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(le)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:ms,fun:ee.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(j(Dt))}}),ee.XcmV4Instruction.SetTopic(a)]}var et=require("@galacticcouncil/descriptors");function vo(t,e){let s="V4",n=Z(Y(e,t),s),a=tn("V4",j(ho),j(Dt),n,St);return[et.XcmV4Instruction.WithdrawAsset([{id:ms,fun:et.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:et.XcmV3MultiassetFungibility.Fungible(le)}]),et.XcmV4Instruction.ClearOrigin(),et.XcmV4Instruction.BuyExecution({fees:{id:ms,fun:et.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:et.XcmV3WeightLimit.Unlimited()}),...a.value]}var E=require("@galacticcouncil/descriptors"),zn=require("polkadot-api");function Bo(t,e){let s="V4",n=Z(Y(e,t),s),a=zn.Binary.fromHex(St);return[E.XcmV4Instruction.WithdrawAsset([{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(le)}]),E.XcmV4Instruction.ClearOrigin(),E.XcmV4Instruction.BuyExecution({fees:{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:E.XcmV3Junctions.X1(j(Dt))}}),E.XcmV4Instruction.SetTopic(a)]}function Jn(t,e){let s="V4",n=Z(Y(e,t),s);return[E.XcmV4Instruction.BuyExecution({fees:{id:n,fun:E.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:E.XcmV3Junctions.X1(j(Dt))}})]}function Po(t,e,s){let n="V4",a=Z(Y(e,t),n),o=zn.Binary.fromHex(St),i=Jn(t,s);return[E.XcmV4Instruction.WithdrawAsset([{id:a,fun:E.XcmV3MultiassetFungibility.Fungible(le)}]),E.XcmV4Instruction.ClearOrigin(),E.XcmV4Instruction.BuyExecution({fees:{id:a,fun:E.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:E.XcmV3WeightLimit.Unlimited()}),E.XcmV4Instruction.DepositReserveAsset({assets:E.XcmV4AssetAssetFilter.Wild(E.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:E.XcmV3Junctions.X1(E.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),E.XcmV4Instruction.SetTopic(o)]}var Eo=[ls.ChainEcosystem.Polkadot,ls.ChainEcosystem.Kusama],Si={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},Di=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Li=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Eo.includes(t.ecosystem)&&Eo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Fo=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},tt=(t,e,s)=>{if(Li(e,s)){let a=s.ecosystem===ls.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===uo)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?lo:s.parachainId;return{type:t,value:{parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(n))}}},Lt=(t,e)=>({type:t,value:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),Qn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Di(s)?Si:s}}:{type:e},gt=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),Xo=(t,e,s)=>({type:t,value:[f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var tn=(t,e,s,n,a)=>{let o=Io.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:en.ethereumLocation(po),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:Hi(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)]}},Hi=t=>{let e=ls.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},Ro=(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)}})]}),_o=(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=Z(Y(i,s),c),p=Z(Y(i,n.fee),c),b=gt(l,e),x=gt(p,n.fee.amount),T="limited_reserve_transfer_assets";return new xt.ExtrinsicConfig({module:de,func:T,getTx:X=>{let K=X.getUnsafeApi().tx[de][T];return s.key===n.fee.key?K({dest:tt(c,i,m),beneficiary:Lt(c,o),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):xo(l,p)?K({dest:tt(c,i,m),beneficiary:Lt(c,o),assets:{type:c,value:[x,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):K({dest:tt(c,i,m),beneficiary:Lt(c,o),assets:{type:c,value:[b,x]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Mi=()=>({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=Z(Y(i,s),c),p=gt(l,e),b=tt(c,i,m),x=Lt(c,o),T={type:c,value:[p]},X="limited_teleport_assets";return new xt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:x,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Vi=()=>({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=Z(Y(i,s),c),p=gt(l,e),b=tt(c,i,m),x=Lt(c,o),T={type:c,value:[p]},X="reserve_transfer_assets";return new xt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:x,assets:T,fee_asset_item:0})})}}),Ui=()=>({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=Z(Y(i,s),c),p=gt(l,e),b=tt(c,i,m),x=Lt(c,o),T={type:c,value:[p]},X="transfer_assets";return new xt.ExtrinsicConfig({module:de,func:X,getTx:K=>K.getUnsafeApi().tx[de][X]({dest:b,beneficiary:x,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ki=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,b=a.chain,x=a.fee.amount,T=a.fee;c&&(b=c.chain,x=sn.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let X=j(i),K=c||b.usesCexForwarding?us(p,i,b):e,L=j(K),{transferType:z}=t,G=Z(Y(p,s),l),C=Z(Y(p,T),l),Je=gt(G,n),It=gt(C,x),st=s.isEqual(T),lt=tt(l,p,b),nt={type:l,value:st?[Je]:[It,Je]},dt=Qn(l,z,G),ws={type:l,value:st?G:C},Rn=Qn(l,z,C),Ut;Fo(G)&&a.chain.isEvmChain()?Ut=tn(l,L,X,G,o):Ut=Xo(l,L,nt.value.length);let Rs="transfer_assets_using_type_and_then";return new xt.ExtrinsicConfig({module:de,func:Rs,getTx:_r=>_r.getUnsafeApi().tx[de][Rs]({dest:lt,assets:nt,assets_transfer_type:dt,remote_fees_id:ws,fees_transfer_type:Rn,custom_xcm_on_dest:Ut,weight_limit:{type:"Unlimited"}})})}}),Ni=()=>{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=us(m,n,c),p=j(l),{fee:b}=o,x=Z(Y(c,b),i),T=sn.big.toBigInt(e.fee,b.decimals);return new xt.ExtrinsicConfig({module:de,func:t,getTx:X=>X.getUnsafeApi().tx[de][t]({dest:tt(i,m,c),message:Ro(i,p,x,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",p=m.chain,b=c.chain,x=us(p,i,b),T=j(x),X=j(a),K=Z(Y(b,o),l),{fee:L}=c,z=sn.big.toBigInt(e.fee,L.decimals),G=n>L.amount?n-(L.amount+z):n;return new xt.ExtrinsicConfig({module:de,func:t,getTx:C=>C.getUnsafeApi().tx[de][t]({dest:tt(l,p,b),message:_o(l,T,K,G,z,X)})})}})}},Yn=()=>({limitedReserveTransferAssets:Wi,limitedTeleportAssets:Mi,reserveTransferAssets:Vi,transferAssets:Ui,transferAssetsUsingTypeAndThen:Ki,send:Ni});var Lo=require("@galacticcouncil/xc-core"),Ho=require("@galacticcouncil/common");var Ts=require("@galacticcouncil/descriptors"),So=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X2([Ts.XcmV3Junction.Parachain(e.parachainId),s])}};var Do="XTokens",Oi=()=>({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?us(i,a,m):t,p=j(l),b=i.getAssetId(s),x=(0,Ho.encodeAssetId)(b),T="transfer";return new Lo.ExtrinsicConfig({module:Do,func:T,getTx:X=>X.getUnsafeApi().tx[Do][T]({currency_id:x,amount:e,dest:So(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),Zn=()=>({transfer:Oi});function u(){return{assetConversion:za,assets:Qa,balances:eo,ethereumXcm:Un,polkadotXcm:Yn,router:no,utility:ro,xTokens:Zn}}function ct(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 At=require("@galacticcouncil/xc-core");var ea={};Kt(ea,{AssethubClient:()=>fe,BaseClient:()=>Pe,HydrationClient:()=>$e});var Wo=require("@galacticcouncil/common"),nn=require("@galacticcouncil/descriptors"),Pe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??nn.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,Wo.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,nn.XcmVersionedAssetId.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var ds=require("@galacticcouncil/descriptors"),Mo=require("@galacticcouncil/common"),an=require("@polkadot-api/substrate-bindings"),Vo=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,Mo.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,Vo.toHex)((0,an.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let o=an.u128.dec(a);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let n=ds.XcmVersionedLocation.V5({parents:1,interior:ds.XcmV5Junctions.X1(ds.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 Uo=require("@galacticcouncil/descriptors");var $e=class extends Pe{constructor(e){super(e,Uo.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 Gi(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,o=At.Wormhole.fromChain(n),i=At.Wormhole.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:At.Abi.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function qi(){return{TokenRelayer:Gi}}function ji(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,o=s,i=At.Snowbridge.fromChain(a),m=new Pe(o),c=new fe(t.hub),l=$n(e,o),[p,b]=await Promise.all([m.calculateDestinationFee(l,A),c.calculateDeliveryFee(l,o.parachainId)]),x=b+rs(p,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:At.Abi.Snowbridge,address:i.getGateway(),args:[T,o.parachainId,x],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:x}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,o=new fe(t.hub),i=vo(e,a),m=$n(e,a),[c,l,p,b,x]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,fo),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(m,a.parachainId),o.calculateDestinationFee(m,s)]);return{amount:c+l+rs(p,25n)+b+rs(x,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:x}}}})}}function $i(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,o=n,i=t?.reserve;if(ko(e,a,o,i),i){let x=new Pe(o),T=new Pe(i),X=Jn(e,o),K=Po(e,i,o),[L,z]=await Promise.all([x.calculateDestinationFee(X,e),T.calculateDestinationFee(K,e)]),G=z+L,C=rs(G,20n),Je=C-G;return{amount:C,breakdown:{reserveFee:z,destinationFee:L,margin:Je}}}let m=new Pe(o),c=Bo(e,o),l=await m.calculateDestinationFee(c,e),p=rs(l,20n),b=p-l;return{amount:p,breakdown:{totalFee:l,margin:b}}}})}}function w(){return{XcmPaymentApi:$i,Snowbridge:ji,Wormhole:qi}}var zi="0";function Ji(){return{build:async({address:t,chain:e})=>{let n=await new $e(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():zi,o=e.findAssetById(a);return o?o.asset:J}}}var Qi=()=>({accountCurrencyMap:Ji});function vs(){return{multiTransactionPayment:Qi}}var pe=require("@galacticcouncil/xc-core"),ce=require("@solana/spl-token"),ze=require("@solana/web3.js"),ta=require("@wormhole-foundation/sdk-connect"),wt=require("@wormhole-foundation/sdk-solana-tokenbridge"),Yi=()=>({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),p=pe.Wormhole.fromChain(t.moonchain),b=pe.Precompile.Bridge,x=await pe.mrl.createPayload(i.chain,s),T=new ze.PublicKey(o),X=new ta.UniversalAddress(b),K=p.getWormholeId(),L=T,z=0,G=ze.Keypair.generate(),C=ze.Keypair.generate(),Je=await(0,ce.getMinimumBalanceForRentExemptAccount)(c.connection),It=ze.SystemProgram.createAccount({fromPubkey:L,newAccountPubkey:C.publicKey,lamports:Je,space:ce.ACCOUNT_SIZE,programId:ce.TOKEN_PROGRAM_ID}),st=ze.SystemProgram.transfer({fromPubkey:L,lamports:n,toPubkey:C.publicKey}),lt=(0,ce.createInitializeAccountInstruction)(C.publicKey,ce.NATIVE_MINT,L),nt=(0,wt.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),C.publicKey,L,n),dt=(0,wt.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),o,G.publicKey,C.publicKey,ce.NATIVE_MINT,z,n,X.toUint8Array(),K,x.toU8a()),ws=(0,ce.createCloseAccountInstruction)(C.publicKey,L,L);return new pe.ProgramConfig({instructions:[It,st,lt,nt,dt,ws],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Je)})}})}),Zi=()=>({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=pe.Wormhole.fromChain(c),b=pe.Wormhole.fromChain(t.moonchain),x=pe.Precompile.Bridge,T=await pe.mrl.createPayload(m.chain,s),X=new ze.PublicKey(i),K=o.chain.getAssetId(a),L=new ze.PublicKey(K),z=await(0,ce.getAssociatedTokenAddress)(L,X),G=new ta.UniversalAddress(x),C=b.getWormholeId();if(await(0,wt.getWrappedMeta)(l.connection,p.getTokenBridge(),L).catch(dt=>null).then(dt=>dt!=null))throw new Error("Wrapped assets not supported yet");let It=0,st=ze.Keypair.generate(),lt=(0,wt.createApproveAuthoritySignerInstruction)(p.getTokenBridge(),z,X,n),nt=(0,wt.createTransferNativeWithPayloadInstruction)(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,st.publicKey,z,L,It,n,G.toUint8Array(),C,T.toU8a());return new pe.ProgramConfig({instructions:[lt,nt],signers:[st],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ko=()=>({transferNativeWithPayload:Yi,transferTokenWithPayload:Zi});function No(){return{TokenBridge:Ko}}function Bs(){return{Wormhole:No}}var mt=require("@galacticcouncil/xc-core"),Oo=require("@mysten/sui/transactions"),on=require("@mysten/sui/utils"),Go=require("@wormhole-foundation/sdk-connect"),Ps=require("@wormhole-foundation/sdk-sui"),ec=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:o,destination:i}=e,m=a.chain,c=m,l=mt.Wormhole.fromChain(m),p=mt.Wormhole.fromChain(t.moonchain),b=0,x=mt.Precompile.Bridge,T=await mt.mrl.createPayload(i.chain,s),X=new Go.UniversalAddress(x),K=p.getWormholeId(),L=on.SUI_TYPE_ARG,[z,G]=await Promise.all([(0,Ps.getPackageId)(c.client,l.coreBridge),(0,Ps.getPackageId)(c.client,l.tokenBridge)]),C=new Oo.Transaction,[Je]=C.splitCoins(C.gas,[C.pure.u64(n)]),[It]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[st]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[L]}),lt=!1,nt=await(async()=>{let Ut=await(0,Ps.getOldestEmitterCapObjectId)(c.client,z,o);if(Ut!==null)return C.object(Ut);{let[Rs]=C.moveCall({target:`${z}::emitter::new`,arguments:[C.object(l.coreBridge)]});return lt=!0,Rs}})(),[dt,ws]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[nt,st,Je,C.pure.u16(K),C.pure.vector("u8",X.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[L]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[ws],typeArguments:[L]});let[Rn]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),dt],typeArguments:[L]});return C.moveCall({target:`${z}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),It,Rn,C.object(on.SUI_CLOCK_OBJECT_ID)]}),lt&&C.transferObjects([nt],C.pure.address(o)),new mt.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),qo=()=>({transferNativeWithPayload:ec});function jo(){return{TokenBridge:qo}}function sa(){return{Wormhole:jo}}var aa={};Kt(aa,{Tag:()=>ut});var ut=(o=>(o.InstaBridge="InstaBridge",o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(ut||{});function $o(t,e){return new oa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:F().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})}function zo(t,e){return new oa.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:F().InstaBridge().bridgeViaWormhole({destChain:P,destAsset:e}),tags:["InstaBridge"]})}var tc=[$o(at,Qe)],sc=[zo(at,Qe)],Qo=new Jo.ChainRoutes({chain:Ot,routes:[...tc,...sc]});var Ht=require("@galacticcouncil/xc-core");var ra=require("@galacticcouncil/xc-core");function fs(t,e){return new ra.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:t,balance:r().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:F().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})}function me(t,e){return new ra.AssetRoute({source:{asset:t,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:R}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]})}var nc=[new Ht.AssetRoute({source:{asset:R,balance:r().evm().native(),destinationFee:{asset:R,balance:r().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:F().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),fs(ye,ne),fs(Ze,Te),fs(g,ke),fs(h,Ce),fs(Ye,we)],ac=[new Ht.AssetRoute({source:{asset:R,balance:r().evm().native(),fee:{asset:R,balance:r().evm().native()},destinationFee:{balance:r().evm().native()}},destination:{chain:d,asset:R,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:R}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]}),me(Fe,Fe),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(Ne,Ne),me(Ge,Ge),me(g,Xt),me(h,Ft)],ep=[new Ht.AssetRoute({source:{asset:R,balance:r().evm().native(),destinationFee:{asset:R,balance:r().evm().erc20()}},destination:{chain:P,asset:te,fee:{amount:0,asset:te}},contract:F().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Ht.AssetRoute({source:{asset:ye,balance:r().evm().erc20(),fee:{asset:R,balance:r().evm().native()},destinationFee:{asset:ye,balance:r().evm().erc20()}},destination:{chain:P,asset:ne,fee:{amount:0,asset:ne}},contract:F().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Yo=new Ht.ChainRoutes({chain:D,routes:[...nc,...ac]});var Zo=[Qo,Yo];var Ct=require("@galacticcouncil/xc-core");var rn=require("@galacticcouncil/xc-core");var Wt=0,oc=t=>{let{source:e}=t;return!!e.feeSwap},rc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},er=u().assetConversion().swapTokensForExactTokens({slippage:30});function ic(t,e,s){return new rn.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().assets().account()},min:bt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:ct(rc,er).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function cn(t,e,s){return new rn.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:bt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:ct(oc,er).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Mt(t,e,s){return new rn.AssetRoute({source:{asset:t,balance:r().substrate().assets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().assets().account()},min:bt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function mn(t){return ic(t,d,.02)}var cc=[new Ct.AssetRoute({source:{asset:A,balance:r().substrate().system().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().system().account()},min:bt().assets().asset()},destination:{chain:d,asset:A,fee:{amount:.001,asset:A}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Ct.AssetRoute({source:{asset:I,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:d,asset:I,fee:{amount:1e-4,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Mt(h,d,.02),Mt(g,d,.02),mn(ot)],mc=[new Ct.AssetRoute({source:{asset:I,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:rt,asset:I,fee:{amount:.001,asset:I}},extrinsic:u().polkadotXcm().transferAssets()})],uc=[Mt(h,P,.25),Mt(g,P,.25)],lc=[Mt(h,W,.03),Mt(g,W,.03)],dc=[new Ct.AssetRoute({source:{asset:O,balance:r().substrate().foreignAssets().account(),fee:{asset:A,balance:r().substrate().system().account(),extra:Wt},destinationFee:{balance:r().substrate().foreignAssets().account()}},destination:{chain:pt,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],tr=new Ct.ChainRoutes({chain:ft,routes:[cn(h,d,.02),cn(g,d,.02),cn(A,d,.001)]}),sr=new Ct.ChainRoutes({chain:k,routes:[...cc,...mc,...uc,...lc,...dc]});var Ee=require("@galacticcouncil/xc-core");var fc=[new Ee.AssetRoute({source:{asset:H,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:H,fee:{amount:.044306118,asset:H}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ee.AssetRoute({source:{asset:_,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:v,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:P}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:S,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:S,fee:{amount:2e-6,asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:M,balance:r().substrate().assets().account(),fee:{asset:H,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:H,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:Q,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:h,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:g,balance:r().substrate().assets().account(),fee:{asset:H,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().assets().account()}},destination:{chain:d,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],nr=new Ee.ChainRoutes({chain:se,routes:[...fc]});var he=require("@galacticcouncil/xc-core");var pc=[new he.AssetRoute({source:{asset:_,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:_,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:U,balance:r().substrate().tokens().accounts(),fee:{asset:_,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:Q,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:A,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:A,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new he.AssetRoute({source:{asset:H,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:se}),asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:v,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:P}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:S,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:S,fee:{amount:625e-8,asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:h,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:_,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().limitedReserveTransferAssets()})],hc=[new he.AssetRoute({source:{asset:h,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:g,balance:r().substrate().tokens().accounts(),fee:{asset:_,balance:r().substrate().system().account()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:k,asset:g,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ar=new he.ChainRoutes({chain:W,routes:[...pc,...hc]});var Ae=require("@galacticcouncil/xc-core");var bc="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===bc?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),$=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:B()});var kt=require("@galacticcouncil/xc-core");var yc=.9,gc=1,xc=1,un=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ln=u().router().buy({slippage:30});function N(t,e,s){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),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 ps(t,e,s){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Tt(t,e){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function dn(t){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:ct(un,ln).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function Ac(t,e,s="LocalReserve"){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:xc,asset:v}},extrinsic:ct(un,ln).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function vt(t){return Ac(t,P,"DestinationReserve")}function or(t,e,s,n,a,o){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:ct(un,ln).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:yc})]),transact:{chain:P,fee:{amount:gc,asset:v,balance:B()},extrinsic:u().ethereumXcm().transact(a)},tags:o})}function Es(t,e,s){return or(t,e,s,0,F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenBridge()),F().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Bt(t,e,s){return or(t,e,s,w().Wormhole().TokenRelayer().calculateRelayerFee(),F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function ae(t,e,s){return new kt.AssetRoute({source:{asset:t,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:s,asset:e,fee:{amount:w().Snowbridge().calculateOutboundFee({hub:k}),asset:A}},extrinsic:ct(un,ln).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var wc=[Tt(A,k),Tt(I,k),Tt(h,k),Tt(g,k),dn(ot)],Cc=[N(H,se),N(_,se,W),N(v,se,P),new Ae.AssetRoute({source:{asset:S,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:se,asset:S,fee:{amount:2e-6,asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:M,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:se,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),N(U,se,W),N(Q,se,W),N(h,se,k),N(g,se,k)],kc=[N(_,W),N(U,W),N(Q,W),N(H,W,se),N(v,W,P),new Ae.AssetRoute({source:{asset:S,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:W,asset:S,fee:{amount:5e-6,asset:S}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),N(h,W,k),N(g,W,k),new Ae.AssetRoute({source:{asset:A,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:W,asset:A,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Tc=[ps(S,ve,62e-8),ps(M,ve,.0019213457),ps(J,ve,.5),ps(h,ve,.3),ps(g,ve,.3),new Ae.AssetRoute({source:{asset:U,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:ve,asset:U,fee:{amount:.01,asset:A}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ae.AssetRoute({source:{asset:A,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:ve,asset:A,fee:{amount:.05,asset:A}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],vc=[N(J,P),N(v,P),N(h,P,k),N(g,P,k),vt(ne),vt(we),vt(ke),vt(Ce),vt(Te),vt(te),vt(q)],Bc=[new Ae.AssetRoute({source:{asset:O,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:pt,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Pc=[N(Oe,Zt)],Ec=[new Ae.AssetRoute({source:{asset:be,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:jt,asset:be,fee:{amount:.04,asset:be}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ic=[N(De,zt)],Fc=[new Ae.AssetRoute({source:{asset:ge,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:ts,asset:ge,fee:{amount:.02,asset:ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Xc=[new Ae.AssetRoute({source:{asset:xe,balance:B(),fee:$(),destinationFee:{balance:B()}},destination:{chain:Yt,asset:xe,fee:{amount:1.1,asset:xe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Rc=[N(We,Jt)],_c=[N(Xe,Gt)],Sc=[Es(Qe,at,Ot)],Dc=[Bt(ne,ye,D),Bt(te,R,D),Bt(Te,Ze,D),Bt(Ce,h,D),Bt(ke,g,D),Es(we,Ye,D)],Lc=[ae(R,R,D),ae(Fe,Fe,D),ae(Re,Re,D),ae(_e,_e,D),ae(Me,Me,D),ae(Ue,Ue,D),ae(Ke,Ke,D),ae(Ne,Ne,D),ae(Le,Le,D),ae(Se,Se,D),ae(He,He,D),ae(Ve,Ve,D),ae(Ge,Ge,D),ae(Xt,g,D),ae(Ft,h,D)],Hc=[Bt(q,q,ht),Es(oe,oe,ht),Es(re,re,ht)],Wc=[Bt(ie,ie,ss)],Mc=[Tt(A,ft),Tt(h,ft),Tt(g,ft)],rr=new Ae.ChainRoutes({chain:d,routes:[..._c,...wc,...Cc,...Sc,...kc,...Mc,...Ec,...Lc,...Dc,...Tc,...Ic,...Fc,...vc,...Bc,...Rc,...Xc,...Hc,...Wc,...Pc]});var Vt=require("@galacticcouncil/xc-core");var ia=()=>r().substrate().tokens().accounts();function fn(t,e){return new Vt.AssetRoute({source:{asset:t,balance:ia(),fee:{asset:M,balance:ia()},destinationFee:{balance:ia()}},destination:{chain:d,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var Vc=[new Vt.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 Vt.AssetRoute({source:{asset:S,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:S,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Vt.AssetRoute({source:{asset:J,balance:r().substrate().tokens().accounts(),fee:{asset:M,balance:r().substrate().tokens().accounts()},destinationFee:{balance:r().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:.5,asset:J}},extrinsic:u().xTokens().transfer()}),fn(U,W),fn(h,k),fn(g,k),fn(A,k)],ir=new Vt.ChainRoutes({chain:ve,routes:[...Vc]});var Et=require("@galacticcouncil/xc-core");var ca=require("@galacticcouncil/xc-core");function Uc(t,e,s){return new ca.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:F().PolkadotXcm().transferAssetsToPara32()})}function Kc(t,e,s){return new ca.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:F().PolkadotXcm().transferAssetsToPara32()})}function Pt(t,e){return Uc(t,d,e)}function pn(t,e){return Kc(t,d,e)}var Nc=[new Et.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:F().PolkadotXcm().transferAssetsToPara32()}),pn(J,.6),pn(h,.3),pn(g,.3),Pt(ne,.004),Pt(we,.004),Pt(ke,.004),Pt(Ce,.004),Pt(Te,1e-7),Pt(te,2e-6),Pt(q,2e-5)],Oc=[new Et.AssetRoute({source:{asset:h,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:h,fee:{amount:.18,asset:h}},contract:F().PolkadotXcm().transferAssetsToPara32()}),new Et.AssetRoute({source:{asset:g,balance:r().evm().erc20(),fee:{asset:v,balance:r().substrate().system().account()},destinationFee:{balance:r().evm().erc20()}},destination:{chain:k,asset:g,fee:{amount:.18,asset:g}},contract:F().PolkadotXcm().transferAssetsToPara32()})],ch=[new Et.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:D,asset:R,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:R}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Et.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:D,asset:ye,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:ye}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],cr=new Et.ChainRoutes({chain:P,routes:[...Nc,...Oc]});var Is=require("@galacticcouncil/xc-core");var Gc=[new Is.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:O,fee:{amount:.01,asset:O}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],qc=[new Is.AssetRoute({source:{asset:O,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:O,fee:{amount:.1,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],mr=new Is.ChainRoutes({chain:pt,routes:[...Gc,...qc]});var hn=require("@galacticcouncil/xc-core");var jc=[new hn.AssetRoute({source:{asset:Oe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Oe,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Oe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ur=new hn.ChainRoutes({chain:Zt,routes:[...jc]});var bn=require("@galacticcouncil/xc-core");var $c=[new bn.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()})],lr=new bn.ChainRoutes({chain:jt,routes:[...$c]});var yn=require("@galacticcouncil/xc-core");var zc=[new yn.AssetRoute({source:{asset:xe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:xe,fee:{amount:.2,asset:xe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],dr=new yn.ChainRoutes({chain:Yt,routes:[...zc]});var gn=require("@galacticcouncil/xc-core");var Jc=[new gn.AssetRoute({source:{asset:Xe,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:Xe,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Xe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],fr=new gn.ChainRoutes({chain:Gt,routes:[...Jc]});var xn=require("@galacticcouncil/xc-core");var Qc=[new xn.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"})})],pr=new xn.ChainRoutes({chain:zt,routes:[...Qc]});var An=require("@galacticcouncil/xc-core");var Yc=[new An.AssetRoute({source:{asset:ge,balance:r().substrate().system().account(),destinationFee:{balance:r().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.03,asset:ge}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],hr=new An.ChainRoutes({chain:ts,routes:[...Yc]});var wn=require("@galacticcouncil/xc-core");var Zc=[new wn.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()})],br=new wn.ChainRoutes({chain:Jt,routes:[...Zc]});var yr=[fr,sr,tr,nr,ar,rr,ir,cr,mr,br,ur,lr,dr,pr,hr];var hs=require("@galacticcouncil/xc-core");var em=[new hs.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:Bs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),new hs.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:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]}),new hs.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:Bs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})],gr=new hs.ChainRoutes({chain:ht,routes:[...em]});var xr=[gr];var Cn=require("@galacticcouncil/xc-core");var tm=[new Cn.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:sa().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:P}),tags:["Mrl","Wormhole"]})],Ar=new Cn.ChainRoutes({chain:ss,routes:[...tm]});var wr=[Ar];var Fs=require("@galacticcouncil/xc-core");var sm=require("@galacticcouncil/xc-core");var ma=.0015;var nm=new Fs.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),fee:{asset:I,balance:r().substrate().system().account(),extra:ma},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:k,asset:I,fee:{amount:.002,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),am=new Fs.AssetRoute({source:{asset:I,balance:r().substrate().system().account(),fee:{asset:I,balance:r().substrate().system().account(),extra:ma},destinationFee:{balance:r().substrate().system().account()}},destination:{chain:ns,asset:I,fee:{amount:.0012,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Cr=new Fs.ChainRoutes({chain:rt,routes:[am,nm]});var Xs=require("@galacticcouncil/xc-core");var om="0",bs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===om?r().substrate().system().account().build({address:t,asset:e,chain:s}):r().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),ua=()=>({asset:vs().multiTransactionPayment().accountCurrencyMap(),balance:bs()});var rm=[new Xs.AssetRoute({source:{asset:h,balance:bs(),fee:ua(),destinationFee:{balance:bs()}},destination:{chain:rt,asset:h,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],im=[new Xs.AssetRoute({source:{asset:I,balance:bs(),fee:ua(),destinationFee:{balance:bs()}},destination:{chain:rt,asset:I,fee:{amount:.0012,asset:I}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],kr=new Xs.ChainRoutes({chain:ns,routes:[...rm,...im]});var Tr=[Cr,kr];var cm=[...Zo,...yr,...xr,...wr,...Tr],vr=new Map(cm.map(t=>[t.chain.key,t]));var la=require("@galacticcouncil/xc-core");var ys=require("@galacticcouncil/xc-core");var kn=class extends ys.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:o}=s;if(o.amount<a.amount)throw new ys.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Tn=class extends ys.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 ys.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 gs=require("@galacticcouncil/xc-core");var vn=class extends gs.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 gs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},Bn=class extends gs.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 gs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var xs=require("@galacticcouncil/xc-core");var mm=12,um=1,lm=18,Pn=class extends xs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new $e(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 $e(o),m=await i.getFeeAsset(n),c=o.findAssetById(m),l=c.min||um,p=c.decimals||mm,b=l*Math.pow(10,p),x=await i.getAssetBalance(n,m);if(BigInt(b*1.1)>x)throw new xs.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},En=class extends xs.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 $e(o),m=o.getBalanceAssetId(v),c=o.getAssetDecimals(v)||lm,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new xs.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ie={isAny:()=>!0,isHydration:t=>t instanceof la.Parachain&&t.parachainId===2034,isHub:t=>t instanceof la.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Br=[new kn(Ie.isAny,Ie.isAny),new Tn(Ie.isAny,Ie.isAny),new vn(Ie.isAny,Ie.isHub),new Bn(Ie.isHub,Ie.isAny),new Pn(Ie.isAny,Ie.isHydration),new En(Ie.isHydration,Ie.isAny)];var ha={};Kt(ha,{AssethubDex:()=>pa,HydrationDex:()=>da});var As=require("@galacticcouncil/sdk-next"),Er=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:In}=As.pool,{TradeRouteBuilder:dm,TradeRouter:fm}=As.sor,{TxBuilderFactory:pm}=As.tx,da=class{chain;client;poolCtx;txBuilder;getCtx=Pr(async e=>{console.log("init swap router",e,"\u2705");let s=new fm(this.poolCtx);return s.withFilter({useOnly:[In.Aave,In.Omni,In.Stable,In.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new $e(this.chain),this.txBuilder=new pm(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),b=await l.getBuy(i,m,c,p);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),p=await c.getBuy(o,i,m,l);return{amount:p.amountIn,route:dm.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,Er.RUNTIME_DECIMALS);return o/BigInt(i)}};var fa=require("@galacticcouncil/common"),pa=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,fa.encodeLocation)(a),(0,fa.encodeLocation)(o),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var Rr=require("@galacticcouncil/xc-core");var Ir=require("@galacticcouncil/xc-core");function Fn(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new Ir.Asset({key:[a,s,e].join("_"),originSymbol:n})}function Fr(t){let{decimals:e,id:s}=t;return{asset:Fn(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:Fn(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 Xn=class extends Rr.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=Fn(o),m=Fr(o),c=Xr(o);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,mn(i)),this.updateChainRoute(s,dn(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
|
1
|
+
"use strict";var In=Object.defineProperty;var Er=Object.getOwnPropertyDescriptor;var Fr=Object.getOwnPropertyNames;var Xr=Object.prototype.hasOwnProperty;var Ut=(t,e)=>{for(var s in e)In(t,s,{get:e[s],enumerable:!0})},Ir=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Fr(e))!Xr.call(t,a)&&a!==s&&In(t,a,{get:()=>e[a],enumerable:!(n=Er(e,a))||n.enumerable});return t};var Rr=t=>Ir(In({},"__esModule",{value:!0}),t);var om={};Ut(om,{HydrationConfigService:()=>Fn,assetsMap:()=>fa,builders:()=>ta,chainsMap:()=>Ba,clients:()=>Yn,dex:()=>da,routesMap:()=>gr,tags:()=>sa,validations:()=>Ar});module.exports=Rr(om);var y=require("@galacticcouncil/xc-core"),Ie=new y.Asset({key:"aave",originSymbol:"AAVE"}),Re=new y.Asset({key:"ajun",originSymbol:"AJUN"}),H=new y.Asset({key:"astr",originSymbol:"ASTR"}),R=new y.Asset({key:"bnc",originSymbol:"BNC"}),Rn=new y.Asset({key:"bsx",originSymbol:"BSX"}),_e=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"}),I=new y.Asset({key:"eth",originSymbol:"ETH"}),Se=new y.Asset({key:"ena",originSymbol:"ENA"}),ft=new y.Asset({key:"eurc",originSymbol:"EURC"}),nt=new y.Asset({...ft,key:"eurc_mwh"}),v=new y.Asset({key:"glmr",originSymbol:"GLMR"}),J=new y.Asset({key:"hdx",originSymbol:"HDX"}),_=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"}),De=new y.Asset({key:"ldo",originSymbol:"LDO"}),Le=new y.Asset({key:"laos",originSymbol:"LAOS"}),He=new y.Asset({key:"lbtc",originSymbol:"LBTC"}),xe=new y.Asset({key:"ewt",originSymbol:"EWT"}),We=new y.Asset({key:"link",originSymbol:"LINK"}),O=new y.Asset({key:"myth",originSymbol:"MYTH"}),Me=new y.Asset({key:"neuro",originSymbol:"NEURO"}),ge=new y.Asset({key:"pen",originSymbol:"PEN"}),Ve=new y.Asset({key:"paxg",originSymbol:"PAXG"}),re=new y.Asset({key:"prime",originSymbol:"PRIME"}),Ke=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"}),Qe=new y.Asset({key:"susds",originSymbol:"sUSDS"}),we=new y.Asset({...Qe,key:"susds_mwh"}),Ne=new y.Asset({key:"tbtc",originSymbol:"tBTC"}),Oe=new y.Asset({key:"trac",originSymbol:"TRAC"}),Ge=new y.Asset({key:"unq",originSymbol:"UNQ"}),p=new y.Asset({key:"usdt",originSymbol:"USDT"}),Ce=new y.Asset({...p,key:"usdt_mwh"}),Xt=new y.Asset({...p,key:"usdt_eth"}),x=new y.Asset({key:"usdc",originSymbol:"USDC"}),ke=new y.Asset({...x,key:"usdc_mwh"}),It=new y.Asset({...x,key:"usdc_eth"}),Q=new y.Asset({key:"vastr",originSymbol:"vASTR"}),K=new y.Asset({key:"vdot",originSymbol:"vDOT"}),Nt=new y.Asset({key:"weth",originSymbol:"WETH"}),te=new y.Asset({...Nt,key:"weth_mwh"}),Ye=new y.Asset({key:"wbtc",originSymbol:"WBTC"}),Te=new y.Asset({...Ye,key:"wbtc_mwh"}),qe=new y.Asset({key:"wsteth",originSymbol:"wstETH"}),at=new y.Asset({key:"wud",originSymbol:"WUD"}),_r=[Ie,Re,H,Rn,_e,be,R,ye,ne,g,Se,ft,nt,I,v,J,_,M,F,De,Le,He,xe,oe,We,O,Me,Ve,ge,re,Ke,q,ie,Ue,Qe,we,Oe,Ne,Ge,x,ke,It,p,Ce,Xt,Q,K,Ye,Te,Nt,te,qe,at],fa=new Map(_r.map(t=>[t.key,t]));var Is=require("@galacticcouncil/xc-core");var pa=require("viem/chains"),Ot=new Is.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:I,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:ft,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Is.ChainEcosystem.Ethereum,evmChain:pa.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});var Rs=require("@galacticcouncil/xc-core");var ha=require("viem/chains"),S=new Rs.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:I,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ie,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:_e,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Nt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ye,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Se,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ue,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Qe,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ne,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ye,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:He,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:De,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:We,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ve,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ke,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Oe,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:qe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Rs.ChainEcosystem.Ethereum,evmChain:ha.mainnet,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var ba=[Ot,S];var _s=require("@galacticcouncil/xc-core");var Gt=new _s.Parachain({assetsData:[{asset:Re,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:_s.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var ws=require("@galacticcouncil/xc-core");var ya={assetsData:[{asset: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:at,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:F,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:ws.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},k=new ws.Parachain({...ya,key:"assethub",name:"AssetHub Polkadot"}),pt=new ws.Parachain({...ya,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});var Ss=require("@galacticcouncil/xc-core");var se=new Ss.Parachain({assetsData:[{asset:H,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:R,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:_,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:K,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ss.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Ds=require("@galacticcouncil/xc-core");var Sr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],W=new Ds.Parachain({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset: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:H,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:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ds.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Sr});var qt=require("@galacticcouncil/xc-core");var jt=new qt.Parachain({assetsData:[{asset:be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,usesLegacyEnhancer:!0,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"],xcmVersion:qt.XcmVersion.v3});var Hs=require("@galacticcouncil/xc-core"),ga=require("viem");var xa=require("@polkadot-api/substrate-bindings"),Dr="ETH\0",Ls=class{async toH160(e){let s=(0,xa.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(Dr),r=n.slice(a.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var Lr=new Ls,_n=["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"],Sn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Hr=(0,ga.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:_n,webSocket:Sn},default:{http:_n,webSocket:Sn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new Hs.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Ie,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Re,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:R,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,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:I,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Se,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:_,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:De,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:Le,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:He,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:We,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ve,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:O,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Me,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:Ke,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:Qe,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:Ne,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:Ge,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:nt,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:It,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:Xt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:K,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ye,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:Nt,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:qe,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:at,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:Hs.ChainEcosystem.Polkadot,evmChain:Hr,evmResolver:Lr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Sn,rpcs:_n});var zt=require("@galacticcouncil/xc-core");var ve=new zt.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset: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:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:K,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:zt.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:zt.XcmVersion.v3});var Ws=require("@galacticcouncil/xc-core");var $t=new Ws.Parachain({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ws.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 Ms=require("@galacticcouncil/xc-core"),Aa=require("viem");var Wr=(0,Aa.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),E=new Ms.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:nt,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{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:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:Ms.ChainEcosystem.Polkadot,evmChain:Wr,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 Vs=require("@galacticcouncil/xc-core");var ht=new Vs.Parachain({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Vs.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 Ks=require("@galacticcouncil/xc-core");var Jt=new Ks.Parachain({assetsData:[{asset:Me,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Ks.ChainEcosystem.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});var Qt=require("@galacticcouncil/xc-core");var Yt=new Qt.Parachain({assetsData:[{asset:ge,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Qt.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,usesLegacyEnhancer:!0,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Qt.XcmVersion.v3});var Us=require("@galacticcouncil/xc-core");var Mr={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Us.ChainEcosystem.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},wa=new Us.Parachain({...Mr,key:"polkadot"});var Ns=require("@galacticcouncil/xc-core");var Zt=new Ns.Parachain({assetsData:[{asset:Ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ns.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var es=require("@galacticcouncil/xc-core");var ts=new es.Parachain({assetsData:[{asset:xe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:es.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:es.XcmVersion.v3});var Ca=[Gt,k,pt,se,W,jt,d,$t,Jt,ve,E,ht,Yt,wa,Zt,ts];var Os=require("@galacticcouncil/xc-core");var bt=new Os.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:Os.ChainEcosystem.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var ka=[bt];var Gs=require("@galacticcouncil/xc-core");var ss=new Gs.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:Gs.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Ta=[ss];var qs=require("@galacticcouncil/xc-core");var ot=new qs.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:qs.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 js=require("@galacticcouncil/xc-core");var ns=new js.Parachain({assetsData:[{asset:Rn,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:js.ChainEcosystem.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var va=[ot,ns];var Vr=[...ba,...Ca,...ka,...Ta,...va],Ba=new Map(Vr.map(t=>[t.key,t]));var Go=require("@galacticcouncil/xc-core");var No=require("@galacticcouncil/xc-core");var ta={};Ut(ta,{AssetMinBuilder:()=>yt,BalanceBuilder:()=>o,ContractBuilder:()=>D,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>ct,FeeAmountBuilder:()=>w,FeeAssetBuilder:()=>Ts,MoveBuilder:()=>ea,ProgramBuilder:()=>vs,XcmTransferType:()=>ue,XcmVersion:()=>it});var zs=require("@galacticcouncil/xc-core");function yt(){return{assetRegistry:Kr,assets:Ur}}function Kr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new zs.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new zs.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Ur(){return{asset:()=>({build:({asset:t})=>new zs.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var Cs=require("@galacticcouncil/xc-core");function Pa(){return{erc20:Or,native:Nr}}function Nr(){return{build:({address:t})=>new Cs.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Or(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n||typeof n!="string")throw new Error(`Invalid contract address: ${e}`);return new Cs.ContractConfig({abi:Cs.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var as=require("@galacticcouncil/xc-core"),os=require("@galacticcouncil/common");function Ea(){return{assets:Gr,system:jr,tokens:zr,ormlTokens:$r,foreignAssets:qr}}function Gr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.SubstrateQueryConfig({module:"Assets",func:"Account",args:[a,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function qr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let r=(0,os.encodeLocation)(a);return new as.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function jr(){return{account:()=>({build:({address:t})=>new as.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 zr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),m=BigInt(r?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function $r(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=(0,os.encodeAssetId)(n);return new as.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),m=BigInt(r?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}var Dn=require("@galacticcouncil/xc-core");function Fa(){return{native:Jr,token:Qr}}function Jr(){return{build:({address:t})=>new Dn.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Qr(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Dn.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var Xa=require("@galacticcouncil/xc-core");function Ia(){return{native:Yr}}function Yr(){return{build:({address:t})=>new Xa.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:Pa,substrate:Ea,solana:Fa,sui:Ia}}var Rt=require("@galacticcouncil/xc-core"),Ra=require("viem"),Zr=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],r=s.map(i=>(0,Ra.encodeFunctionData)({abi:Rt.Abi[i.module],functionName:i.func,args:i.args}));return new Rt.ContractConfig({abi:Rt.Abi.Batch,address:Rt.Precompile.Batch,args:[n,a,r,[]],func:"batchAll",module:"Batch"})}}),_a=()=>({batchAll:Zr});var is=require("@galacticcouncil/xc-core");function rs(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function rt(t){return typeof t=="object"?Object.values(t)[0]:t}function Sa(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:r}=e,i=r?r.chain:a.chain,m=is.Wormhole.fromChain(i),c=i.getAssetId(n);return new is.ContractConfig({abi:is.Abi.Erc20,address:rt(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}var je=require("@galacticcouncil/xc-core"),La=require("@galacticcouncil/common"),{Ss58Addr:Da}=je.addr;function ei(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Ln(t,e){let s=t.getAssetId(e);return typeof s=="string"?ei(s):s}function Ha(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Ln(a.chain,s);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Da.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Ln(a.chain,s),i=Ln(a.chain,a.destinationFeeBalance),m=La.big.toBigInt(n.fee.amount,n.fee.decimals);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Da.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var xt=require("@galacticcouncil/xc-core");var{Ss58Addr:ti}=xt.addr,si=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r}=t,i=a.chain,m=r.chain,c=xt.Snowbridge.fromChain(i),l=i.getAssetId(n),h=rt(l),b=n.originSymbol==="ETH",A=r.feeBreakdown.bridgeFeeInDot,T=r.fee.amount;return new xt.ContractConfig({abi:xt.Abi.Snowbridge,address:c.getGateway(),args:[h,m.parachainId,[1,ti.getPubKey(e)],A,s],value:b?T+s:T,func:"sendToken",module:"Snowbridge"})}}),Wa=()=>({sendToken:si});var V=require("@galacticcouncil/xc-core"),Hn=require("@solana/web3.js"),$s=require("@solana/spl-token");var ni=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,destination:i}=e,m=V.Wormhole.fromChain(r.chain),c=V.Wormhole.fromChain(t.moonchain),l=V.Precompile.Bridge,h=r.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:[rt(h),n,c.getWormholeId(),c.normalizeAddress(l),b,A.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),ai=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:r}=e,i=V.Wormhole.fromChain(a.chain),m=V.Wormhole.fromChain(t.moonchain),c=V.Precompile.Bridge,l=0,h=await V.mrl.createPayload(r.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"})}})}),oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,m=i?i.chain:a.chain,c=r.chain,l=V.Wormhole.fromChain(m),h=V.Wormhole.fromChain(c),b=c.getAssetId(n),A=e;if(c.isSolana()){let L=b==="SOL"?$s.NATIVE_MINT:new Hn.PublicKey(b);A=(await(0,$s.getAssociatedTokenAddress)(L,new Hn.PublicKey(e))).toBase58()}let T=m.getAssetId(n),X=0,U=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:l.getTokenBridge(),args:[rt(T),s,h.getWormholeId(),h.normalizeAddress(A),X,U],func:"transferTokens",module:"TokenBridge"})}}),ri=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,r=V.Wormhole.fromChain(n.chain),i=V.Wormhole.fromChain(a.chain),m=0,c=0;return new V.ContractConfig({abi:V.Abi.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Ma=()=>({transferTokens:oi,transferTokensWithPayload:ni,wrapAndTransferETH:ri,wrapAndTransferETHWithPayload:ai});var _t=require("@galacticcouncil/xc-core");var ii=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,m=i?i.chain:a.chain,c=r.chain,l=_t.Wormhole.fromChain(m),h=_t.Wormhole.fromChain(c),b=0,A=0,T=m.getAssetId(n);return new _t.ContractConfig({abi:_t.Abi.TokenRelayer,address:l.getTokenRelayer(),args:[rt(T),s,b,h.getWormholeId(),h.normalizeAddress(e),A],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Va=()=>({transferTokensWithRelay:ii});function Ka(){return{TokenBridge:Ma,TokenRelayer:Va}}function D(){return{Batch:_a,Erc20:Sa,PolkadotXcm:Ha,Snowbridge:Wa,Wormhole:Ka}}var Na=require("@galacticcouncil/xc-core"),Ua="AssetConversion",ci=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=r,c=a,l=c.getAssetXcmLocation(i),h=c.getAssetXcmLocation(m),b=i.amount+i.amount*BigInt(t.slippage)/100n,A=m.amount;return new Na.ExtrinsicConfig({module:Ua,func:e,getTx:T=>T.getUnsafeApi().tx[Ua][e]({path:[l,h],amount_out:A,amount_in_max:b,send_to:s,keep_alive:!0})})}}},Oa=()=>({swapTokensForExactTokens:ci});var Js=require("@galacticcouncil/descriptors"),Ga=require("@galacticcouncil/xc-core"),mi="Assets",ui=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let r=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Ga.ExtrinsicConfig({module:mi,func:t,getTx:l=>l.getTypedApi(Js.hub).tx.Assets.transfer({id:Number(c),target:Js.MultiAddress.Id(n),amount:m})})}}},qa=()=>({transfer:ui});var za=require("@galacticcouncil/xc-core"),ja="Balances",li=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new za.ExtrinsicConfig({module:ja,func:e,getTx:n=>n.getUnsafeApi().tx[ja][e]({dest:s,keep_alive:t})})}},$a=()=>({transferAll:li});var Ja=require("@galacticcouncil/descriptors"),Qa=require("@galacticcouncil/xc-core"),di="Router",fi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(r),h=c.getMetadataAssetId(i),b=i.amount,A=r.amount+r.amount*BigInt(t.slippage)/100n;return new Qa.ExtrinsicConfig({module:di,func:"buy",getTx:T=>T.getTypedApi(Ja.hydration).tx.Router.buy({asset_in:Number(l),asset_out:Number(h),amount_out:b,max_amount_in:A,route:m})})}}),Ya=()=>({buy:fi});var eo=require("@galacticcouncil/xc-core"),Za="Utility",pi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new eo.ExtrinsicConfig({module:Za,func:e,getTx:a=>{let r=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[Za][e]({calls:r})}})}}},to=()=>({batchAll:pi});var Qs=require("@galacticcouncil/xc-core"),Wn=require("polkadot-api"),no=require("viem");var it=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(it||{}),ue=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(ue||{});var so="EthereumXcm",hi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",r=(0,no.encodeFunctionData)({abi:Qs.Abi[n.module],functionName:n.func,args:n.args});return new Qs.ExtrinsicConfig({module:so,func:e,getTx:i=>i.getUnsafeApi().tx[so][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:Wn.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:Wn.Binary.fromHex(r),access_list:void 0}}})})}}},Mn=()=>({transact:hi});var At=require("@galacticcouncil/xc-core"),en=require("@galacticcouncil/common");var us=require("@galacticcouncil/xc-core"),To=require("polkadot-api"),f=require("@galacticcouncil/descriptors");var ao=require("@galacticcouncil/descriptors"),le=340282366920938463463374607431768211455n,St="0x0000000000000000000000000000000000000000000000000000000000000000",cs={parents:1,interior:ao.XcmV3Junctions.Here()},oo=0,ro=1e3,io=1002,co=1,Dt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var mo="0x0000000000000000000000000000000000000000";var ee=require("@galacticcouncil/descriptors"),go=require("polkadot-api");var uo=require("@galacticcouncil/common"),Vn=require("@galacticcouncil/descriptors"),Kn=require("polkadot-api"),lo=require("@polkadot-api/substrate-bindings"),fo=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Vn.XcmV3Junction.AccountKey20({key:Kn.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,lo.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Vn.XcmV3Junction.AccountId32({id:Kn.FixedSizeBinary.fromHex((0,fo.toHex)(s.publicKey)),network:void 0})}function ms(t,e,s){return uo.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Un=require("@galacticcouncil/xc-core");function po(t,e){let s=Un.multiloc.findNestedKey(t,"GeneralIndex"),n=Un.multiloc.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(r)?!1:Number(a)>Number(r)}function Y(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Ys={};Ut(Ys,{ETHER_TOKEN_ADDRESS:()=>On,erc20Location:()=>yi,erc20LocationReanchored:()=>xi,ethereumLocation:()=>bo,parachainLocation:()=>bi});var Be=require("@galacticcouncil/descriptors"),Nn=require("polkadot-api"),On="0x0000000000000000000000000000000000000000",ho=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function bo(t){return{parents:2,interior:Be.XcmV3Junctions.X1(ho(t))}}function bi(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function yi(t,e){return e===On?bo(t):{parents:2,interior:Be.XcmV3Junctions.X2([ho(t),Be.XcmV3Junction.AccountKey20({key:Nn.Binary.fromHex(e)})])}}function xi(t){return t===On?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:Nn.Binary.fromHex(t)}))}}var Gn=require("@galacticcouncil/common"),yo=require("@galacticcouncil/xc-core");function Z(t,e){return gi(e)>=4?(0,Gn.encodeLocation)(t):Ai(t)}function gi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Ai(t){return{type:"Concrete",value:(0,Gn.encodeLocation)(t)}}var wi=1e3;function Ci(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 ki(t){if(t)return Ci(t)?wi:yo.multiloc.findParachain(t)}function xo(t,e,s,n){let a=e.getAssetXcmLocation(t),r=ki(a),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function qn(t,e){let s="V4",n=Z(Y(e,t),s),a=go.Binary.fromHex(St);return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:cs,fun:ee.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(le)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:cs,fun:ee.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(j(Dt))}}),ee.XcmV4Instruction.SetTopic(a)]}var Ze=require("@galacticcouncil/descriptors");function Ao(t,e){let s="V4",n=Z(Y(e,t),s),a=Zs("V4",j(mo),j(Dt),n,St);return[Ze.XcmV4Instruction.WithdrawAsset([{id:cs,fun:Ze.XcmV3MultiassetFungibility.Fungible(le)},{id:n,fun:Ze.XcmV3MultiassetFungibility.Fungible(le)}]),Ze.XcmV4Instruction.ClearOrigin(),Ze.XcmV4Instruction.BuyExecution({fees:{id:cs,fun:Ze.XcmV3MultiassetFungibility.Fungible(le)},weight_limit:Ze.XcmV3WeightLimit.Unlimited()}),...a.value]}var P=require("@galacticcouncil/descriptors"),jn=require("polkadot-api");function wo(t,e){let s="V4",n=Z(Y(e,t),s),a=jn.Binary.fromHex(St);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(Dt))}}),P.XcmV4Instruction.SetTopic(a)]}function zn(t,e){let s="V4",n=Z(Y(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(Dt))}})]}function Co(t,e,s){let n="V4",a=Z(Y(e,t),n),r=jn.Binary.fromHex(St),i=zn(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(r)]}var ko=[us.ChainEcosystem.Polkadot,us.ChainEcosystem.Kusama],Ti={parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(1e3))},vi=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Bi=(t,e)=>!t.ecosystem||!e.ecosystem?!1:ko.includes(t.ecosystem)&&ko.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,vo=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},et=(t,e,s)=>{if(Bi(e,s)){let a=s.ecosystem===us.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===oo)return{type:t,value:{parents:1,interior:f.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?ro:s.parachainId;return{type:t,value:{parents:1,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.Parachain(n))}}},Lt=(t,e)=>({type:t,value:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),$n=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:vi(s)?Ti:s}}:{type:e},gt=(t,e)=>({id:t,fun:f.XcmV3MultiassetFungibility.Fungible(e)}),Bo=(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 r=To.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:Ys.ethereumLocation(co),xcm:[f.XcmV4Instruction.BuyExecution({fees:{id:Pi(n),fun:f.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}}),f.XcmV4Instruction.SetTopic(r)]}),f.XcmV4Instruction.SetTopic(r)]}},Pi=t=>{let e=us.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:f.XcmV3Junctions.X1(f.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:f.XcmV3Junctions.Here()}},Po=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.Transact({origin_kind:f.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:a}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]}),Eo=(t,e,s,n,a,r)=>({type:t,value:[f.XcmV4Instruction.WithdrawAsset([{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)}]),f.XcmV4Instruction.BuyExecution({fees:{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:f.XcmV3WeightLimit.Unlimited()}),f.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:f.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(r)}}),f.XcmV4Instruction.RefundSurplus(),f.XcmV4Instruction.DepositAsset({assets:f.XcmV4AssetAssetFilter.Wild(f.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:f.XcmV3Junctions.X1(e)}})]});var de="PolkadotXcm",Ei=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=Z(Y(i,n.fee),c),b=gt(l,e),A=gt(h,n.fee.amount),T="limited_reserve_transfer_assets";return new At.ExtrinsicConfig({module:de,func:T,getTx:X=>{let U=X.getUnsafeApi().tx[de][T];return s.key===n.fee.key?U({dest:et(c,i,m),beneficiary:Lt(c,r),assets:{type:c,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):po(l,h)?U({dest:et(c,i,m),beneficiary:Lt(c,r),assets:{type:c,value:[A,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):U({dest:et(c,i,m),beneficiary:Lt(c,r),assets:{type:c,value:[b,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Fi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=gt(l,e),b=et(c,i,m),A=Lt(c,r),T={type:c,value:[h]},X="limited_teleport_assets";return new At.ExtrinsicConfig({module:de,func:X,getTx:U=>U.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=Z(Y(i,s),c),h=gt(l,e),b=et(c,i,m),A=Lt(c,r),T={type:c,value:[h]},X="reserve_transfer_assets";return new At.ExtrinsicConfig({module:de,func:X,getTx:U=>U.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0})})}}),Ii=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=j(t),i=a.chain,m=n.chain,c="V4",l=Z(Y(i,s),c),h=gt(l,e),b=et(c,i,m),A=Lt(c,r),T={type:c,value:[h]},X="transfer_assets";return new At.ExtrinsicConfig({module:de,func:X,getTx:U=>U.getUnsafeApi().tx[de][X]({dest:b,beneficiary:A,assets:T,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ri=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:r,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=en.big.toBigInt(c.fee.amount,c.fee.decimals),T=c.fee);let X=j(i),U=c||b.usesCexForwarding?ms(h,i,b):e,L=j(U),{transferType:$}=t,G=Z(Y(h,s),l),C=Z(Y(h,T),l),Je=gt(G,n),Ft=gt(C,A),tt=s.isEqual(T),lt=et(l,h,b),st={type:l,value:tt?[Je]:[Ft,Je]},dt=$n(l,$,G),As={type:l,value:tt?G:C},Xn=$n(l,$,C),Kt;vo(G)&&a.chain.isEvmChain()?Kt=Zs(l,L,X,G,r):Kt=Bo(l,L,st.value.length);let Xs="transfer_assets_using_type_and_then";return new At.ExtrinsicConfig({module:de,func:Xs,getTx:Pr=>Pr.getUnsafeApi().tx[de][Xs]({dest:lt,assets:st,assets_transfer_type:dt,remote_fees_id:As,fees_transfer_type:Xn,custom_xcm_on_dest:Kt,weight_limit:{type:"Unlimited"}})})}}),_i=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=r.chain,l=ms(m,n,c),h=j(l),{fee:b}=r,A=Z(Y(c,b),i),T=en.big.toBigInt(e.fee,b.decimals);return new At.ExtrinsicConfig({module:de,func:t,getTx:X=>X.getUnsafeApi().tx[de][t]({dest:et(i,m,c),message:Po(i,h,A,T,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:r,sender:i,source:m,destination:c}=s,l="V4",h=m.chain,b=c.chain,A=ms(h,i,b),T=j(A),X=j(a),U=Z(Y(b,r),l),{fee:L}=c,$=en.big.toBigInt(e.fee,L.decimals),G=n>L.amount?n-(L.amount+$):n;return new At.ExtrinsicConfig({module:de,func:t,getTx:C=>C.getUnsafeApi().tx[de][t]({dest:et(l,h,b),message:Eo(l,T,U,G,$,X)})})}})}},Jn=()=>({limitedReserveTransferAssets:Ei,limitedTeleportAssets:Fi,reserveTransferAssets:Xi,transferAssets:Ii,transferAssetsUsingTypeAndThen:Ri,send:_i});var Io=require("@galacticcouncil/xc-core"),Ro=require("@galacticcouncil/common");var ks=require("@galacticcouncil/descriptors"),Fo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:ks.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:ks.XcmV3Junctions.X2([ks.XcmV3Junction.Parachain(e.parachainId),s])}};var Xo="XTokens",Si=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:r})=>{let i=r.chain,m=n.chain,c="V3",l=m.usesCexForwarding?ms(i,a,m):t,h=j(l),b=i.getAssetId(s),A=(0,Ro.encodeAssetId)(b),T="transfer";return new Io.ExtrinsicConfig({module:Xo,func:T,getTx:X=>X.getUnsafeApi().tx[Xo][T]({currency_id:A,amount:e,dest:Fo(c,m,h),dest_weight_limit:{type:"Unlimited"}})})}}),Qn=()=>({transfer:Si});function u(){return{assetConversion:Oa,assets:qa,balances:$a,ethereumXcm:Mn,polkadotXcm:Jn,router:Ya,utility:to,xTokens:Qn}}function ct(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 wt=require("@galacticcouncil/xc-core");var Yn={};Ut(Yn,{AssethubClient:()=>fe,BaseClient:()=>Pe,HydrationClient:()=>ze});var _o=require("@galacticcouncil/common"),tn=require("@galacticcouncil/descriptors"),Pe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??tn.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(s);if(!a)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=(0,_o.encodeLocation)(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,tn.XcmVersionedAssetId.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var ls=require("@galacticcouncil/descriptors"),So=require("@galacticcouncil/common"),sn=require("@polkadot-api/substrate-bindings"),Do=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,So.encodeLocation)(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(n),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,Do.toHex)((0,sn.Twox128)(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let r=sn.u128.dec(a);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=ls.XcmVersionedLocation.V5({parents:1,interior:ls.XcmV5Junctions.X1(ls.XcmV5Junction.Parachain(s))}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var Lo=require("@galacticcouncil/descriptors");var ze=class extends Pe{constructor(e){super(e,Lo.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),a=await this.api().query.AssetRegistry.Assets.getValue(n);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=a;return BigInt(r)-BigInt(i)}};function Di(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,r=wt.Wormhole.fromChain(n),i=wt.Wormhole.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:wt.Abi.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Li(){return{TokenRelayer:Di}}function Hi(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,r=s,i=wt.Snowbridge.fromChain(a),m=new Pe(r),c=new fe(t.hub),l=qn(e,r),[h,b]=await Promise.all([m.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,r.parachainId)]),A=b+rs(h,25n),T=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:wt.Abi.Snowbridge,address:i.getGateway(),args:[T,r.parachainId,A],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:A}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,r=new fe(t.hub),i=Ao(e,a),m=qn(e,a),[c,l,h,b,A]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,io),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(m,a.parachainId),r.calculateDestinationFee(m,s)]);return{amount:c+l+rs(h,25n)+b+rs(A,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:h,returnToSenderDeliveryFee:b,returnToSenderDestinationFee:A}}}})}}function Wi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,r=n,i=t?.reserve;if(xo(e,a,r,i),i){let A=new Pe(r),T=new Pe(i),X=zn(e,r),U=Co(e,i,r),[L,$]=await Promise.all([A.calculateDestinationFee(X,e),T.calculateDestinationFee(U,e)]),G=$+L,C=rs(G,20n),Je=C-G;return{amount:C,breakdown:{reserveFee:$,destinationFee:L,margin:Je}}}let m=new Pe(r),c=wo(e,r),l=await m.calculateDestinationFee(c,e),h=rs(l,20n),b=h-l;return{amount:h,breakdown:{totalFee:l,margin:b}}}})}}function w(){return{XcmPaymentApi:Wi,Snowbridge:Hi,Wormhole:Li}}var Mi="0";function Vi(){return{build:async({address:t,chain:e})=>{let n=await new ze(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():Mi,r=e.findAssetById(a);return r?r.asset:J}}}var Ki=()=>({accountCurrencyMap:Vi});function Ts(){return{multiTransactionPayment:Ki}}var pe=require("@galacticcouncil/xc-core"),ce=require("@solana/spl-token"),$e=require("@solana/web3.js"),Zn=require("@wormhole-foundation/sdk-connect"),Ct=require("@wormhole-foundation/sdk-solana-tokenbridge"),Ui=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,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 $e.PublicKey(r),X=new Zn.UniversalAddress(b),U=h.getWormholeId(),L=T,$=0,G=$e.Keypair.generate(),C=$e.Keypair.generate(),Je=await(0,ce.getMinimumBalanceForRentExemptAccount)(c.connection),Ft=$e.SystemProgram.createAccount({fromPubkey:L,newAccountPubkey:C.publicKey,lamports:Je,space:ce.ACCOUNT_SIZE,programId:ce.TOKEN_PROGRAM_ID}),tt=$e.SystemProgram.transfer({fromPubkey:L,lamports:n,toPubkey:C.publicKey}),lt=(0,ce.createInitializeAccountInstruction)(C.publicKey,ce.NATIVE_MINT,L),st=(0,Ct.createApproveAuthoritySignerInstruction)(l.getTokenBridge(),C.publicKey,L,n),dt=(0,Ct.createTransferNativeWithPayloadInstruction)(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,G.publicKey,C.publicKey,ce.NATIVE_MINT,$,n,X.toUint8Array(),U,A.toU8a()),As=(0,ce.createCloseAccountInstruction)(C.publicKey,L,L);return new pe.ProgramConfig({instructions:[Ft,tt,lt,st,dt,As],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Je)})}})}),Ni=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,sender:i,destination:m}=e,c=r.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 $e.PublicKey(i),U=r.chain.getAssetId(a),L=new $e.PublicKey(U),$=await(0,ce.getAssociatedTokenAddress)(L,X),G=new Zn.UniversalAddress(A),C=b.getWormholeId();if(await(0,Ct.getWrappedMeta)(l.connection,h.getTokenBridge(),L).catch(dt=>null).then(dt=>dt!=null))throw new Error("Wrapped assets not supported yet");let Ft=0,tt=$e.Keypair.generate(),lt=(0,Ct.createApproveAuthoritySignerInstruction)(h.getTokenBridge(),$,X,n),st=(0,Ct.createTransferNativeWithPayloadInstruction)(l.connection,h.getTokenBridge(),h.getCoreBridge(),i,tt.publicKey,$,L,Ft,n,G.toUint8Array(),C,T.toU8a());return new pe.ProgramConfig({instructions:[lt,st],signers:[tt],func:"TransferWithPayload",module:"TokenBridge"})}})}),Ho=()=>({transferNativeWithPayload:Ui,transferTokenWithPayload:Ni});function Wo(){return{TokenBridge:Ho}}function vs(){return{Wormhole:Wo}}var mt=require("@galacticcouncil/xc-core"),Mo=require("@mysten/sui/transactions"),nn=require("@mysten/sui/utils"),Vo=require("@wormhole-foundation/sdk-connect"),Bs=require("@wormhole-foundation/sdk-sui"),Oi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,m=a.chain,c=m,l=mt.Wormhole.fromChain(m),h=mt.Wormhole.fromChain(t.moonchain),b=0,A=mt.Precompile.Bridge,T=await mt.mrl.createPayload(i.chain,s),X=new Vo.UniversalAddress(A),U=h.getWormholeId(),L=nn.SUI_TYPE_ARG,[$,G]=await Promise.all([(0,Bs.getPackageId)(c.client,l.coreBridge),(0,Bs.getPackageId)(c.client,l.tokenBridge)]),C=new Mo.Transaction,[Je]=C.splitCoins(C.gas,[C.pure.u64(n)]),[Ft]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[tt]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(l.tokenBridge)],typeArguments:[L]}),lt=!1,st=await(async()=>{let Kt=await(0,Bs.getOldestEmitterCapObjectId)(c.client,$,r);if(Kt!==null)return C.object(Kt);{let[Xs]=C.moveCall({target:`${$}::emitter::new`,arguments:[C.object(l.coreBridge)]});return lt=!0,Xs}})(),[dt,As]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[st,tt,Je,C.pure.u16(U),C.pure.vector("u8",X.toUint8Array()),C.pure.vector("u8",T.toU8a()),C.pure.u32(b)],typeArguments:[L]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[As],typeArguments:[L]});let[Xn]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(l.tokenBridge),dt],typeArguments:[L]});return C.moveCall({target:`${$}::publish_message::publish_message`,arguments:[C.object(l.coreBridge),Ft,Xn,C.object(nn.SUI_CLOCK_OBJECT_ID)]}),lt&&C.transferObjects([st],C.pure.address(r)),new mt.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ko=()=>({transferNativeWithPayload:Oi});function Uo(){return{TokenBridge:Ko}}function ea(){return{Wormhole:Uo}}var sa={};Ut(sa,{Tag:()=>ut});var ut=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(ut||{});function Oo(t,e){return new No.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:I,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:D().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}var Gi=[Oo(ft,nt)],qo=new Go.ChainRoutes({chain:Ot,routes:[...Gi]});var Ht=require("@galacticcouncil/xc-core");var na=require("@galacticcouncil/xc-core");function ds(t,e){return new na.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:I,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:D().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})}function me(t,e){return new na.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:I,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:I}},contract:D().Snowbridge().sendToken(),tags:["Snowbridge"]})}var qi=[new Ht.AssetRoute({source:{asset:I,balance:o().evm().native(),destinationFee:{asset:I,balance:o().evm().native()}},destination:{chain:d,asset:te,fee:{amount:0,asset:te}},contract:D().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),ds(ye,ne),ds(Ye,Te),ds(x,ke),ds(p,Ce),ds(Qe,we)],ji=[new Ht.AssetRoute({source:{asset:I,balance:o().evm().native(),fee:{asset:I,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:I,fee:{amount:w().Snowbridge().calculateInboundFee({hub:k}),asset:I}},contract:D().Snowbridge().sendToken(),tags:["Snowbridge"]}),me(Ie,Ie),me(_e,_e),me(Se,Se),me(Ve,Ve),me(Ue,Ue),me(Ne,Ne),me(He,He),me(De,De),me(We,We),me(Ke,Ke),me(Oe,Oe),me(qe,qe),me(x,It),me(p,Xt)],Hf=[new Ht.AssetRoute({source:{asset:I,balance:o().evm().native(),destinationFee:{asset:I,balance:o().evm().erc20()}},destination:{chain:E,asset:te,fee:{amount:0,asset:te}},contract:D().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Ht.AssetRoute({source:{asset:ye,balance:o().evm().erc20(),fee:{asset:I,balance:o().evm().native()},destinationFee:{asset:ye,balance:o().evm().erc20()}},destination:{chain:E,asset:ne,fee:{amount:0,asset:ne}},contract:D().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],jo=new Ht.ChainRoutes({chain:S,routes:[...qi,...ji]});var zo=[qo,jo];var kt=require("@galacticcouncil/xc-core");var an=require("@galacticcouncil/xc-core");var Wt=0,zi=t=>{let{source:e}=t;return!!e.feeSwap},$i=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},$o=u().assetConversion().swapTokensForExactTokens({slippage:30});function Ji(t,e,s){return new an.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().assets().account()},min:yt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:ct($i,$o).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function on(t,e,s){return new an.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:yt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:ct(zi,$o).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Mt(t,e,s){return new an.AssetRoute({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().assets().account()},min:yt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function rn(t){return Ji(t,d,.02)}var Qi=[new kt.AssetRoute({source:{asset:g,balance:o().substrate().system().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().system().account()},min:yt().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new kt.AssetRoute({source:{asset:F,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Mt(p,d,.02),Mt(x,d,.02),rn(at)],Yi=[new kt.AssetRoute({source:{asset:F,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:ot,asset:F,fee:{amount:.001,asset:F}},extrinsic:u().polkadotXcm().transferAssets()})],Zi=[Mt(p,E,.25),Mt(x,E,.25)],ec=[Mt(p,W,.03),Mt(x,W,.03)],tc=[new kt.AssetRoute({source:{asset:O,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:Wt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:ht,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Jo=new kt.ChainRoutes({chain:pt,routes:[on(p,d,.02),on(x,d,.02),on(g,d,.001)]}),Qo=new kt.ChainRoutes({chain:k,routes:[...Qi,...Yi,...Zi,...ec,...tc]});var Ee=require("@galacticcouncil/xc-core");var sc=[new Ee.AssetRoute({source:{asset:H,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:H,fee:{amount:.044306118,asset:H}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new Ee.AssetRoute({source:{asset:R,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:v,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().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:_,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:M,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:M,fee:{amount:.01,asset:M}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:K,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:K,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:K}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:Q,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:W}),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ee.AssetRoute({source:{asset:p,balance:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().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:o().substrate().assets().account(),fee:{asset:H,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Yo=new Ee.ChainRoutes({chain:se,routes:[...sc]});var he=require("@galacticcouncil/xc-core");var nc=[new he.AssetRoute({source:{asset:R,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:R,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:K,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:K,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:K}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:Q,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:Q,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:g,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().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:H,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:se}),asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:v,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:v,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:E}),asset:v}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:_,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ac=[new he.AssetRoute({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:k,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new he.AssetRoute({source:{asset:x,balance:o().substrate().tokens().accounts(),fee:{asset:R,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:k,asset:x,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Zo=new he.ChainRoutes({chain:W,routes:[...nc,...ac]});var Ae=require("@galacticcouncil/xc-core");var oc="0",B=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===oc?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),z=()=>({asset:Ts().multiTransactionPayment().accountCurrencyMap(),balance:B()});var Tt=require("@galacticcouncil/xc-core");var rc=.9,ic=1,cc=1,cn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},mn=u().router().buy({slippage:30});function N(t,e,s){return new Tt.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 fs(t,e,s){return new Tt.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 vt(t,e){return new Tt.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 un(t){return new Tt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:k,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:ct(cn,mn).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function mc(t,e,s="LocalReserve"){return new Tt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:e,asset:t,fee:{amount:cc,asset:v}},extrinsic:ct(cn,mn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Bt(t){return mc(t,E,"DestinationReserve")}function uc(t,e,s,n,a,r){return new Tt.AssetRoute({source:{asset:t,balance:B(),fee:z(),destinationFee:{asset:t,balance:B()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:ct(cn,mn).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:rc})]),transact:{chain:E,fee:{amount:ic,asset:v,balance:B()},extrinsic:u().ethereumXcm().transact(a)},tags:r})}function Fe(t,e,s){return uc(t,e,s,0,D().Batch().batchAll([D().Erc20().approve(n=>n.getTokenBridge()),D().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function ae(t,e,s){return new Tt.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:ct(cn,mn).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var lc=[vt(g,k),vt(F,k),vt(p,k),vt(x,k),un(at)],dc=[N(H,se),N(R,se,W),N(v,se,E),new Ae.AssetRoute({source:{asset:_,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:se,asset:_,fee:{amount:2e-6,asset:_}},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()}),N(K,se,W),N(Q,se,W),N(p,se,k),N(x,se,k)],fc=[N(R,W),N(K,W),N(Q,W),N(H,W,se),N(v,W,E),new Ae.AssetRoute({source:{asset:_,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:W,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),N(p,W,k),N(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"})})],pc=[fs(_,ve,62e-8),fs(M,ve,.0019213457),fs(J,ve,.5),fs(p,ve,.3),fs(x,ve,.3),new Ae.AssetRoute({source:{asset:K,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ve,asset:K,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"})})],hc=[N(J,E),N(v,E),N(p,E,k),N(x,E,k),Bt(ne),Bt(we),Bt(ke),Bt(Ce),Bt(Te),Bt(te),Bt(q)],bc=[new Ae.AssetRoute({source:{asset:O,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ht,asset:O,fee:{amount:2.5,asset:O}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],yc=[N(Ge,Zt)],xc=[new Ae.AssetRoute({source:{asset:be,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:jt,asset:be,fee:{amount:.04,asset:be}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],gc=[N(Le,$t)],Ac=[new Ae.AssetRoute({source:{asset:xe,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:ts,asset:xe,fee:{amount:.02,asset:xe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],wc=[new Ae.AssetRoute({source:{asset:ge,balance:B(),fee:z(),destinationFee:{balance:B()}},destination:{chain:Yt,asset:ge,fee:{amount:1.1,asset:ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Cc=[N(Me,Jt)],kc=[N(Re,Gt)],Tc=[Fe(nt,ft,Ot)],vc=[Fe(ne,ye,S),Fe(te,I,S),Fe(Te,Ye,S),Fe(Ce,p,S),Fe(ke,x,S),Fe(we,Qe,S)],Bc=[ae(I,I,S),ae(Ie,Ie,S),ae(_e,_e,S),ae(Se,Se,S),ae(Ve,Ve,S),ae(Ue,Ue,S),ae(Ne,Ne,S),ae(Oe,Oe,S),ae(He,He,S),ae(De,De,S),ae(We,We,S),ae(Ke,Ke,S),ae(qe,qe,S),ae(It,x,S),ae(Xt,p,S)],Pc=[Fe(q,q,bt),Fe(oe,oe,bt),Fe(re,re,bt)],Ec=[Fe(ie,ie,ss)],Fc=[vt(g,pt),vt(p,pt),vt(x,pt)],er=new Ae.ChainRoutes({chain:d,routes:[...kc,...lc,...dc,...Tc,...fc,...Fc,...xc,...Bc,...vc,...pc,...gc,...Ac,...hc,...bc,...Cc,...wc,...Pc,...Ec,...yc]});var Vt=require("@galacticcouncil/xc-core");var aa=()=>o().substrate().tokens().accounts();function ln(t,e){return new Vt.AssetRoute({source:{asset:t,balance:aa(),fee:{asset:M,balance:aa()},destinationFee:{balance:aa()}},destination:{chain:d,asset:t,fee:{amount:w().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var Xc=[new Vt.AssetRoute({source:{asset:M,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:M,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Vt.AssetRoute({source:{asset:_,balance:o().substrate().tokens().accounts(),fee:{asset:M,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:_,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:u().xTokens().transfer()}),new Vt.AssetRoute({source:{asset:J,balance:o().substrate().tokens().accounts(),fee:{asset:M,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:J,fee:{amount:.5,asset:J}},extrinsic:u().xTokens().transfer()}),ln(K,W),ln(p,k),ln(x,k),ln(g,k)],tr=new Vt.ChainRoutes({chain:ve,routes:[...Xc]});var Et=require("@galacticcouncil/xc-core");var oa=require("@galacticcouncil/xc-core");function Ic(t,e,s){return new oa.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:D().PolkadotXcm().transferAssetsToPara32()})}function Rc(t,e,s){return new oa.AssetRoute({source:{asset:t,balance:o().evm().erc20(),fee:{asset:v,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:D().PolkadotXcm().transferAssetsToPara32()})}function Pt(t,e){return Ic(t,d,e)}function dn(t,e){return Rc(t,d,e)}var _c=[new Et.AssetRoute({source:{asset:v,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:v,fee:{amount:.05,asset:v}},contract:D().PolkadotXcm().transferAssetsToPara32()}),dn(J,.6),dn(p,.3),dn(x,.3),Pt(ne,.004),Pt(we,.004),Pt(ke,.004),Pt(Ce,.004),Pt(Te,1e-7),Pt(te,2e-6),Pt(q,2e-5)],Sc=[new Et.AssetRoute({source:{asset:p,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:k,asset:p,fee:{amount:.18,asset:p}},contract:D().PolkadotXcm().transferAssetsToPara32()}),new Et.AssetRoute({source:{asset:x,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:k,asset:x,fee:{amount:.18,asset:x}},contract:D().PolkadotXcm().transferAssetsToPara32()})],Gp=[new Et.AssetRoute({source:{asset:te,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{asset:te,balance:o().evm().erc20()}},destination:{chain:S,asset:I,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:I}},contract:D().Batch().batchAll([D().Erc20().approve(t=>t.getTokenRelayer()),D().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new Et.AssetRoute({source:{asset:ne,balance:o().evm().erc20(),fee:{asset:v,balance:o().substrate().system().account()},destinationFee:{asset:ne,balance:o().evm().erc20()}},destination:{chain:S,asset:ye,fee:{amount:w().Wormhole().TokenRelayer().calculateRelayerFee(),asset:ye}},contract:D().Batch().batchAll([D().Erc20().approve(t=>t.getTokenRelayer()),D().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],sr=new Et.ChainRoutes({chain:E,routes:[..._c,...Sc]});var Ps=require("@galacticcouncil/xc-core");var Dc=[new Ps.AssetRoute({source:{asset:O,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:O,fee:{amount:.01,asset:O}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Lc=[new Ps.AssetRoute({source:{asset:O,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:k,asset:O,fee:{amount:.1,asset:O}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],nr=new Ps.ChainRoutes({chain:ht,routes:[...Dc,...Lc]});var fn=require("@galacticcouncil/xc-core");var Hc=[new fn.AssetRoute({source:{asset:Ge,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ge,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ar=new fn.ChainRoutes({chain:Zt,routes:[...Hc]});var pn=require("@galacticcouncil/xc-core");var Wc=[new pn.AssetRoute({source:{asset:be,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:be,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:be}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],or=new pn.ChainRoutes({chain:jt,routes:[...Wc]});var hn=require("@galacticcouncil/xc-core");var Mc=[new hn.AssetRoute({source:{asset:ge,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ge,fee:{amount:.2,asset:ge}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],rr=new hn.ChainRoutes({chain:Yt,routes:[...Mc]});var bn=require("@galacticcouncil/xc-core");var Vc=[new bn.AssetRoute({source:{asset:Re,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Re,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:Re}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ir=new bn.ChainRoutes({chain:Gt,routes:[...Vc]});var yn=require("@galacticcouncil/xc-core");var Kc=[new yn.AssetRoute({source:{asset:Le,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Le,fee:{amount:2,asset:Le}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],cr=new yn.ChainRoutes({chain:$t,routes:[...Kc]});var xn=require("@galacticcouncil/xc-core");var Uc=[new xn.AssetRoute({source:{asset:xe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:xe,fee:{amount:.03,asset:xe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],mr=new xn.ChainRoutes({chain:ts,routes:[...Uc]});var gn=require("@galacticcouncil/xc-core");var Nc=[new gn.AssetRoute({source:{asset:Me,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Me,fee:{amount:.205,asset:Me}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ur=new gn.ChainRoutes({chain:Jt,routes:[...Nc]});var lr=[ir,Qo,Jo,Yo,Zo,er,tr,sr,nr,ur,ar,or,rr,cr,mr];var ps=require("@galacticcouncil/xc-core");var Oc=[new ps.AssetRoute({source:{asset:q,balance:o().solana().native(),destinationFee:{asset:q,balance:o().solana().native()}},destination:{chain:d,asset:q,fee:{amount:0,asset:q}},program:vs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ps.AssetRoute({source:{asset:oe,balance:o().solana().token(),fee:{asset:q,balance:o().solana().native()},destinationFee:{asset:oe,balance:o().solana().token()}},destination:{chain:d,asset:oe,fee:{amount:0,asset:oe}},program:vs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]}),new ps.AssetRoute({source:{asset:re,balance:o().solana().token(),fee:{asset:q,balance:o().solana().native()},destinationFee:{asset:re,balance:o().solana().token()}},destination:{chain:d,asset:re,fee:{amount:0,asset:re}},program:vs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],dr=new ps.ChainRoutes({chain:bt,routes:[...Oc]});var fr=[dr];var An=require("@galacticcouncil/xc-core");var Gc=[new An.AssetRoute({source:{asset:ie,balance:o().sui().native(),destinationFee:{asset:ie,balance:o().sui().native()}},destination:{chain:d,asset:ie,fee:{amount:0,asset:ie}},move:ea().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:E}),tags:["Mrl","Wormhole"]})],pr=new An.ChainRoutes({chain:ss,routes:[...Gc]});var hr=[pr];var Es=require("@galacticcouncil/xc-core");var qc=require("@galacticcouncil/xc-core");var ra=.0015;var jc=new Es.AssetRoute({source:{asset:F,balance:o().substrate().system().account(),fee:{asset:F,balance:o().substrate().system().account(),extra:ra},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),zc=new Es.AssetRoute({source:{asset:F,balance:o().substrate().system().account(),fee:{asset:F,balance:o().substrate().system().account(),extra:ra},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:ns,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),br=new Es.ChainRoutes({chain:ot,routes:[zc,jc]});var Fs=require("@galacticcouncil/xc-core");var $c="0",hs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===$c?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),ia=()=>({asset:Ts().multiTransactionPayment().accountCurrencyMap(),balance:hs()});var Jc=[new Fs.AssetRoute({source:{asset:p,balance:hs(),fee:ia(),destinationFee:{balance:hs()}},destination:{chain:ot,asset:p,fee:{amount:w().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Qc=[new Fs.AssetRoute({source:{asset:F,balance:hs(),fee:ia(),destinationFee:{balance:hs()}},destination:{chain:ot,asset:F,fee:{amount:.0012,asset:F}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],yr=new Fs.ChainRoutes({chain:ns,routes:[...Jc,...Qc]});var xr=[br,yr];var Yc=[...zo,...lr,...fr,...hr,...xr],gr=new Map(Yc.map(t=>[t.chain.key,t]));var ca=require("@galacticcouncil/xc-core");var bs=require("@galacticcouncil/xc-core");var wn=class extends bs.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:r}=s;if(r.amount<a.amount)throw new bs.TransferValidationError("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Cn=class extends bs.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:a}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:a,destinationFee:r,destinationFeeBalance:i}=n,m=await this.getMin(a,r),c=r.copyWith({amount:r.amount+m});if(i.amount<c.amount)throw new bs.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 ys=require("@galacticcouncil/xc-core");var kn=class extends ys.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,r=a.chain;if(await new fe(r).getSystemAccountBalance(n)===0n)throw new ys.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},Tn=class extends ys.TransferValidation{async validate(e){let{asset:s,sender:n,source:a}=e,r=a.chain;if(await new fe(r).checkIfFrozen(n,s))throw new ys.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};var xs=require("@galacticcouncil/xc-core");var Zc=12,em=1,tm=18,vn=class extends xs.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,a=new ze(n),r=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain,i=new ze(r),m=await i.getFeeAsset(n),c=r.findAssetById(m),l=c.min||em,h=c.decimals||Zc,b=l*Math.pow(10,h),A=await i.getAssetBalance(n,m);if(BigInt(b*1.1)>A)throw new xs.TransferValidationError("Insufficient_Ed",{amount:b,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},Bn=class extends xs.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:a}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:a}=e,r=a.chain,i=new ze(r),m=r.getBalanceAssetId(v),c=r.getAssetDecimals(v)||tm,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new xs.TransferValidationError("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var Xe={isAny:()=>!0,isHydration:t=>t instanceof ca.Parachain&&t.parachainId===2034,isHub:t=>t instanceof ca.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Ar=[new wn(Xe.isAny,Xe.isAny),new Cn(Xe.isAny,Xe.isAny),new kn(Xe.isAny,Xe.isHub),new Tn(Xe.isHub,Xe.isAny),new vn(Xe.isAny,Xe.isHydration),new Bn(Xe.isHydration,Xe.isAny)];var da={};Ut(da,{AssethubDex:()=>la,HydrationDex:()=>ma});var gs=require("@galacticcouncil/sdk-next"),Cr=require("@galacticcouncil/common");var wr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:Pn}=gs.pool,{TradeRouteBuilder:sm,TradeRouter:nm}=gs.sor,{TxBuilderFactory:am}=gs.tx,ma=class{chain;client;poolCtx;txBuilder;getCtx=wr(async e=>{console.log("init swap router",e,"\u2705");let s=new nm(this.poolCtx);return s.withFilter({useOnly:[Pn.Aave,Pn.Omni,Pn.Stable,Pn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ze(this.chain),this.txBuilder=new am(s.client,s.evm)}async getCalldata(e,s,n,a,r=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(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let r=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(r,i),h=await c.getBuy(r,i,m,l);return{amount:h.amountIn,route:sm.build(h.swaps)}}catch(l){if(a)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),a=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!a)throw new Error(`No price found for asset ${e}`);let r=a*s,i=Math.pow(10,Cr.RUNTIME_DECIMALS);return r/BigInt(i)}};var ua=require("@galacticcouncil/common"),la=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),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,ua.encodeLocation)(a),(0,ua.encodeLocation)(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var Br=require("@galacticcouncil/xc-core");var kr=require("@galacticcouncil/xc-core");function En(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new kr.Asset({key:[a,s,e].join("_"),originSymbol:n})}function Tr(t){let{decimals:e,id:s}=t;return{asset:En(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function vr(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:En(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 Fn=class extends Br.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!a(r)&&r.origin===1e3).forEach(r=>{let i=En(r),m=Tr(r),c=vr(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,rn(i)),this.updateChainRoute(s,un(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Vo=Object.defineProperty;var jt=(t,e)=>{for(var s in e)Vo(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"}),D=new y({key:"astr",originSymbol:"ASTR"}),X=new y({key:"bnc",originSymbol:"BNC"}),Fs=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"}),g=new y({key:"dot",originSymbol:"DOT"}),F=new y({key:"eth",originSymbol:"ETH"}),Be=new y({key:"ena",originSymbol:"ENA"}),Je=new y({key:"eurc",originSymbol:"EURC"}),Ne=new y({...Je,key:"eurc_mwh"}),T=new y({key:"glmr",originSymbol:"GLMR"}),j=new y({key:"hdx",originSymbol:"HDX"}),R=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"}),Ie=new y({key:"lbtc",originSymbol:"LBTC"}),de=new y({key:"ewt",originSymbol:"EWT"}),Fe=new y({key:"link",originSymbol:"LINK"}),U=new y({key:"myth",originSymbol:"MYTH"}),Xe=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"}),N=new y({key:"sol",originSymbol:"SOL"}),ae=new y({key:"sui",originSymbol:"SUI"}),Se=new y({key:"susde",originSymbol:"sUSDe"}),Oe=new y({key:"susds",originSymbol:"sUSDS"}),he=new y({...Oe,key:"susds_mwh"}),De=new y({key:"tbtc",originSymbol:"tBTC"}),Le=new y({key:"trac",originSymbol:"TRAC"}),He=new y({key:"unq",originSymbol:"UNQ"}),p=new y({key:"usdt",originSymbol:"USDT"}),be=new y({...p,key:"usdt_mwh"}),bt=new y({...p,key:"usdt_eth"}),b=new y({key:"usdc",originSymbol:"USDC"}),ye=new y({...b,key:"usdc_mwh"}),yt=new y({...b,key:"usdc_eth"}),$=new y({key:"vastr",originSymbol:"vASTR"}),W=new y({key:"vdot",originSymbol:"vDOT"}),Pt=new y({key:"weth",originSymbol:"WETH"}),Y=new y({...Pt,key:"weth_mwh"}),Ge=new y({key:"wbtc",originSymbol:"WBTC"}),xe=new y({...Ge,key:"wbtc_mwh"}),We=new y({key:"wsteth",originSymbol:"wstETH"}),Qe=new y({key:"wud",originSymbol:"WUD"}),Uo=[ke,Te,D,Fs,ve,ue,X,le,ee,g,Be,Je,Ne,F,T,j,R,H,P,Pe,Ee,Ie,de,se,Fe,U,Xe,Re,fe,ne,_e,N,ae,Se,Oe,he,Le,De,He,b,ye,yt,p,be,bt,$,W,Ge,xe,Pt,Y,We,Qe],Ko=new Map(Uo.map(t=>[t.key,t]));import{ChainEcosystem as No,EvmChain as Oo}from"@galacticcouncil/xc-core";import{base as Go}from"viem/chains";var Et=new Oo({id:8453,key:"base",name:"Base",assetsData:[{asset:F,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Je,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:b,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:No.Ethereum,evmChain:Go,explorer:"https://basescan.org/",instaBridge:{address:"0x73bab4cec782e1530117932cef8492ebe64e112e"},rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});import{ChainEcosystem as qo,EvmChain as jo}from"@galacticcouncil/xc-core";import{mainnet as $o}from"viem/chains";var _=new jo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:F,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ke,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:ve,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Pt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:le,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Se,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Oe,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:De,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Ge,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Ie,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Pe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Fe,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:qo.Ethereum,evmChain:$o,explorer:"https://etherscan.io/",rpcs:["https://ethereum-rpc.publicnode.com","https://cosmopolitan-dimensional-diagram.quiknode.pro"],snowbridge:{id:1,gateway:"0x27ca963c279c93801941e1eb8799c23f407d68e7"},wormhole:{id:2,coreBridge:"0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",tokenBridge:"0x3ee18B2214AFF97000D974cf647E7C347E8fa585",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"}});var ln=[Et,_];import{ChainEcosystem as zo,Parachain as Jo}from"@galacticcouncil/xc-core";var It=new Jo({assetsData:[{asset:Te,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:zo.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 Qo,Parachain as dn}from"@galacticcouncil/xc-core";var fn={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:b,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Qe,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:Qo.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 dn({...fn,key:"assethub",name:"AssetHub Polkadot"}),ot=new dn({...fn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Yo,Parachain as Zo}from"@galacticcouncil/xc-core";var Z=new Zo({assetsData:[{asset:D,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:b,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,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:$,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Yo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as er,Parachain as tr}from"@galacticcouncil/xc-core";var sr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new tr({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,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:b,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,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:R,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:er.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:sr});import{ChainEcosystem as nr,Parachain as ar,XcmVersion as or}from"@galacticcouncil/xc-core";var Ft=new ar({assetsData:[{asset:ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:nr.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:or.v3});import{ChainEcosystem as cr,EvmParachain as mr}from"@galacticcouncil/xc-core";import{defineChain as ur}from"viem";import{getSs58AddressInfo as rr}from"@polkadot-api/substrate-bindings";var ir="ETH\0",ns=class{async toH160(e){let s=rr(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,r=Buffer.from(ir),a=n.slice(r.length,-8);return"0x"+Buffer.from(a).toString("hex")}};var lr=new ns,Xs=["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"],Rs=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],dr=ur({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Xs,webSocket:Rs},default:{http:Xs,webSocket:Rs}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new mr({assetsData:[{asset:j,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:D,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset: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:g,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ee,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:F,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:R,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:Ie,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Fe,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:Xe,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:N,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:Oe,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:Ne,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:yt,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:be,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:$,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:Ge,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:Pt,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:Qe,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:cr.Polkadot,evmChain:dr,evmResolver:lr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Rs,rpcs:Xs});import{ChainEcosystem as fr,Parachain as pr,XcmVersion as hr}from"@galacticcouncil/xc-core";var ge=new pr({assetsData:[{asset:H,decimals:10,id:{Token:H.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:b,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:j,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:W,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:fr.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:hr.v3});import{ChainEcosystem as br,Parachain as yr}from"@galacticcouncil/xc-core";var Xt=new yr({assetsData:[{asset:Ee,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:br.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 xr,EvmParachain as gr}from"@galacticcouncil/xc-core";import{defineChain as Ar}from"viem";var wr=Ar({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),B=new gr({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:Ne,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:N,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:g,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:p,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:xr.Polkadot,evmChain:wr,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 Cr,Parachain as kr}from"@galacticcouncil/xc-core";var rt=new kr({assetsData:[{asset:U,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Cr.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 Tr,Parachain as vr}from"@galacticcouncil/xc-core";var Rt=new vr({assetsData:[{asset:Xe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Tr.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 Br,Parachain as Pr,XcmVersion as Er}from"@galacticcouncil/xc-core";var _t=new Pr({assetsData:[{asset:fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:Br.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:Er.v3});import{ChainEcosystem as Ir,Parachain as Fr}from"@galacticcouncil/xc-core";var Xr={assetsData:[{asset:g,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ir.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"},pn=new Fr({...Xr,key:"polkadot"});import{ChainEcosystem as Rr,Parachain as _r}from"@galacticcouncil/xc-core";var St=new _r({assetsData:[{asset:He,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Rr.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 Sr,Parachain as Dr,XcmVersion as Lr}from"@galacticcouncil/xc-core";var Dt=new Dr({assetsData:[{asset:de,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Sr.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:Lr.v3});var hn=[It,C,ot,Z,L,Ft,d,Xt,Rt,ge,B,rt,_t,pn,St,Dt];import{ChainEcosystem as Hr,SolanaChain as Wr}from"@galacticcouncil/xc-core";var it=new Wr({id:101,key:"solana",name:"Solana",assetsData:[{asset:N,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ne,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Hr.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 bn=[it];import{ChainEcosystem as Mr,SuiChain as Vr}from"@galacticcouncil/xc-core";var Lt=new Vr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Mr.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var yn=[Lt];import{ChainEcosystem as Ur,Parachain as Kr}from"@galacticcouncil/xc-core";var Ye=new Kr({assetsData:[{asset:P,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:Ur.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 Nr,Parachain as Or}from"@galacticcouncil/xc-core";var Ht=new Or({assetsData:[{asset:Fs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:P,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:Nr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var xn=[Ye,Ht];var Gr=[...ln,...hn,...bn,...yn,...xn],qr=new Map(Gr.map(t=>[t.key,t]));import{ChainRoutes as Em}from"@galacticcouncil/xc-core";import{AssetRoute as Oa}from"@galacticcouncil/xc-core";var Ka={};jt(Ka,{AssetMinBuilder:()=>ct,BalanceBuilder:()=>o,ContractBuilder:()=>E,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>et,FeeAmountBuilder:()=>A,FeeAssetBuilder:()=>Yt,MoveBuilder:()=>tn,ProgramBuilder:()=>Zt,XcmTransferType:()=>re,XcmVersion:()=>Ze});import{SubstrateQueryConfig as _s}from"@galacticcouncil/xc-core";function ct(){return{assetRegistry:jr,assets:$r}}function jr(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new _s({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new _s({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function $r(){return{asset:()=>({build:({asset:t})=>new _s({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as zr,ContractConfig as gn}from"@galacticcouncil/xc-core";function An(){return{erc20:Qr,native:Jr}}function Jr(){return{build:({address:t})=>new gn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Qr(){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 gn({abi:zr.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as $t}from"@galacticcouncil/xc-core";import{encodeAssetId as Ss,encodeLocation as Yr}from"@galacticcouncil/common";function wn(){return{assets:Zr,system:ti,tokens:si,ormlTokens:ni,foreignAssets:ei}}function Zr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=Ss(n);return new $t({module:"Assets",func:"Account",args:[r,t],transform:async a=>BigInt(a?.balance?.toString()??"0")})}})}}function ei(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let r=s.getAssetXcmLocation(e);if(!r)throw new Error("Missing asset xcm location for "+e.key);let a=Yr(r);return new $t({module:"ForeignAssets",func:"Account",args:[a,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function ti(){return{account:()=>({build:({address:t})=>new $t({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),r=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=r?n-r:0n}})})}}function si(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=Ss(n);return new $t({module:"Tokens",func:"Accounts",args:[t,r],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function ni(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),r=Ss(n);return new $t({module:"OrmlTokens",func:"Accounts",args:[t,r],transform:async a=>{let i=BigInt(a?.free?.toString()??"0"),m=BigInt(a?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as Cn}from"@galacticcouncil/xc-core";function kn(){return{native:ai,token:oi}}function ai(){return{build:({address:t})=>new Cn({address:t,func:"rpc_getBalance",module:"Native"})}}function oi(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new Cn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as ri}from"@galacticcouncil/xc-core";function Tn(){return{native:ii}}function ii(){return{build:({address:t})=>new ri({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:An,substrate:wn,solana:kn,sui:Tn}}import{Abi as vn,ContractConfig as ci,Precompile as mi}from"@galacticcouncil/xc-core";import{encodeFunctionData as ui}from"viem";var li=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),r=[0,0],a=s.map(i=>ui({abi:vn[i.module],functionName:i.func,args:i.args}));return new ci({abi:vn.Batch,address:mi.Batch,args:[n,r,a,[]],func:"batchAll",module:"Batch"})}}),Bn=()=>({batchAll:li});import{Abi as di,ContractConfig as fi,Wormhole as pi}from"@galacticcouncil/xc-core";function Wt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Me(t){return typeof t=="object"?Object.values(t)[0]:t}function Pn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:r,transact:a}=e,i=a?a.chain:r.chain,m=pi.fromChain(i),c=i.getAssetId(n);return new fi({abi:di.Erc20,address:Me(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{Abi as hi,ContractConfig as bi,Wormhole as yi}from"@galacticcouncil/xc-core";import{h160 as xi}from"@galacticcouncil/common";var{H160:gi}=xi;function Ai(t){let e=new Uint8Array(20);return e[15]=1,e[16]=t>>24&255,e[17]=t>>16&255,e[18]=t>>8&255,e[19]=t&255,"0x"+Buffer.from(e).toString("hex")}function wi(t){let e=t.replace("0x","").toLowerCase();return`0x${"0".repeat(24)}${e}`}var Ci=t=>({build:async e=>{let{address:s,amount:n,asset:r,source:a,destination:i}=e,m=a.chain,c=i.chain,l=yi.fromChain(t.destChain),f=m.getAssetId(r),h=c.getAssetId(t.destAsset),x=m.getInstaBridge();if(!x)throw new Error(`InstaBridge not configured for ${m.name}`);return new bi({abi:hi.InstaBridge,address:x,args:[Me(f),n,l.getWormholeId(),Ai(h),wi(gi.fromAccount(s))],func:"bridgeViaWormhole",module:"InstaBridge"})}}),En=()=>({bridgeViaWormhole:Ci});import{addr as ki,Abi as In,ContractConfig as Fn,Precompile as Xn}from"@galacticcouncil/xc-core";import{big as Ti}from"@galacticcouncil/common";var{Ss58Addr:Rn}=ki;function vi(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 Ds(t,e){let s=t.getAssetId(e);return typeof s=="string"?vi(s):s}function _n(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=Ds(r.chain,s);return new Fn({abi:In.PolkadotXcm,address:Xn.PolkadotXcm,args:[n.chain.parachainId,Rn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=Ds(r.chain,s),i=Ds(r.chain,r.destinationFeeBalance),m=Ti.toBigInt(n.fee.amount,n.fee.decimals);return new Fn({abi:In.PolkadotXcm,address:Xn.PolkadotXcm,args:[n.chain.parachainId,Rn.getPubKey(t),[{asset:a,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Bi,Abi as Pi,ContractConfig as Ei,Snowbridge as Ii}from"@galacticcouncil/xc-core";var{Ss58Addr:Fi}=Bi,Xi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a}=t,i=r.chain,m=a.chain,c=Ii.fromChain(i),l=i.getAssetId(n),f=Me(l),h=n.originSymbol==="ETH",x=a.feeBreakdown.bridgeFeeInDot,k=a.fee.amount;return new Ei({abi:Pi.Snowbridge,address:c.getGateway(),args:[f,m.parachainId,[1,Fi.getPubKey(e)],x,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),Sn=()=>({sendToken:Xi});import{mrl as Ln,Abi as as,ContractConfig as os,Precompile as Hn,Wormhole as mt}from"@galacticcouncil/xc-core";import{PublicKey as Dn}from"@solana/web3.js";import{getAssociatedTokenAddress as Ri,NATIVE_MINT as _i}from"@solana/spl-token";var Si=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:r,source:a,destination:i}=e,m=mt.fromChain(a.chain),c=mt.fromChain(t.moonchain),l=Hn.Bridge,f=a.chain.getAssetId(r),h=0,x=await Ln.createPayload(i.chain,s);return new os({abi:as.TokenBridge,address:m.getTokenBridge(),args:[Me(f),n,c.getWormholeId(),c.normalizeAddress(l),h,x.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Di=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,destination:a}=e,i=mt.fromChain(r.chain),m=mt.fromChain(t.moonchain),c=Hn.Bridge,l=0,f=await Ln.createPayload(a.chain,s);return new os({abi:as.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,f.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Li=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a,transact:i}=t,m=i?i.chain:r.chain,c=a.chain,l=mt.fromChain(m),f=mt.fromChain(c),h=c.getAssetId(n),x=e;if(c.isSolana()){let S=h==="SOL"?_i:new Dn(h);x=(await Ri(S,new Dn(e))).toBase58()}let k=m.getAssetId(n),I=0,M=0;return new os({abi:as.TokenBridge,address:l.getTokenBridge(),args:[Me(k),s,f.getWormholeId(),f.normalizeAddress(x),I,M],func:"transferTokens",module:"TokenBridge"})}}),Hi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:r}=t,a=mt.fromChain(n.chain),i=mt.fromChain(r.chain),m=0,c=0;return new os({abi:as.TokenBridge,address:a.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Wn=()=>({transferTokens:Li,transferTokensWithPayload:Si,wrapAndTransferETH:Hi,wrapAndTransferETHWithPayload:Di});import{Abi as Wi,ContractConfig as Mi,Wormhole as Mn}from"@galacticcouncil/xc-core";var Vi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:r,destination:a,transact:i}=t,m=i?i.chain:r.chain,c=a.chain,l=Mn.fromChain(m),f=Mn.fromChain(c),h=0,x=0,k=m.getAssetId(n);return new Mi({abi:Wi.TokenRelayer,address:l.getTokenRelayer(),args:[Me(k),s,h,f.getWormholeId(),f.normalizeAddress(e),x],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Vn=()=>({transferTokensWithRelay:Vi});function Un(){return{TokenBridge:Wn,TokenRelayer:Vn}}function E(){return{Batch:Bn,Erc20:Pn,InstaBridge:En,PolkadotXcm:_n,Snowbridge:Sn,Wormhole:Un}}import{ExtrinsicConfig as Ui}from"@galacticcouncil/xc-core";var Kn="AssetConversion",Ki=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:r}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=a,c=r,l=c.getAssetXcmLocation(i),f=c.getAssetXcmLocation(m),h=i.amount+i.amount*BigInt(t.slippage)/100n,x=m.amount;return new Ui({module:Kn,func:e,getTx:k=>k.getUnsafeApi().tx[Kn][e]({path:[l,f],amount_out:x,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Nn=()=>({swapTokensForExactTokens:Ki});import{hub as Ni,MultiAddress as Oi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Gi}from"@galacticcouncil/xc-core";var qi="Assets",ji=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:r})=>{let a=r.chain,{fee:i}=r,m=s>i.amount?s-i.amount:s,c=a.getMetadataAssetId(e);return new Gi({module:qi,func:t,getTx:l=>l.getTypedApi(Ni).tx.Assets.transfer({id:Number(c),target:Oi.Id(n),amount:m})})}}},On=()=>({transfer:ji});import{ExtrinsicConfig as $i}from"@galacticcouncil/xc-core";var Gn="Balances",zi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new $i({module:Gn,func:e,getTx:n=>n.getUnsafeApi().tx[Gn][e]({dest:s,keep_alive:t})})}},qn=()=>({transferAll:zi});import{hydration as Ji}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Qi}from"@galacticcouncil/xc-core";var Yi="Router",Zi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:r}=s;if(!r)throw new Error("Swap context not found.");let{aIn:a,aOut:i,route:m}=r,c=n,l=c.getMetadataAssetId(a),f=c.getMetadataAssetId(i),h=i.amount,x=a.amount+a.amount*BigInt(t.slippage)/100n;return new Qi({module:Yi,func:"buy",getTx:k=>k.getTypedApi(Ji).tx.Router.buy({asset_in:Number(l),asset_out:Number(f),amount_out:h,max_amount_in:x,route:m})})}}),jn=()=>({buy:Zi});import{ExtrinsicConfig as ec}from"@galacticcouncil/xc-core";var $n="Utility",tc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(r=>r.build(s)));return new ec({module:$n,func:e,getTx:r=>{let a=n.map(i=>i.getTx(r).decodedCall);return r.getUnsafeApi().tx[$n][e]({calls:a})}})}}},zn=()=>({batchAll:tc});import{Abi as sc,ExtrinsicConfig as nc}from"@galacticcouncil/xc-core";import{Binary as Jn}from"polkadot-api";import{encodeFunctionData as ac}from"viem";var Ze=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(Ze||{}),re=(r=>(r.Teleport="Teleport",r.LocalReserve="LocalReserve",r.DestinationReserve="DestinationReserve",r.RemoteReserve="RemoteReserve",r))(re||{});var Qn="EthereumXcm",oc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),r="V1",a=ac({abi:sc[n.module],functionName:n.func,args:n.args});return new nc({module:Qn,func:e,getTx:i=>i.getUnsafeApi().tx[Qn][e]({xcm_transaction:{type:r,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:Jn.fromHex(n.address)},value:[0n,0n,0n,0n],input:Jn.fromHex(a),access_list:void 0}}})})}}},Ls=()=>({transact:oc});import{ExtrinsicConfig as Ct}from"@galacticcouncil/xc-core";import{big as Js}from"@galacticcouncil/common";import{multiloc as Pc,ChainEcosystem as js}from"@galacticcouncil/xc-core";import{Binary as Ec}from"polkadot-api";import{XcmV3Junctions as pe,XcmV3Junction as Qt,XcmV3JunctionNetworkId as ba,XcmV3MultiassetFungibility as At,XcmV4Instruction as Q,XcmV4AssetAssetFilter as Ut,XcmV4AssetWildAsset as Kt,XcmV3WeightLimit as $s,XcmV2MultiassetWildFungibility as Ic,XcmV2OriginKind as Fc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as rc}from"@galacticcouncil/descriptors";var ie=340282366920938463463374607431768211455n,xt="0x0000000000000000000000000000000000000000000000000000000000000000",Mt={parents:1,interior:rc.Here()},Yn=0,Zn=1e3,ea=1002,ta=1,gt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var sa="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as Ac,XcmV3MultiassetFungibility as Ws,XcmV3WeightLimit as wc,XcmV4AssetAssetFilter as Cc,XcmV4AssetWildAsset as kc,XcmV4Instruction as zt}from"@galacticcouncil/descriptors";import{Binary as Tc}from"polkadot-api";import{acc as ic}from"@galacticcouncil/common";import{XcmV3Junction as na}from"@galacticcouncil/descriptors";import{FixedSizeBinary as aa}from"polkadot-api";import{getSs58AddressInfo as cc}from"@polkadot-api/substrate-bindings";import{toHex as mc}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return na.AccountKey20({key:aa.fromHex(t),network:void 0});let s=cc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return na.AccountId32({id:aa.fromHex(mc(s.publicKey)),network:void 0})}function Vt(t,e,s){return ic.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as oa}from"@galacticcouncil/xc-core";function ra(t,e){let s=oa.findNestedKey(t,"GeneralIndex"),n=oa.findNestedKey(e,"GeneralIndex"),r=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(r)||Number.isNaN(a)?!1:Number(r)>Number(a)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var cs={};jt(cs,{ETHER_TOKEN_ADDRESS:()=>Hs,erc20Location:()=>dc,erc20LocationReanchored:()=>fc,ethereumLocation:()=>ma,parachainLocation:()=>lc});import{XcmV3Junctions as rs,XcmV3Junction as is,XcmV3JunctionNetworkId as uc}from"@galacticcouncil/descriptors";import{Binary as ia}from"polkadot-api";var Hs="0x0000000000000000000000000000000000000000",ca=t=>is.GlobalConsensus(uc.Ethereum({chain_id:BigInt(t)}));function ma(t){return{parents:2,interior:rs.X1(ca(t))}}function lc(t){return{parents:1,interior:rs.X1(is.Parachain(t))}}function dc(t,e){return e===Hs?ma(t):{parents:2,interior:rs.X2([ca(t),is.AccountKey20({key:ia.fromHex(e)})])}}function fc(t){return t===Hs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:rs.X1(is.AccountKey20({key:ia.fromHex(t)}))}}import{encodeLocation as ua}from"@galacticcouncil/common";import{multiloc as pc}from"@galacticcouncil/xc-core";function J(t,e){return hc(e)>=4?ua(t):bc(t)}function hc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function bc(t){return{type:"Concrete",value:ua(t)}}var yc=1e3;function xc(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(r=>r&&typeof r=="object"&&"GlobalConsensus"in r):!1}function gc(t){if(t)return xc(t)?yc:pc.findParachain(t)}function la(t,e,s,n){let r=e.getAssetXcmLocation(t),a=gc(r),i=n?.parachainId??s.parachainId;if(a&&i!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function Ms(t,e){let s="V4",n=J(z(e,t),s),r=Tc.fromHex(xt);return[zt.ReserveAssetDeposited([{id:Mt,fun:Ws.Fungible(ie)},{id:n,fun:Ws.Fungible(ie)}]),zt.ClearOrigin(),zt.BuyExecution({fees:{id:Mt,fun:Ws.Fungible(ie)},weight_limit:wc.Unlimited()}),zt.DepositAsset({assets:Cc.Wild(kc.AllCounted(2)),beneficiary:{parents:0,interior:Ac.X1(O(gt))}}),zt.SetTopic(r)]}import{XcmV4Instruction as Vs,XcmV3MultiassetFungibility as Us,XcmV3WeightLimit as vc}from"@galacticcouncil/descriptors";function da(t,e){let s="V4",n=J(z(e,t),s),r=ms("V4",O(sa),O(gt),n,xt);return[Vs.WithdrawAsset([{id:Mt,fun:Us.Fungible(ie)},{id:n,fun:Us.Fungible(ie)}]),Vs.ClearOrigin(),Vs.BuyExecution({fees:{id:Mt,fun:Us.Fungible(ie)},weight_limit:vc.Unlimited()}),...r.value]}import{XcmV3Junctions as Ks,XcmV3Junction as Bc,XcmV3MultiassetFungibility as Jt,XcmV3WeightLimit as Ns,XcmV4AssetAssetFilter as Os,XcmV4AssetWildAsset as Gs,XcmV4Instruction as Ae}from"@galacticcouncil/descriptors";import{Binary as fa}from"polkadot-api";function pa(t,e){let s="V4",n=J(z(e,t),s),r=fa.fromHex(xt);return[Ae.WithdrawAsset([{id:n,fun:Jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Ns.Unlimited()}),Ae.DepositAsset({assets:Os.Wild(Gs.AllCounted(1)),beneficiary:{parents:0,interior:Ks.X1(O(gt))}}),Ae.SetTopic(r)]}function qs(t,e){let s="V4",n=J(z(e,t),s);return[Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Ns.Unlimited()}),Ae.DepositAsset({assets:Os.Wild(Gs.AllCounted(1)),beneficiary:{parents:0,interior:Ks.X1(O(gt))}})]}function ha(t,e,s){let n="V4",r=J(z(e,t),n),a=fa.fromHex(xt),i=qs(t,s);return[Ae.WithdrawAsset([{id:r,fun:Jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:r,fun:Jt.Fungible(ie)},weight_limit:Ns.Unlimited()}),Ae.DepositReserveAsset({assets:Os.Wild(Gs.AllCounted(1)),dest:{parents:1,interior:Ks.X1(Bc.Parachain(s.parachainId))},xcm:i}),Ae.SetTopic(a)]}var ya=[js.Polkadot,js.Kusama],Xc={parents:1,interior:pe.X1(Qt.Parachain(1e3))},Rc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},_c=(t,e)=>!t.ecosystem||!e.ecosystem?!1:ya.includes(t.ecosystem)&&ya.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,xa=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},qe=(t,e,s)=>{if(_c(e,s)){let r=s.ecosystem===js.Polkadot?ba.Polkadot():ba.Kusama();return{type:t,value:{parents:2,interior:pe.X2([Qt.GlobalConsensus(r),Qt.Parachain(s.parachainId)])}}}if(s.parachainId===Yn)return{type:t,value:{parents:1,interior:pe.Here()}};let n=s.key==="ethereum"?Zn:s.parachainId;return{type:t,value:{parents:1,interior:pe.X1(Qt.Parachain(n))}}},wt=(t,e)=>({type:t,value:{parents:0,interior:pe.X1(e)}}),zs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Rc(s)?Xc:s}}:{type:e},ut=(t,e)=>({id:t,fun:At.Fungible(e)}),ga=(t,e,s)=>({type:t,value:[Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(s)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var ms=(t,e,s,n,r)=>{let a=Ec.fromHex(r);return{type:t,value:[Q.SetAppendix([Q.DepositAsset({assets:Ut.Wild(Kt.All()),beneficiary:{parents:0,interior:pe.X1(s)}})]),Q.InitiateReserveWithdraw({assets:Ut.Wild(Kt.AllOf({id:n,fun:Ic.Fungible()})),reserve:cs.ethereumLocation(ta),xcm:[Q.BuyExecution({fees:{id:Sc(n),fun:At.Fungible(1n)},weight_limit:$s.Unlimited()}),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}}),Q.SetTopic(a)]}),Q.SetTopic(a)]}},Sc=t=>{let e=Pc.findNestedKey(t,"key");return e?{parents:0,interior:pe.X1(Qt.AccountKey20({key:e.key}))}:{parents:0,interior:pe.Here()}},Aa=(t,e,s,n,r,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(n)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(n)},weight_limit:$s.Unlimited()}),Q.Transact({origin_kind:Fc.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:r}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]}),wa=(t,e,s,n,r,a)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(r)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(r)},weight_limit:$s.Unlimited()}),Q.TransferAsset({assets:[{id:s,fun:At.Fungible(n)}],beneficiary:{parents:0,interior:pe.X1(a)}}),Q.RefundSurplus(),Q.DepositAsset({assets:Ut.Wild(Kt.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var ce="PolkadotXcm",Dc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J(z(i,s),c),f=J(z(i,n.fee),c),h=ut(l,e),x=ut(f,n.fee.amount),k="limited_reserve_transfer_assets";return new Ct({module:ce,func:k,getTx:I=>{let M=I.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):ra(l,f)?M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[x,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):M({dest:qe(c,i,m),beneficiary:wt(c,a),assets:{type:c,value:[h,x]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Lc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J(z(i,s),c),f=ut(l,e),h=qe(c,i,m),x=wt(c,a),k={type:c,value:[f]},I="limited_teleport_assets";return new Ct({module:ce,func:I,getTx:M=>M.getUnsafeApi().tx[ce][I]({dest:h,beneficiary:x,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Hc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c=i.xcmVersion??"V4",l=J(z(i,s),c),f=ut(l,e),h=qe(c,i,m),x=wt(c,a),k={type:c,value:[f]},I="reserve_transfer_assets";return new Ct({module:ce,func:I,getTx:M=>M.getUnsafeApi().tx[ce][I]({dest:h,beneficiary:x,assets:k,fee_asset_item:0})})}}),Wc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:r})=>{let a=O(t),i=r.chain,m=n.chain,c="V4",l=J(z(i,s),c),f=ut(l,e),h=qe(c,i,m),x=wt(c,a),k={type:c,value:[f]},I="transfer_assets";return new Ct({module:ce,func:I,getTx:M=>M.getUnsafeApi().tx[ce][I]({dest:h,beneficiary:x,assets:k,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Mc=t=>({build:async({address:e,asset:s,amount:n,destination:r,messageId:a,sender:i,source:m,transact:c})=>{let l="V4",f=m.chain,h=r.chain,x=r.fee.amount,k=r.fee;c&&(h=c.chain,x=Js.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let I=O(i),M=c||h.usesCexForwarding?Vt(f,i,h):e,S=O(M),{transferType:q}=t,K=J(z(f,s),l),w=J(z(f,k),l),Ke=ut(K,n),ht=ut(w,x),$e=s.isEqual(k),nt=qe(l,f,h),ze={type:l,value:$e?[Ke]:[ht,Ke]},at=zs(l,q,K),qt={type:l,value:$e?K:w},Is=zs(l,q,w),Bt;xa(K)&&r.chain.isEvmChain()?Bt=ms(l,S,I,K,a):Bt=ga(l,S,ze.value.length);let ss="transfer_assets_using_type_and_then";return new Ct({module:ce,func:ss,getTx:Mo=>Mo.getUnsafeApi().tx[ce][ss]({dest:nt,assets:ze,assets_transfer_type:at,remote_fees_id:qt,fees_transfer_type:Is,custom_xcm_on_dest:Bt,weight_limit:{type:"Unlimited"}})})}}),Vc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:r,transact:a}=s,i="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let m=r.chain,c=a.chain,l=Vt(m,n,c),f=O(l),{fee:h}=a,x=J(z(c,h),i),k=Js.toBigInt(e.fee,h.decimals);return new Ct({module:ce,func:t,getTx:I=>I.getUnsafeApi().tx[ce][t]({dest:qe(i,m,c),message:Aa(i,f,x,k,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:r,asset:a,sender:i,source:m,destination:c}=s,l="V4",f=m.chain,h=c.chain,x=Vt(f,i,h),k=O(x),I=O(r),M=J(z(h,a),l),{fee:S}=c,q=Js.toBigInt(e.fee,S.decimals),K=n>S.amount?n-(S.amount+q):n;return new Ct({module:ce,func:t,getTx:w=>w.getUnsafeApi().tx[ce][t]({dest:qe(l,f,h),message:wa(l,k,M,K,q,I)})})}})}},Qs=()=>({limitedReserveTransferAssets:Dc,limitedTeleportAssets:Lc,reserveTransferAssets:Hc,transferAssets:Wc,transferAssetsUsingTypeAndThen:Mc,send:Vc});import{ExtrinsicConfig as Kc}from"@galacticcouncil/xc-core";import{encodeAssetId as Nc}from"@galacticcouncil/common";import{XcmV3Junctions as Ca,XcmV3Junction as Uc}from"@galacticcouncil/descriptors";var ka=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ca.X1(s)}}:{type:t,value:{parents:1,interior:Ca.X2([Uc.Parachain(e.parachainId),s])}};var Ta="XTokens",Oc=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:r,source:a})=>{let i=a.chain,m=n.chain,c="V3",l=m.usesCexForwarding?Vt(i,r,m):t,f=O(l),h=i.getAssetId(s),x=Nc(h),k="transfer";return new Kc({module:Ta,func:k,getTx:I=>I.getUnsafeApi().tx[Ta][k]({currency_id:x,amount:e,dest:ka(c,m,f),dest_weight_limit:{type:"Unlimited"}})})}}),Ys=()=>({transfer:Oc});function u(){return{assetConversion:Nn,assets:On,balances:qn,ethereumXcm:Ls,polkadotXcm:Qs,router:jn,utility:zn,xTokens:Ys}}function et(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 Pa,Snowbridge as sm,Wormhole as Ba}from"@galacticcouncil/xc-core";var va={};jt(va,{AssethubClient:()=>me,BaseClient:()=>we,HydrationClient:()=>Ve});import{encodeLocation as Gc}from"@galacticcouncil/common";import{hub as qc,XcmVersionedAssetId as jc}from"@galacticcouncil/descriptors";var we=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??qc}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:r,frozen:a}=n;return BigInt(r)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let r=this.chain.getAssetXcmLocation(s);if(!r)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=Gc(r),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,jc.V4(a));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as $c,XcmV5Junction as zc,XcmVersionedLocation as Jc}from"@galacticcouncil/descriptors";import{encodeLocation as Qc}from"@galacticcouncil/common";import{Twox128 as Yc,u128 as Zc}from"@polkadot-api/substrate-bindings";import{toHex as em}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),r=Qc(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(r):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let r=await this.api().query.Assets.Account.getValue(Number(n),e);return r&&r.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=em(Yc(s)),r=await this.client._request("state_getStorage",[n]);if(!r)return e.defaultFee;let a=Zc.dec(r);return a===0n?e.defaultFee:a}async calculateDeliveryFee(e,s){let n=Jc.V5({parents:1,interior:$c.X1(zc.Parachain(s))}),r=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!r.success)throw Error("Can't query XCM delivery fee.");let a=r.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!a)throw Error("Can't find XCM delivery fee in DOT.");let i=a.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as tm}from"@galacticcouncil/descriptors";var Ve=class extends we{constructor(e){super(e,tm)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),r=await this.api().query.AssetRegistry.Assets.getValue(n);return r?r.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:r,frozen:a}=n;return BigInt(r)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),r=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:i}=r;return BigInt(a)-BigInt(i)}};function nm(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,r=e,a=Ba.fromChain(n),i=Ba.fromChain(r),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Pa.TokenRelayer,address:a.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function am(){return{TokenRelayer:nm}}function om(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let r=n,a=s,i=sm.fromChain(r),m=new we(a),c=new me(t.hub),l=Ms(e,a),[f,h]=await Promise.all([m.calculateDestinationFee(l,g),c.calculateDeliveryFee(l,a.parachainId)]),x=h+Wt(f,25n),k=r.getAssetId(e);return{amount:await r.evmClient.getProvider().readContract({abi:Pa.Snowbridge,address:i.getGateway(),args:[k,a.parachainId,x],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:x}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let r=n,a=new me(t.hub),i=da(e,r),m=Ms(e,r),[c,l,f,h,x]=await Promise.all([a.getBridgeDeliveryFee(),a.calculateDeliveryFee(i,ea),a.calculateDestinationFee(i,s),a.calculateDeliveryFee(m,r.parachainId),a.calculateDestinationFee(m,s)]);return{amount:c+l+Wt(f,25n)+h+Wt(x,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:f,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:x}}}})}}function rm(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let r=s,a=n,i=t?.reserve;if(la(e,r,a,i),i){let x=new we(a),k=new we(i),I=qs(e,a),M=ha(e,i,a),[S,q]=await Promise.all([x.calculateDestinationFee(I,e),k.calculateDestinationFee(M,e)]),K=q+S,w=Wt(K,20n),Ke=w-K;return{amount:w,breakdown:{reserveFee:q,destinationFee:S,margin:Ke}}}let m=new we(a),c=pa(e,a),l=await m.calculateDestinationFee(c,e),f=Wt(l,20n),h=f-l;return{amount:f,breakdown:{totalFee:l,margin:h}}}})}}function A(){return{XcmPaymentApi:rm,Snowbridge:om,Wormhole:am}}var im="0";function cm(){return{build:async({address:t,chain:e})=>{let n=await new Ve(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),r=n?n.toString():im,a=e.findAssetById(r);return a?a.asset:j}}}var mm=()=>({accountCurrencyMap:cm});function Yt(){return{multiTransactionPayment:mm}}import{mrl as Fa,Precompile as Xa,ProgramConfig as Ra,Wormhole as us}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as um,NATIVE_MINT as Ea,TOKEN_PROGRAM_ID as lm,createCloseAccountInstruction as dm,createInitializeAccountInstruction as fm,getMinimumBalanceForRentExemptAccount as pm,getAssociatedTokenAddress as hm}from"@solana/spl-token";import{Keypair as Zs,PublicKey as en,SystemProgram as Ia}from"@solana/web3.js";import{UniversalAddress as _a}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Sa,createTransferNativeWithPayloadInstruction as Da,getWrappedMeta as bm}from"@wormhole-foundation/sdk-solana-tokenbridge";var ym=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,sender:a,destination:i}=e,m=r.chain,c=m,l=us.fromChain(m),f=us.fromChain(t.moonchain),h=Xa.Bridge,x=await Fa.createPayload(i.chain,s),k=new en(a),I=new _a(h),M=f.getWormholeId(),S=k,q=0,K=Zs.generate(),w=Zs.generate(),Ke=await pm(c.connection),ht=Ia.createAccount({fromPubkey:S,newAccountPubkey:w.publicKey,lamports:Ke,space:um,programId:lm}),$e=Ia.transfer({fromPubkey:S,lamports:n,toPubkey:w.publicKey}),nt=fm(w.publicKey,Ea,S),ze=Sa(l.getTokenBridge(),w.publicKey,S,n),at=Da(c.connection,l.getTokenBridge(),l.getCoreBridge(),a,K.publicKey,w.publicKey,Ea,q,n,I.toUint8Array(),M,x.toU8a()),qt=dm(w.publicKey,S,S);return new Ra({instructions:[ht,$e,nt,ze,at,qt],signers:[K,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ke)})}})}),xm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:r,source:a,sender:i,destination:m}=e,c=a.chain,l=c,f=us.fromChain(c),h=us.fromChain(t.moonchain),x=Xa.Bridge,k=await Fa.createPayload(m.chain,s),I=new en(i),M=a.chain.getAssetId(r),S=new en(M),q=await hm(S,I),K=new _a(x),w=h.getWormholeId();if(await bm(l.connection,f.getTokenBridge(),S).catch(at=>null).then(at=>at!=null))throw new Error("Wrapped assets not supported yet");let ht=0,$e=Zs.generate(),nt=Sa(f.getTokenBridge(),q,I,n),ze=Da(l.connection,f.getTokenBridge(),f.getCoreBridge(),i,$e.publicKey,q,S,ht,n,K.toUint8Array(),w,k.toU8a());return new Ra({instructions:[nt,ze],signers:[$e],func:"TransferWithPayload",module:"TokenBridge"})}})}),La=()=>({transferNativeWithPayload:ym,transferTokenWithPayload:xm});function Ha(){return{TokenBridge:La}}function Zt(){return{Wormhole:Ha}}import{mrl as gm,MoveConfig as Am,Precompile as wm,Wormhole as Wa}from"@galacticcouncil/xc-core";import{Transaction as Cm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as km,SUI_TYPE_ARG as Tm}from"@mysten/sui/utils";import{UniversalAddress as vm}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as Bm,getPackageId as Ma}from"@wormhole-foundation/sdk-sui";var Pm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:r,sender:a,destination:i}=e,m=r.chain,c=m,l=Wa.fromChain(m),f=Wa.fromChain(t.moonchain),h=0,x=wm.Bridge,k=await gm.createPayload(i.chain,s),I=new vm(x),M=f.getWormholeId(),S=Tm,[q,K]=await Promise.all([Ma(c.client,l.coreBridge),Ma(c.client,l.tokenBridge)]),w=new Cm,[Ke]=w.splitCoins(w.gas,[w.pure.u64(n)]),[ht]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[$e]=w.moveCall({target:`${K}::state::verified_asset`,arguments:[w.object(l.tokenBridge)],typeArguments:[S]}),nt=!1,ze=await(async()=>{let Bt=await Bm(c.client,q,a);if(Bt!==null)return w.object(Bt);{let[ss]=w.moveCall({target:`${q}::emitter::new`,arguments:[w.object(l.coreBridge)]});return nt=!0,ss}})(),[at,qt]=w.moveCall({target:`${K}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ze,$e,Ke,w.pure.u16(M),w.pure.vector("u8",I.toUint8Array()),w.pure.vector("u8",k.toU8a()),w.pure.u32(h)],typeArguments:[S]});w.moveCall({target:`${K}::coin_utils::return_nonzero`,arguments:[qt],typeArguments:[S]});let[Is]=w.moveCall({target:`${K}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(l.tokenBridge),at],typeArguments:[S]});return w.moveCall({target:`${q}::publish_message::publish_message`,arguments:[w.object(l.coreBridge),ht,Is,w.object(km)]}),nt&&w.transferObjects([ze],w.pure.address(a)),new Am({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Va=()=>({transferNativeWithPayload:Pm});function Ua(){return{TokenBridge:Va}}function tn(){return{Wormhole:Ua}}var Na={};jt(Na,{Tag:()=>tt});var tt=(a=>(a.InstaBridge="InstaBridge",a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(tt||{});function Ga(t,e){return new Oa({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:E().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function qa(t,e){return new Oa({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:E().InstaBridge().bridgeViaWormhole({destChain:B,destAsset:e}),tags:["InstaBridge"]})}var Im=[Ga(Je,Ne)],Fm=[qa(Je,Ne)],ja=new Em({chain:Et,routes:[...Im,...Fm]});import{AssetRoute as ls,ChainRoutes as Xm}from"@galacticcouncil/xc-core";import{AssetRoute as $a}from"@galacticcouncil/xc-core";function Nt(t,e){return new $a({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:E().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new $a({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:E().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Rm=[new ls({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:E().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Nt(le,ee),Nt(Ge,xe),Nt(b,ye),Nt(p,be),Nt(Oe,he)],_m=[new ls({source:{asset:F,balance:o().evm().native(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:F,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:E().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(ke,ke),oe(ve,ve),oe(Be,Be),oe(Re,Re),oe(Se,Se),oe(De,De),oe(Ie,Ie),oe(Pe,Pe),oe(Fe,Fe),oe(_e,_e),oe(Le,Le),oe(We,We),oe(b,yt),oe(p,bt)],ex=[new ls({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:E().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new ls({source:{asset:le,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:le,balance:o().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:E().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],za=new Xm({chain:_,routes:[...Rm,..._m]});var Ja=[ja,za];import{AssetRoute as ps,ChainRoutes as Ya}from"@galacticcouncil/xc-core";import{AssetRoute as sn}from"@galacticcouncil/xc-core";var kt=0,Sm=t=>{let{source:e}=t;return!!e.feeSwap},Dm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Qa=u().assetConversion().swapTokensForExactTokens({slippage:30});function Lm(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:et(Dm,Qa).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function ds(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:et(Sm,Qa).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Tt(t,e,s){return new sn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function fs(t){return Lm(t,d,.02)}var Hm=[new ps({source:{asset:g,balance:o().substrate().system().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().system().account()},min:ct().assets().asset()},destination:{chain:d,asset:g,fee:{amount:.001,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new ps({source:{asset:P,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Tt(p,d,.02),Tt(b,d,.02),fs(Qe)],Wm=[new ps({source:{asset:P,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:Ye,asset:P,fee:{amount:.001,asset:P}},extrinsic:u().polkadotXcm().transferAssets()})],Mm=[Tt(p,B,.25),Tt(b,B,.25)],Vm=[Tt(p,L,.03),Tt(b,L,.03)],Um=[new ps({source:{asset:U,balance:o().substrate().foreignAssets().account(),fee:{asset:g,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:rt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],Za=new Ya({chain:ot,routes:[ds(p,d,.02),ds(b,d,.02),ds(g,d,.001)]}),eo=new Ya({chain:C,routes:[...Hm,...Wm,...Mm,...Vm,...Um]});import{AssetRoute as st,ChainRoutes as Km}from"@galacticcouncil/xc-core";var Nm=[new st({source:{asset:D,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new st({source:{asset:X,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:T,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:R,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:H,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:W,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:$,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:$,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:$}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:p,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:p,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:b,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],to=new Km({chain:Z,routes:[...Nm]});import{AssetRoute as Ue,ChainRoutes as Om}from"@galacticcouncil/xc-core";var Gm=[new Ue({source:{asset:X,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:W,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:$,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:$,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:g,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:g,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ue({source:{asset:D,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:D,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:D}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:T,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:R,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:p,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],qm=[new Ue({source:{asset:p,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:p,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],so=new Om({chain:L,routes:[...Gm,...qm]});import{AssetRoute as je,ChainRoutes as Ym}from"@galacticcouncil/xc-core";var jm="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===jm?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as vt}from"@galacticcouncil/xc-core";var $m=.9,zm=1,Jm=1,hs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},bs=u().router().buy({slippage:30});function V(t,e,s){return new vt({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 Ot(t,e,s){return new vt({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 lt(t,e){return new vt({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 ys(t){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:C,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:et(hs,bs).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function Qm(t,e,s="LocalReserve"){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:Jm,asset:T}},extrinsic:et(hs,bs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function dt(t){return Qm(t,B,"DestinationReserve")}function no(t,e,s,n,r,a){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:et(hs,bs).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:$m})]),transact:{chain:B,fee:{amount:zm,asset:T,balance:v()},extrinsic:u().ethereumXcm().transact(r)},tags:a})}function es(t,e,s){return no(t,e,s,0,E().Batch().batchAll([E().Erc20().approve(n=>n.getTokenBridge()),E().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function ft(t,e,s){return no(t,e,s,A().Wormhole().TokenRelayer().calculateRelayerFee(),E().Batch().batchAll([E().Erc20().approve(n=>n.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function te(t,e,s){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:s,asset:e,fee:{amount:A().Snowbridge().calculateOutboundFee({hub:C}),asset:g}},extrinsic:et(hs,bs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Zm=[lt(g,C),lt(P,C),lt(p,C),lt(b,C),ys(Qe)],e0=[V(D,Z),V(X,Z,L),V(T,Z,B),new je({source:{asset:R,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new je({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($,Z,L),V(p,Z,C),V(b,Z,C)],t0=[V(X,L),V(W,L),V($,L),V(D,L,Z),V(T,L,B),new je({source:{asset:R,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(p,L,C),V(b,L,C),new je({source:{asset:g,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:g,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],s0=[Ot(R,ge,62e-8),Ot(H,ge,.0019213457),Ot(j,ge,.5),Ot(p,ge,.3),Ot(b,ge,.3),new je({source:{asset:W,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:W,fee:{amount:.01,asset:g}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new je({source:{asset:g,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:ge,asset:g,fee:{amount:.05,asset:g}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],n0=[V(j,B),V(T,B),V(p,B,C),V(b,B,C),dt(ee),dt(he),dt(ye),dt(be),dt(xe),dt(Y),dt(N)],a0=[new je({source:{asset:U,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:rt,asset:U,fee:{amount:2.5,asset:U}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],o0=[V(He,St)],r0=[new je({source:{asset:ue,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Ft,asset:ue,fee:{amount:.04,asset:ue}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],i0=[V(Ee,Xt)],c0=[new je({source:{asset:de,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Dt,asset:de,fee:{amount:.02,asset:de}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],m0=[new je({source:{asset:fe,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:_t,asset:fe,fee:{amount:1.1,asset:fe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],u0=[V(Xe,Rt)],l0=[V(Te,It)],d0=[es(Ne,Je,Et)],f0=[ft(ee,le,_),ft(Y,F,_),ft(xe,Ge,_),ft(be,p,_),ft(ye,b,_),es(he,Oe,_)],p0=[te(F,F,_),te(ke,ke,_),te(ve,ve,_),te(Be,Be,_),te(Re,Re,_),te(Se,Se,_),te(De,De,_),te(Le,Le,_),te(Ie,Ie,_),te(Pe,Pe,_),te(Fe,Fe,_),te(_e,_e,_),te(We,We,_),te(yt,b,_),te(bt,p,_)],h0=[ft(N,N,it),es(se,se,it),es(ne,ne,it)],b0=[ft(ae,ae,Lt)],y0=[lt(g,ot),lt(p,ot),lt(b,ot)],ao=new Ym({chain:d,routes:[...l0,...Zm,...e0,...d0,...t0,...y0,...r0,...p0,...f0,...s0,...i0,...c0,...n0,...a0,...u0,...m0,...h0,...b0,...o0]});import{AssetRoute as gs,ChainRoutes as x0}from"@galacticcouncil/xc-core";var nn=()=>o().substrate().tokens().accounts();function xs(t,e){return new gs({source:{asset:t,balance:nn(),fee:{asset:H,balance:nn()},destinationFee:{balance:nn()}},destination:{chain:d,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var g0=[new gs({source:{asset:H,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new gs({source:{asset:R,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:R,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new gs({source:{asset:j,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:j,fee:{amount:.5,asset:j}},extrinsic:u().xTokens().transfer()}),xs(W,L),xs(p,C),xs(b,C),xs(g,C)],oo=new x0({chain:ge,routes:[...g0]});import{AssetRoute as ts,ChainRoutes as C0}from"@galacticcouncil/xc-core";import{AssetRoute as ro}from"@galacticcouncil/xc-core";function A0(t,e,s){return new ro({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:E().PolkadotXcm().transferAssetsToPara32()})}function w0(t,e,s){return new ro({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:E().PolkadotXcm().transferAssetsToPara32()})}function pt(t,e){return A0(t,d,e)}function As(t,e){return w0(t,d,e)}var k0=[new ts({source:{asset:T,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:E().PolkadotXcm().transferAssetsToPara32()}),As(j,.6),As(p,.3),As(b,.3),pt(ee,.004),pt(he,.004),pt(ye,.004),pt(be,.004),pt(xe,1e-7),pt(Y,2e-6),pt(N,2e-5)],T0=[new ts({source:{asset:p,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:p,fee:{amount:.18,asset:p}},contract:E().PolkadotXcm().transferAssetsToPara32()}),new ts({source:{asset:b,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:E().PolkadotXcm().transferAssetsToPara32()})],yg=[new ts({source:{asset:Y,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:Y,balance:o().evm().erc20()}},destination:{chain:_,asset:F,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:F}},contract:E().Batch().batchAll([E().Erc20().approve(t=>t.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new ts({source:{asset:ee,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:ee,balance:o().evm().erc20()}},destination:{chain:_,asset:le,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:le}},contract:E().Batch().batchAll([E().Erc20().approve(t=>t.getTokenRelayer()),E().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],io=new C0({chain:B,routes:[...k0,...T0]});import{AssetRoute as co,ChainRoutes as v0}from"@galacticcouncil/xc-core";var B0=[new co({source:{asset:U,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:U,fee:{amount:.01,asset:U}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],P0=[new co({source:{asset:U,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:U,fee:{amount:.1,asset:U}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],mo=new v0({chain:rt,routes:[...B0,...P0]});import{AssetRoute as E0,ChainRoutes as I0}from"@galacticcouncil/xc-core";var F0=[new E0({source:{asset:He,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:He,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],uo=new I0({chain:St,routes:[...F0]});import{AssetRoute as X0,ChainRoutes as R0}from"@galacticcouncil/xc-core";var _0=[new X0({source:{asset:ue,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ue,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ue}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],lo=new R0({chain:Ft,routes:[..._0]});import{AssetRoute as S0,ChainRoutes as D0}from"@galacticcouncil/xc-core";var L0=[new S0({source:{asset:fe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.2,asset:fe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],fo=new D0({chain:_t,routes:[...L0]});import{AssetRoute as H0,ChainRoutes as W0}from"@galacticcouncil/xc-core";var M0=[new H0({source:{asset:Te,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Te,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:Te}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],po=new W0({chain:It,routes:[...M0]});import{AssetRoute as V0,ChainRoutes as U0}from"@galacticcouncil/xc-core";var K0=[new V0({source:{asset:Ee,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Ee,fee:{amount:2,asset:Ee}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],ho=new U0({chain:Xt,routes:[...K0]});import{AssetRoute as N0,ChainRoutes as O0}from"@galacticcouncil/xc-core";var G0=[new N0({source:{asset:de,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:de,fee:{amount:.03,asset:de}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],bo=new O0({chain:Dt,routes:[...G0]});import{AssetRoute as q0,ChainRoutes as j0}from"@galacticcouncil/xc-core";var $0=[new q0({source:{asset:Xe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Xe,fee:{amount:.205,asset:Xe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],yo=new j0({chain:Rt,routes:[...$0]});var xo=[po,eo,Za,to,so,ao,oo,io,mo,yo,uo,lo,fo,ho,bo];import{AssetRoute as an,ChainRoutes as z0}from"@galacticcouncil/xc-core";var J0=[new an({source:{asset:N,balance:o().solana().native(),destinationFee:{asset:N,balance:o().solana().native()}},destination:{chain:d,asset:N,fee:{amount:0,asset:N}},program:Zt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new an({source:{asset:se,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:se,balance:o().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new an({source:{asset:ne,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:ne,balance:o().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],go=new z0({chain:it,routes:[...J0]});var Ao=[go];import{AssetRoute as Q0,ChainRoutes as Y0}from"@galacticcouncil/xc-core";var Z0=[new Q0({source:{asset:ae,balance:o().sui().native(),destinationFee:{asset:ae,balance:o().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:tn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],wo=new Y0({chain:Lt,routes:[...Z0]});var Co=[wo];import{AssetRoute as ko,ChainRoutes as eu}from"@galacticcouncil/xc-core";import{AssetRoute as MA}from"@galacticcouncil/xc-core";var on=.0015;var tu=new ko({source:{asset:P,balance:o().substrate().system().account(),fee:{asset:P,balance:o().substrate().system().account(),extra:on},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:P,fee:{amount:.002,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),su=new ko({source:{asset:P,balance:o().substrate().system().account(),fee:{asset:P,balance:o().substrate().system().account(),extra:on},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:Ht,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),To=new eu({chain:Ye,routes:[su,tu]});import{AssetRoute as vo,ChainRoutes as au}from"@galacticcouncil/xc-core";var nu="0",Gt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===nu?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),rn=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:Gt()});var ou=[new vo({source:{asset:p,balance:Gt(),fee:rn(),destinationFee:{balance:Gt()}},destination:{chain:Ye,asset:p,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],ru=[new vo({source:{asset:P,balance:Gt(),fee:rn(),destinationFee:{balance:Gt()}},destination:{chain:Ye,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Bo=new au({chain:Ht,routes:[...ou,...ru]});var Po=[To,Bo];var iu=[...Ja,...xo,...Ao,...Co,...Po],cu=new Map(iu.map(t=>[t.chain.key,t]));import{Parachain as So}from"@galacticcouncil/xc-core";import{TransferValidation as Eo,TransferValidationError as Io}from"@galacticcouncil/xc-core";var ws=class extends Eo{async validate(e){let{source:s}=e,{chain:n,fee:r,feeBalance:a}=s;if(a.amount<r.amount)throw new Io("Insufficient_Fee_Balance",{amount:r.toDecimal(),asset:r.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Cs=class extends Eo{async skipFor(e){let{asset:s,source:n}=e,{enabled:r}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!r}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:r,destinationFee:a,destinationFeeBalance:i}=n,m=await this.getMin(r,a),c=a.copyWith({amount:a.amount+m});if(i.amount<c.amount)throw new Io("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:r.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new me(e).getAssetMin(s);let r=e.getAssetMin(s)*10**s.decimals;return BigInt(r)}};import{TransferValidation as Fo,TransferValidationError as Xo}from"@galacticcouncil/xc-core";var ks=class extends Fo{async skipFor(e){let{asset:s,destination:n}=e,r=n.chain;return await new me(r).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:r}=e,a=r.chain;if(await new me(a).getSystemAccountBalance(n)===0n)throw new Xo("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:r.chain.name,error:"account.insufficientDeposit"})}},Ts=class extends Fo{async validate(e){let{asset:s,sender:n,source:r}=e,a=r.chain;if(await new me(a).checkIfFrozen(n,s))throw new Xo("Asset_Frozen",{asset:s.originSymbol,chain:r.chain.name,error:"asset.frozen"})}};import{TransferValidation as Ro,TransferValidationError as _o}from"@galacticcouncil/xc-core";var mu=12,uu=1,lu=18,vs=class extends Ro{async skipFor(e){let{destination:s}=e,n=s.chain,r=new Ve(n),a=s.balance.amount>0n,i=await r.checkIfSufficient(s.balance);return a||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:r}=e,a=r.chain,i=new Ve(a),m=await i.getFeeAsset(n),c=a.findAssetById(m),l=c.min||uu,f=c.decimals||mu,h=l*Math.pow(10,f),x=await i.getAssetBalance(n,m);if(BigInt(h*1.1)>x)throw new _o("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Bs=class extends Ro{async skipFor(e){let{source:s,transact:n}=e,{enabled:r}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!r}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:r}=e,a=r.chain,i=new Ve(a),m=a.getBalanceAssetId(T),c=a.getAssetDecimals(T)||lu,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new _o("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var Ce={isAny:()=>!0,isHydration:t=>t instanceof So&&t.parachainId===2034,isHub:t=>t instanceof So&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},du=[new ws(Ce.isAny,Ce.isAny),new Cs(Ce.isAny,Ce.isAny),new ks(Ce.isAny,Ce.isHub),new Ts(Ce.isHub,Ce.isAny),new vs(Ce.isAny,Ce.isHydration),new Bs(Ce.isHydration,Ce.isAny)];var Lo={};jt(Lo,{AssethubDex:()=>mn,HydrationDex:()=>cn});import{pool as fu,sor as pu,tx as hu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as bu}from"@galacticcouncil/common";import{memoize1 as yu}from"@thi.ng/memoize";var{PoolType:Ps}=fu,{TradeRouteBuilder:xu,TradeRouter:gu}=pu,{TxBuilderFactory:Au}=hu,cn=class{chain;client;poolCtx;txBuilder;getCtx=yu(async e=>{console.log("init swap router",e,"\u2705");let s=new gu(this.poolCtx);return s.withFilter({useOnly:[Ps.Aave,Ps.Omni,Ps.Stable,Ps.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ve(this.chain),this.txBuilder=new Au(s.client,s.evm)}async getCalldata(e,s,n,r,a=0){let i=Number(this.chain.getMetadataAssetId(s)),m=Number(this.chain.getMetadataAssetId(n)),c=r.amount,l=await this.getCtx(1),f=await l.getMostLiquidRoute(i,m),h=await l.getBuy(i,m,c,f);return(await(await this.txBuilder.trade(h).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,r){let a=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(a,i),f=await c.getBuy(a,i,m,l);return{amount:f.amountIn,route:xu.build(f.swaps)}}catch(l){if(r)return{amount:await this.getFallbackPrice(e,n.amount)};throw l}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),r=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!r)throw new Error(`No price found for asset ${e}`);let a=r*s,i=Math.pow(10,bu);return a/BigInt(i)}};import{encodeLocation as Do}from"@galacticcouncil/common";var mn=class{chain;client;constructor(e){this.chain=e,this.client=new me(this.chain)}async getCalldata(e,s,n,r){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let r=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Do(r),Do(a),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as Cu}from"@galacticcouncil/xc-core";import{Asset as wu}from"@galacticcouncil/xc-core";function Es(t){let{id:e,origin:s,symbol:n}=t,r=n.toLowerCase();return new wu({key:[r,s,e].join("_"),originSymbol:n})}function Ho(t){let{decimals:e,id:s}=t;return{asset:Es(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Wo(t){let{decimals:e,id:s,internalId:n,origin:r}=t;return{asset:Es(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:r},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var un=class extends Cu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),r=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!r(a)&&a.origin===1e3).forEach(a=>{let i=Es(a),m=Ho(a),c=Wo(a);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,fs(i)),this.updateChainRoute(s,ys(i))})}};export{un as HydrationConfigService,Ko as assetsMap,Ka as builders,qr as chainsMap,va as clients,Lo as dex,cu as routesMap,Na as tags,du as validations};
|
|
1
|
+
var Do=Object.defineProperty;var jt=(t,e)=>{for(var s in e)Do(t,s,{get:e[s],enumerable:!0})};import{Asset as y}from"@galacticcouncil/xc-core";var Te=new y({key:"aave",originSymbol:"AAVE"}),ve=new y({key:"ajun",originSymbol:"AJUN"}),D=new y({key:"astr",originSymbol:"ASTR"}),X=new y({key:"bnc",originSymbol:"BNC"}),Fs=new y({key:"bsx",originSymbol:"BSX"}),Be=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"}),F=new y({key:"eth",originSymbol:"ETH"}),Pe=new y({key:"ena",originSymbol:"ENA"}),ot=new y({key:"eurc",originSymbol:"EURC"}),$e=new y({...ot,key:"eurc_mwh"}),T=new y({key:"glmr",originSymbol:"GLMR"}),j=new y({key:"hdx",originSymbol:"HDX"}),I=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"}),Ee=new y({key:"ldo",originSymbol:"LDO"}),Fe=new y({key:"laos",originSymbol:"LAOS"}),Xe=new y({key:"lbtc",originSymbol:"LBTC"}),de=new y({key:"ewt",originSymbol:"EWT"}),Ie=new y({key:"link",originSymbol:"LINK"}),K=new y({key:"myth",originSymbol:"MYTH"}),Re=new y({key:"neuro",originSymbol:"NEURO"}),fe=new y({key:"pen",originSymbol:"PEN"}),_e=new y({key:"paxg",originSymbol:"PAXG"}),ne=new y({key:"prime",originSymbol:"PRIME"}),Se=new y({key:"sky",originSymbol:"SKY"}),N=new y({key:"sol",originSymbol:"SOL"}),ae=new y({key:"sui",originSymbol:"SUI"}),De=new y({key:"susde",originSymbol:"sUSDe"}),Ne=new y({key:"susds",originSymbol:"sUSDS"}),he=new y({...Ne,key:"susds_mwh"}),Le=new y({key:"tbtc",originSymbol:"tBTC"}),He=new y({key:"trac",originSymbol:"TRAC"}),We=new y({key:"unq",originSymbol:"UNQ"}),f=new y({key:"usdt",originSymbol:"USDT"}),be=new y({...f,key:"usdt_mwh"}),bt=new y({...f,key:"usdt_eth"}),b=new y({key:"usdc",originSymbol:"USDC"}),ye=new y({...b,key:"usdc_mwh"}),yt=new y({...b,key:"usdc_eth"}),z=new y({key:"vastr",originSymbol:"vASTR"}),W=new y({key:"vdot",originSymbol:"vDOT"}),Pt=new y({key:"weth",originSymbol:"WETH"}),Y=new y({...Pt,key:"weth_mwh"}),Oe=new y({key:"wbtc",originSymbol:"WBTC"}),xe=new y({...Oe,key:"wbtc_mwh"}),Me=new y({key:"wsteth",originSymbol:"wstETH"}),Je=new y({key:"wud",originSymbol:"WUD"}),Lo=[Te,ve,D,Fs,Be,ue,X,le,ee,x,Pe,ot,$e,F,T,j,I,H,P,Ee,Fe,Xe,de,se,Ie,K,Re,_e,fe,ne,Se,N,ae,De,Ne,he,He,Le,We,b,ye,yt,f,be,bt,z,W,Oe,xe,Pt,Y,Me,Je],Ho=new Map(Lo.map(t=>[t.key,t]));import{ChainEcosystem as Wo,EvmChain as Mo}from"@galacticcouncil/xc-core";import{base as Vo}from"viem/chains";var Et=new Mo({id:8453,key:"base",name:"Base",assetsData:[{asset:F,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:ot,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:b,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],ecosystem:Wo.Ethereum,evmChain:Vo,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",tokenBridge:"0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"}});import{ChainEcosystem as Ko,EvmChain as Uo}from"@galacticcouncil/xc-core";import{mainnet as No}from"viem/chains";var R=new Uo({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:F,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Te,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Be,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Pt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:le,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:De,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ne,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Le,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Oe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Xe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:f,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Ee,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ie,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:_e,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Se,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:He,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Me,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Ko.Ethereum,evmChain:No,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 un=[Et,R];import{ChainEcosystem as Oo,Parachain as Go}from"@galacticcouncil/xc-core";var Ft=new Go({assetsData:[{asset:ve,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Oo.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as qo,Parachain as ln}from"@galacticcouncil/xc-core";var dn={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:Je,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:K,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:qo.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 ln({...dn,key:"assethub",name:"AssetHub Polkadot"}),rt=new ln({...dn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as jo,Parachain as zo}from"@galacticcouncil/xc-core";var Z=new zo({assetsData:[{asset:D,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:X,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,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:z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:jo.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as $o,Parachain as Jo}from"@galacticcouncil/xc-core";var Qo=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new Jo({assetsData:[{asset:X,id:{Native:X.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset: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:D,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:I,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:$o.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Qo});import{ChainEcosystem as Yo,Parachain as Zo,XcmVersion as er}from"@galacticcouncil/xc-core";var Xt=new Zo({assetsData:[{asset:ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Yo.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:er.v3});import{ChainEcosystem as nr,EvmParachain as ar}from"@galacticcouncil/xc-core";import{defineChain as or}from"viem";import{getSs58AddressInfo as tr}from"@polkadot-api/substrate-bindings";var sr="ETH\0",ss=class{async toH160(e){let s=tr(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,a=Buffer.from(sr),r=n.slice(a.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var rr=new ss,Xs=["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"],Is=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],ir=or({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Xs,webSocket:Is},default:{http:Xs,webSocket:Is}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),d=new ar({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Te,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ve,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:X,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Be,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:F,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Pe,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:I,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:Ee,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:Fe,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Xe,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Ie,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:_e,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:K,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Re,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:fe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Se,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:N,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ae,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:De,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ne,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:Le,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:He,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:We,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset: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:$e,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:yt,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:bt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:z,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset: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:Pt,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:Me,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Je,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],ecosystem:nr.Polkadot,evmChain:ir,evmResolver:rr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Is,rpcs:Xs});import{ChainEcosystem as cr,Parachain as mr,XcmVersion as ur}from"@galacticcouncil/xc-core";var ge=new mr({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:I,decimals:8,id:{Token:I.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset: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:j,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:W,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:cr.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:ur.v3});import{ChainEcosystem as lr,Parachain as dr}from"@galacticcouncil/xc-core";var It=new dr({assetsData:[{asset:Fe,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:lr.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 fr,EvmParachain as pr}from"@galacticcouncil/xc-core";import{defineChain as hr}from"viem";var br=hr({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 pr({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:$e,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:N,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:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:f,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:fr.Polkadot,evmChain:br,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 yr,Parachain as xr}from"@galacticcouncil/xc-core";var it=new xr({assetsData:[{asset:K,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:yr.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 gr,Parachain as Ar}from"@galacticcouncil/xc-core";var Rt=new Ar({assetsData:[{asset:Re,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:gr.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 wr,Parachain as Cr,XcmVersion as kr}from"@galacticcouncil/xc-core";var _t=new Cr({assetsData:[{asset:fe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:wr.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:kr.v3});import{ChainEcosystem as Tr,Parachain as vr}from"@galacticcouncil/xc-core";var Br={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Tr.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"},fn=new vr({...Br,key:"polkadot"});import{ChainEcosystem as Pr,Parachain as Er}from"@galacticcouncil/xc-core";var St=new Er({assetsData:[{asset:We,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Pr.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 Fr,Parachain as Xr,XcmVersion as Ir}from"@galacticcouncil/xc-core";var Dt=new Xr({assetsData:[{asset:de,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Fr.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:Ir.v3});var pn=[Ft,C,rt,Z,L,Xt,d,It,Rt,ge,B,it,_t,fn,St,Dt];import{ChainEcosystem as Rr,SolanaChain as _r}from"@galacticcouncil/xc-core";var ct=new _r({id:101,key:"solana",name:"Solana",assetsData:[{asset:N,decimals:9},{asset:se,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:ne,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],ecosystem:Rr.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 hn=[ct];import{ChainEcosystem as Sr,SuiChain as Dr}from"@galacticcouncil/xc-core";var Lt=new Dr({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Sr.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var bn=[Lt];import{ChainEcosystem as Lr,Parachain as Hr}from"@galacticcouncil/xc-core";var Qe=new Hr({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:Lr.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 Wr,Parachain as Mr}from"@galacticcouncil/xc-core";var Ht=new Mr({assetsData:[{asset:Fs,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:Wr.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var yn=[Qe,Ht];var Vr=[...un,...pn,...hn,...bn,...yn],Kr=new Map(Vr.map(t=>[t.key,t]));import{ChainRoutes as b0}from"@galacticcouncil/xc-core";import{AssetRoute as h0}from"@galacticcouncil/xc-core";var Va={};jt(Va,{AssetMinBuilder:()=>mt,BalanceBuilder:()=>o,ContractBuilder:()=>_,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>et,FeeAmountBuilder:()=>A,FeeAssetBuilder:()=>Yt,MoveBuilder:()=>en,ProgramBuilder:()=>Zt,XcmTransferType:()=>re,XcmVersion:()=>Ze});import{SubstrateQueryConfig as Rs}from"@galacticcouncil/xc-core";function mt(){return{assetRegistry:Ur,assets:Nr}}function Ur(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Rs({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Rs({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Nr(){return{asset:()=>({build:({asset:t})=>new Rs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Or,ContractConfig as xn}from"@galacticcouncil/xc-core";function gn(){return{erc20:qr,native:Gr}}function Gr(){return{build:({address:t})=>new xn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function qr(){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 xn({abi:Or.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as zt}from"@galacticcouncil/xc-core";import{encodeAssetId as _s,encodeLocation as jr}from"@galacticcouncil/common";function An(){return{assets:zr,system:Jr,tokens:Qr,ormlTokens:Yr,foreignAssets:$r}}function zr(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=_s(n);return new zt({module:"Assets",func:"Account",args:[a,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function $r(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getAssetXcmLocation(e);if(!a)throw new Error("Missing asset xcm location for "+e.key);let r=jr(a);return new zt({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Jr(){return{account:()=>({build:({address:t})=>new zt({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),a=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=a?n-a:0n}})})}}function Qr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=_s(n);return new zt({module:"Tokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),m=BigInt(r?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}function Yr(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),a=_s(n);return new zt({module:"OrmlTokens",func:"Accounts",args:[t,a],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),m=BigInt(r?.frozen?.toString()??"0");return i>=m?i-m:0n}})}})}}import{SolanaQueryConfig as wn}from"@galacticcouncil/xc-core";function Cn(){return{native:Zr,token:ei}}function Zr(){return{build:({address:t})=>new wn({address:t,func:"rpc_getBalance",module:"Native"})}}function ei(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new wn({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as ti}from"@galacticcouncil/xc-core";function kn(){return{native:si}}function si(){return{build:({address:t})=>new ti({address:t,func:"sui_getBalance",module:"Native"})}}function o(){return{evm:gn,substrate:An,solana:Cn,sui:kn}}import{Abi as Tn,ContractConfig as ni,Precompile as ai}from"@galacticcouncil/xc-core";import{encodeFunctionData as oi}from"viem";var ri=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),a=[0,0],r=s.map(i=>oi({abi:Tn[i.module],functionName:i.func,args:i.args}));return new ni({abi:Tn.Batch,address:ai.Batch,args:[n,a,r,[]],func:"batchAll",module:"Batch"})}}),vn=()=>({batchAll:ri});import{Abi as ii,ContractConfig as ci,Wormhole as mi}from"@galacticcouncil/xc-core";function Wt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Ye(t){return typeof t=="object"?Object.values(t)[0]:t}function Bn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:a,transact:r}=e,i=r?r.chain:a.chain,m=mi.fromChain(i),c=i.getAssetId(n);return new ci({abi:ii.Erc20,address:Ye(c).toString(),args:[t(m),s],func:"approve",module:"Erc20"})}})}}import{addr as ui,Abi as Pn,ContractConfig as En,Precompile as Fn}from"@galacticcouncil/xc-core";import{big as li}from"@galacticcouncil/common";var{Ss58Addr:Xn}=ui;function di(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 Ss(t,e){let s=t.getAssetId(e);return typeof s=="string"?di(s):s}function In(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Ss(a.chain,s);return new En({abi:Pn.PolkadotXcm,address:Fn.PolkadotXcm,args:[n.chain.parachainId,Xn.getPubKey(t),[{asset:r,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=Ss(a.chain,s),i=Ss(a.chain,a.destinationFeeBalance),m=li.toBigInt(n.fee.amount,n.fee.decimals);return new En({abi:Pn.PolkadotXcm,address:Fn.PolkadotXcm,args:[n.chain.parachainId,Xn.getPubKey(t),[{asset:r,amount:e},{asset:i,amount:m}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as fi,Abi as pi,ContractConfig as hi,Snowbridge as bi}from"@galacticcouncil/xc-core";var{Ss58Addr:yi}=fi,xi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r}=t,i=a.chain,m=r.chain,c=bi.fromChain(i),l=i.getAssetId(n),p=Ye(l),h=n.originSymbol==="ETH",g=r.feeBreakdown.bridgeFeeInDot,k=r.fee.amount;return new hi({abi:pi.Snowbridge,address:c.getGateway(),args:[p,m.parachainId,[1,yi.getPubKey(e)],g,s],value:h?k+s:k,func:"sendToken",module:"Snowbridge"})}}),Rn=()=>({sendToken:xi});import{mrl as Sn,Abi as ns,ContractConfig as as,Precompile as Dn,Wormhole as ut}from"@galacticcouncil/xc-core";import{PublicKey as _n}from"@solana/web3.js";import{getAssociatedTokenAddress as gi,NATIVE_MINT as Ai}from"@solana/spl-token";var wi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,destination:i}=e,m=ut.fromChain(r.chain),c=ut.fromChain(t.moonchain),l=Dn.Bridge,p=r.chain.getAssetId(a),h=0,g=await Sn.createPayload(i.chain,s);return new as({abi:ns.TokenBridge,address:m.getTokenBridge(),args:[Ye(p),n,c.getWormholeId(),c.normalizeAddress(l),h,g.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),Ci=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,destination:r}=e,i=ut.fromChain(a.chain),m=ut.fromChain(t.moonchain),c=Dn.Bridge,l=0,p=await Sn.createPayload(r.chain,s);return new as({abi:ns.TokenBridge,address:i.getTokenBridge(),args:[m.getWormholeId(),m.normalizeAddress(c),l,p.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),ki=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,m=i?i.chain:a.chain,c=r.chain,l=ut.fromChain(m),p=ut.fromChain(c),h=c.getAssetId(n),g=e;if(c.isSolana()){let S=h==="SOL"?Ai:new _n(h);g=(await gi(S,new _n(e))).toBase58()}let k=m.getAssetId(n),E=0,M=0;return new as({abi:ns.TokenBridge,address:l.getTokenBridge(),args:[Ye(k),s,p.getWormholeId(),p.normalizeAddress(g),E,M],func:"transferTokens",module:"TokenBridge"})}}),Ti=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:a}=t,r=ut.fromChain(n.chain),i=ut.fromChain(a.chain),m=0,c=0;return new as({abi:ns.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),m,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Ln=()=>({transferTokens:ki,transferTokensWithPayload:wi,wrapAndTransferETH:Ti,wrapAndTransferETHWithPayload:Ci});import{Abi as vi,ContractConfig as Bi,Wormhole as Hn}from"@galacticcouncil/xc-core";var Pi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:a,destination:r,transact:i}=t,m=i?i.chain:a.chain,c=r.chain,l=Hn.fromChain(m),p=Hn.fromChain(c),h=0,g=0,k=m.getAssetId(n);return new Bi({abi:vi.TokenRelayer,address:l.getTokenRelayer(),args:[Ye(k),s,h,p.getWormholeId(),p.normalizeAddress(e),g],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),Wn=()=>({transferTokensWithRelay:Pi});function Mn(){return{TokenBridge:Ln,TokenRelayer:Wn}}function _(){return{Batch:vn,Erc20:Bn,PolkadotXcm:In,Snowbridge:Rn,Wormhole:Mn}}import{ExtrinsicConfig as Ei}from"@galacticcouncil/xc-core";var Vn="AssetConversion",Fi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:a}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:m}=r,c=a,l=c.getAssetXcmLocation(i),p=c.getAssetXcmLocation(m),h=i.amount+i.amount*BigInt(t.slippage)/100n,g=m.amount;return new Ei({module:Vn,func:e,getTx:k=>k.getUnsafeApi().tx[Vn][e]({path:[l,p],amount_out:g,amount_in_max:h,send_to:s,keep_alive:!0})})}}},Kn=()=>({swapTokensForExactTokens:Fi});import{hub as Xi,MultiAddress as Ii}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Ri}from"@galacticcouncil/xc-core";var _i="Assets",Si=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:a})=>{let r=a.chain,{fee:i}=a,m=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Ri({module:_i,func:t,getTx:l=>l.getTypedApi(Xi).tx.Assets.transfer({id:Number(c),target:Ii.Id(n),amount:m})})}}},Un=()=>({transfer:Si});import{ExtrinsicConfig as Di}from"@galacticcouncil/xc-core";var Nn="Balances",Li=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Di({module:Nn,func:e,getTx:n=>n.getUnsafeApi().tx[Nn][e]({dest:s,keep_alive:t})})}},On=()=>({transferAll:Li});import{hydration as Hi}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Wi}from"@galacticcouncil/xc-core";var Mi="Router",Vi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:a}=s;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:m}=a,c=n,l=c.getMetadataAssetId(r),p=c.getMetadataAssetId(i),h=i.amount,g=r.amount+r.amount*BigInt(t.slippage)/100n;return new Wi({module:Mi,func:"buy",getTx:k=>k.getTypedApi(Hi).tx.Router.buy({asset_in:Number(l),asset_out:Number(p),amount_out:h,max_amount_in:g,route:m})})}}),Gn=()=>({buy:Vi});import{ExtrinsicConfig as Ki}from"@galacticcouncil/xc-core";var qn="Utility",Ui=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(a=>a.build(s)));return new Ki({module:qn,func:e,getTx:a=>{let r=n.map(i=>i.getTx(a).decodedCall);return a.getUnsafeApi().tx[qn][e]({calls:r})}})}}},jn=()=>({batchAll:Ui});import{Abi as Ni,ExtrinsicConfig as Oi}from"@galacticcouncil/xc-core";import{Binary as zn}from"polkadot-api";import{encodeFunctionData as Gi}from"viem";var Ze=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(Ze||{}),re=(a=>(a.Teleport="Teleport",a.LocalReserve="LocalReserve",a.DestinationReserve="DestinationReserve",a.RemoteReserve="RemoteReserve",a))(re||{});var $n="EthereumXcm",qi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),a="V1",r=Gi({abi:Ni[n.module],functionName:n.func,args:n.args});return new Oi({module:$n,func:e,getTx:i=>i.getUnsafeApi().tx[$n][e]({xcm_transaction:{type:a,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:zn.fromHex(n.address)},value:[0n,0n,0n,0n],input:zn.fromHex(r),access_list:void 0}}})})}}},Ds=()=>({transact:qi});import{ExtrinsicConfig as Ct}from"@galacticcouncil/xc-core";import{big as $s}from"@galacticcouncil/common";import{multiloc as pc,ChainEcosystem as qs}from"@galacticcouncil/xc-core";import{Binary as hc}from"polkadot-api";import{XcmV3Junctions as pe,XcmV3Junction as Qt,XcmV3JunctionNetworkId as pa,XcmV3MultiassetFungibility as At,XcmV4Instruction as Q,XcmV4AssetAssetFilter as Kt,XcmV4AssetWildAsset as Ut,XcmV3WeightLimit as js,XcmV2MultiassetWildFungibility as bc,XcmV2OriginKind as yc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as ji}from"@galacticcouncil/descriptors";var ie=340282366920938463463374607431768211455n,xt="0x0000000000000000000000000000000000000000000000000000000000000000",Mt={parents:1,interior:ji.Here()},Jn=0,Qn=1e3,Yn=1002,Zn=1,gt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var ea="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as ic,XcmV3MultiassetFungibility as Hs,XcmV3WeightLimit as cc,XcmV4AssetAssetFilter as mc,XcmV4AssetWildAsset as uc,XcmV4Instruction as $t}from"@galacticcouncil/descriptors";import{Binary as lc}from"polkadot-api";import{acc as zi}from"@galacticcouncil/common";import{XcmV3Junction as ta}from"@galacticcouncil/descriptors";import{FixedSizeBinary as sa}from"polkadot-api";import{getSs58AddressInfo as $i}from"@polkadot-api/substrate-bindings";import{toHex as Ji}from"@polkadot-api/utils";function O(t){if(t.length===42&&t.startsWith("0x"))return ta.AccountKey20({key:sa.fromHex(t),network:void 0});let s=$i(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ta.AccountId32({id:sa.fromHex(Ji(s.publicKey)),network:void 0})}function Vt(t,e,s){return zi.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as na}from"@galacticcouncil/xc-core";function aa(t,e){let s=na.findNestedKey(t,"GeneralIndex"),n=na.findNestedKey(e,"GeneralIndex"),a=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(a)||Number.isNaN(r)?!1:Number(a)>Number(r)}function $(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var is={};jt(is,{ETHER_TOKEN_ADDRESS:()=>Ls,erc20Location:()=>Zi,erc20LocationReanchored:()=>ec,ethereumLocation:()=>ia,parachainLocation:()=>Yi});import{XcmV3Junctions as os,XcmV3Junction as rs,XcmV3JunctionNetworkId as Qi}from"@galacticcouncil/descriptors";import{Binary as oa}from"polkadot-api";var Ls="0x0000000000000000000000000000000000000000",ra=t=>rs.GlobalConsensus(Qi.Ethereum({chain_id:BigInt(t)}));function ia(t){return{parents:2,interior:os.X1(ra(t))}}function Yi(t){return{parents:1,interior:os.X1(rs.Parachain(t))}}function Zi(t,e){return e===Ls?ia(t):{parents:2,interior:os.X2([ra(t),rs.AccountKey20({key:oa.fromHex(e)})])}}function ec(t){return t===Ls?{parents:0,interior:{type:"Here"}}:{parents:0,interior:os.X1(rs.AccountKey20({key:oa.fromHex(t)}))}}import{encodeLocation as ca}from"@galacticcouncil/common";import{multiloc as tc}from"@galacticcouncil/xc-core";function J(t,e){return sc(e)>=4?ca(t):nc(t)}function sc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function nc(t){return{type:"Concrete",value:ca(t)}}var ac=1e3;function oc(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 rc(t){if(t)return oc(t)?ac:tc.findParachain(t)}function ma(t,e,s,n){let a=e.getAssetXcmLocation(t),r=rc(a),i=n?.parachainId??s.parachainId;if(r&&i!==r)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${r}, got ${n.name} (${n.parachainId})`:`Reserve chain ${r} required for "${t.originSymbol}"`)}function Ws(t,e){let s="V4",n=J($(e,t),s),a=lc.fromHex(xt);return[$t.ReserveAssetDeposited([{id:Mt,fun:Hs.Fungible(ie)},{id:n,fun:Hs.Fungible(ie)}]),$t.ClearOrigin(),$t.BuyExecution({fees:{id:Mt,fun:Hs.Fungible(ie)},weight_limit:cc.Unlimited()}),$t.DepositAsset({assets:mc.Wild(uc.AllCounted(2)),beneficiary:{parents:0,interior:ic.X1(O(gt))}}),$t.SetTopic(a)]}import{XcmV4Instruction as Ms,XcmV3MultiassetFungibility as Vs,XcmV3WeightLimit as dc}from"@galacticcouncil/descriptors";function ua(t,e){let s="V4",n=J($(e,t),s),a=cs("V4",O(ea),O(gt),n,xt);return[Ms.WithdrawAsset([{id:Mt,fun:Vs.Fungible(ie)},{id:n,fun:Vs.Fungible(ie)}]),Ms.ClearOrigin(),Ms.BuyExecution({fees:{id:Mt,fun:Vs.Fungible(ie)},weight_limit:dc.Unlimited()}),...a.value]}import{XcmV3Junctions as Ks,XcmV3Junction as fc,XcmV3MultiassetFungibility as Jt,XcmV3WeightLimit as Us,XcmV4AssetAssetFilter as Ns,XcmV4AssetWildAsset as Os,XcmV4Instruction as Ae}from"@galacticcouncil/descriptors";import{Binary as la}from"polkadot-api";function da(t,e){let s="V4",n=J($(e,t),s),a=la.fromHex(xt);return[Ae.WithdrawAsset([{id:n,fun:Jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Us.Unlimited()}),Ae.DepositAsset({assets:Ns.Wild(Os.AllCounted(1)),beneficiary:{parents:0,interior:Ks.X1(O(gt))}}),Ae.SetTopic(a)]}function Gs(t,e){let s="V4",n=J($(e,t),s);return[Ae.BuyExecution({fees:{id:n,fun:Jt.Fungible(ie)},weight_limit:Us.Unlimited()}),Ae.DepositAsset({assets:Ns.Wild(Os.AllCounted(1)),beneficiary:{parents:0,interior:Ks.X1(O(gt))}})]}function fa(t,e,s){let n="V4",a=J($(e,t),n),r=la.fromHex(xt),i=Gs(t,s);return[Ae.WithdrawAsset([{id:a,fun:Jt.Fungible(ie)}]),Ae.ClearOrigin(),Ae.BuyExecution({fees:{id:a,fun:Jt.Fungible(ie)},weight_limit:Us.Unlimited()}),Ae.DepositReserveAsset({assets:Ns.Wild(Os.AllCounted(1)),dest:{parents:1,interior:Ks.X1(fc.Parachain(s.parachainId))},xcm:i}),Ae.SetTopic(r)]}var ha=[qs.Polkadot,qs.Kusama],xc={parents:1,interior:pe.X1(Qt.Parachain(1e3))},gc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ac=(t,e)=>!t.ecosystem||!e.ecosystem?!1:ha.includes(t.ecosystem)&&ha.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ba=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},Ge=(t,e,s)=>{if(Ac(e,s)){let a=s.ecosystem===qs.Polkadot?pa.Polkadot():pa.Kusama();return{type:t,value:{parents:2,interior:pe.X2([Qt.GlobalConsensus(a),Qt.Parachain(s.parachainId)])}}}if(s.parachainId===Jn)return{type:t,value:{parents:1,interior:pe.Here()}};let n=s.key==="ethereum"?Qn:s.parachainId;return{type:t,value:{parents:1,interior:pe.X1(Qt.Parachain(n))}}},wt=(t,e)=>({type:t,value:{parents:0,interior:pe.X1(e)}}),zs=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:gc(s)?xc:s}}:{type:e},lt=(t,e)=>({id:t,fun:At.Fungible(e)}),ya=(t,e,s)=>({type:t,value:[Q.DepositAsset({assets:Kt.Wild(Ut.AllCounted(s)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var cs=(t,e,s,n,a)=>{let r=hc.fromHex(a);return{type:t,value:[Q.SetAppendix([Q.DepositAsset({assets:Kt.Wild(Ut.All()),beneficiary:{parents:0,interior:pe.X1(s)}})]),Q.InitiateReserveWithdraw({assets:Kt.Wild(Ut.AllOf({id:n,fun:bc.Fungible()})),reserve:is.ethereumLocation(Zn),xcm:[Q.BuyExecution({fees:{id:wc(n),fun:At.Fungible(1n)},weight_limit:js.Unlimited()}),Q.DepositAsset({assets:Kt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}}),Q.SetTopic(r)]}),Q.SetTopic(r)]}},wc=t=>{let e=pc.findNestedKey(t,"key");return e?{parents:0,interior:pe.X1(Qt.AccountKey20({key:e.key}))}:{parents:0,interior:pe.Here()}},xa=(t,e,s,n,a,r)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(n)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(n)},weight_limit:js.Unlimited()}),Q.Transact({origin_kind:yc.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:a}),Q.RefundSurplus(),Q.DepositAsset({assets:Kt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]}),ga=(t,e,s,n,a,r)=>({type:t,value:[Q.WithdrawAsset([{id:s,fun:At.Fungible(a)}]),Q.BuyExecution({fees:{id:s,fun:At.Fungible(a)},weight_limit:js.Unlimited()}),Q.TransferAsset({assets:[{id:s,fun:At.Fungible(n)}],beneficiary:{parents:0,interior:pe.X1(r)}}),Q.RefundSurplus(),Q.DepositAsset({assets:Kt.Wild(Ut.AllCounted(1)),beneficiary:{parents:0,interior:pe.X1(e)}})]});var ce="PolkadotXcm",Cc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=O(t),i=a.chain,m=n.chain,c="V4",l=J($(i,s),c),p=J($(i,n.fee),c),h=lt(l,e),g=lt(p,n.fee.amount),k="limited_reserve_transfer_assets";return new Ct({module:ce,func:k,getTx:E=>{let M=E.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?M({dest:Ge(c,i,m),beneficiary:wt(c,r),assets:{type:c,value:[h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):aa(l,p)?M({dest:Ge(c,i,m),beneficiary:wt(c,r),assets:{type:c,value:[g,h]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):M({dest:Ge(c,i,m),beneficiary:wt(c,r),assets:{type:c,value:[h,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),kc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=O(t),i=a.chain,m=n.chain,c="V4",l=J($(i,s),c),p=lt(l,e),h=Ge(c,i,m),g=wt(c,r),k={type:c,value:[p]},E="limited_teleport_assets";return new Ct({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"}})})}}),Tc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=O(t),i=a.chain,m=n.chain,c=i.xcmVersion??"V4",l=J($(i,s),c),p=lt(l,e),h=Ge(c,i,m),g=wt(c,r),k={type:c,value:[p]},E="reserve_transfer_assets";return new Ct({module:ce,func:E,getTx:M=>M.getUnsafeApi().tx[ce][E]({dest:h,beneficiary:g,assets:k,fee_asset_item:0})})}}),vc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:a})=>{let r=O(t),i=a.chain,m=n.chain,c="V4",l=J($(i,s),c),p=lt(l,e),h=Ge(c,i,m),g=wt(c,r),k={type:c,value:[p]},E="transfer_assets";return new Ct({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"}})})}}),Bc=t=>({build:async({address:e,asset:s,amount:n,destination:a,messageId:r,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=$s.toBigInt(c.fee.amount,c.fee.decimals),k=c.fee);let E=O(i),M=c||h.usesCexForwarding?Vt(p,i,h):e,S=O(M),{transferType:q}=t,U=J($(p,s),l),w=J($(p,k),l),Ue=lt(U,n),ht=lt(w,g),je=s.isEqual(k),nt=Ge(l,p,h),ze={type:l,value:je?[Ue]:[ht,Ue]},at=zs(l,q,U),qt={type:l,value:je?U:w},Es=zs(l,q,w),Bt;ba(U)&&a.chain.isEvmChain()?Bt=cs(l,S,E,U,r):Bt=ya(l,S,ze.value.length);let ts="transfer_assets_using_type_and_then";return new Ct({module:ce,func:ts,getTx:So=>So.getUnsafeApi().tx[ce][ts]({dest:nt,assets:ze,assets_transfer_type:at,remote_fees_id:qt,fees_transfer_type:Es,custom_xcm_on_dest:Bt,weight_limit:{type:"Unlimited"}})})}}),Pc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:a,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let m=a.chain,c=r.chain,l=Vt(m,n,c),p=O(l),{fee:h}=r,g=J($(c,h),i),k=$s.toBigInt(e.fee,h.decimals);return new Ct({module:ce,func:t,getTx:E=>E.getUnsafeApi().tx[ce][t]({dest:Ge(i,m,c),message:xa(i,p,g,k,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:a,asset:r,sender:i,source:m,destination:c}=s,l="V4",p=m.chain,h=c.chain,g=Vt(p,i,h),k=O(g),E=O(a),M=J($(h,r),l),{fee:S}=c,q=$s.toBigInt(e.fee,S.decimals),U=n>S.amount?n-(S.amount+q):n;return new Ct({module:ce,func:t,getTx:w=>w.getUnsafeApi().tx[ce][t]({dest:Ge(l,p,h),message:ga(l,k,M,U,q,E)})})}})}},Js=()=>({limitedReserveTransferAssets:Cc,limitedTeleportAssets:kc,reserveTransferAssets:Tc,transferAssets:vc,transferAssetsUsingTypeAndThen:Bc,send:Pc});import{ExtrinsicConfig as Fc}from"@galacticcouncil/xc-core";import{encodeAssetId as Xc}from"@galacticcouncil/common";import{XcmV3Junctions as Aa,XcmV3Junction as Ec}from"@galacticcouncil/descriptors";var wa=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Aa.X1(s)}}:{type:t,value:{parents:1,interior:Aa.X2([Ec.Parachain(e.parachainId),s])}};var Ca="XTokens",Ic=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:a,source:r})=>{let i=r.chain,m=n.chain,c="V3",l=m.usesCexForwarding?Vt(i,a,m):t,p=O(l),h=i.getAssetId(s),g=Xc(h),k="transfer";return new Fc({module:Ca,func:k,getTx:E=>E.getUnsafeApi().tx[Ca][k]({currency_id:g,amount:e,dest:wa(c,m,p),dest_weight_limit:{type:"Unlimited"}})})}}),Qs=()=>({transfer:Ic});function u(){return{assetConversion:Kn,assets:Un,balances:On,ethereumXcm:Ds,polkadotXcm:Js,router:Gn,utility:jn,xTokens:Qs}}function et(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 va,Snowbridge as Nc,Wormhole as Ta}from"@galacticcouncil/xc-core";var ka={};jt(ka,{AssethubClient:()=>me,BaseClient:()=>we,HydrationClient:()=>Ve});import{encodeLocation as Rc}from"@galacticcouncil/common";import{hub as _c,XcmVersionedAssetId as Sc}from"@galacticcouncil/descriptors";var we=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??_c}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let a=this.chain.getAssetXcmLocation(s);if(!a)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=Rc(a),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Sc.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as Dc,XcmV5Junction as Lc,XcmVersionedLocation as Hc}from"@galacticcouncil/descriptors";import{encodeLocation as Wc}from"@galacticcouncil/common";import{Twox128 as Mc,u128 as Vc}from"@polkadot-api/substrate-bindings";import{toHex as Kc}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=Wc(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(a):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let a=await this.api().query.Assets.Account.getValue(Number(n),e);return a&&a.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=Kc(Mc(s)),a=await this.client._request("state_getStorage",[n]);if(!a)return e.defaultFee;let r=Vc.dec(a);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=Hc.V5({parents:1,interior:Dc.X1(Lc.Parachain(s))}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(m=>{let c=m.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as Uc}from"@galacticcouncil/descriptors";var Ve=class extends we{constructor(e){super(e,Uc)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),a=await this.api().query.AssetRegistry.Assets.getValue(n);return a?a.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:a,frozen:r}=n;return BigInt(a)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),a=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=a;return BigInt(r)-BigInt(i)}};function Oc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,a=e,r=Ta.fromChain(n),i=Ta.fromChain(a),m=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:va.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),m,c],functionName:"calculateRelayerFee"})}}})}}function Gc(){return{TokenRelayer:Oc}}function qc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let a=n,r=s,i=Nc.fromChain(a),m=new we(r),c=new me(t.hub),l=Ws(e,r),[p,h]=await Promise.all([m.calculateDestinationFee(l,x),c.calculateDeliveryFee(l,r.parachainId)]),g=h+Wt(p,25n),k=a.getAssetId(e);return{amount:await a.evmClient.getProvider().readContract({abi:va.Snowbridge,address:i.getGateway(),args:[k,r.parachainId,g],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:g}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let a=n,r=new me(t.hub),i=ua(e,a),m=Ws(e,a),[c,l,p,h,g]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,Yn),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(m,a.parachainId),r.calculateDestinationFee(m,s)]);return{amount:c+l+Wt(p,25n)+h+Wt(g,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:l,assetHubDestinationFee:p,returnToSenderDeliveryFee:h,returnToSenderDestinationFee:g}}}})}}function jc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let a=s,r=n,i=t?.reserve;if(ma(e,a,r,i),i){let g=new we(r),k=new we(i),E=Gs(e,r),M=fa(e,i,r),[S,q]=await Promise.all([g.calculateDestinationFee(E,e),k.calculateDestinationFee(M,e)]),U=q+S,w=Wt(U,20n),Ue=w-U;return{amount:w,breakdown:{reserveFee:q,destinationFee:S,margin:Ue}}}let m=new we(r),c=da(e,r),l=await m.calculateDestinationFee(c,e),p=Wt(l,20n),h=p-l;return{amount:p,breakdown:{totalFee:l,margin:h}}}})}}function A(){return{XcmPaymentApi:jc,Snowbridge:qc,Wormhole:Gc}}var zc="0";function $c(){return{build:async({address:t,chain:e})=>{let n=await new Ve(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),a=n?n.toString():zc,r=e.findAssetById(a);return r?r.asset:j}}}var Jc=()=>({accountCurrencyMap:$c});function Yt(){return{multiTransactionPayment:Jc}}import{mrl as Ea,Precompile as Fa,ProgramConfig as Xa,Wormhole as ms}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as Qc,NATIVE_MINT as Ba,TOKEN_PROGRAM_ID as Yc,createCloseAccountInstruction as Zc,createInitializeAccountInstruction as e0,getMinimumBalanceForRentExemptAccount as t0,getAssociatedTokenAddress as s0}from"@solana/spl-token";import{Keypair as Ys,PublicKey as Zs,SystemProgram as Pa}from"@solana/web3.js";import{UniversalAddress as Ia}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Ra,createTransferNativeWithPayloadInstruction as _a,getWrappedMeta as n0}from"@wormhole-foundation/sdk-solana-tokenbridge";var a0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,m=a.chain,c=m,l=ms.fromChain(m),p=ms.fromChain(t.moonchain),h=Fa.Bridge,g=await Ea.createPayload(i.chain,s),k=new Zs(r),E=new Ia(h),M=p.getWormholeId(),S=k,q=0,U=Ys.generate(),w=Ys.generate(),Ue=await t0(c.connection),ht=Pa.createAccount({fromPubkey:S,newAccountPubkey:w.publicKey,lamports:Ue,space:Qc,programId:Yc}),je=Pa.transfer({fromPubkey:S,lamports:n,toPubkey:w.publicKey}),nt=e0(w.publicKey,Ba,S),ze=Ra(l.getTokenBridge(),w.publicKey,S,n),at=_a(c.connection,l.getTokenBridge(),l.getCoreBridge(),r,U.publicKey,w.publicKey,Ba,q,n,E.toUint8Array(),M,g.toU8a()),qt=Zc(w.publicKey,S,S);return new Xa({instructions:[ht,je,nt,ze,at,qt],signers:[U,w],func:"TransferNativeWithPayload",module:"TokenBridge",rentReserve:BigInt(Ue)})}})}),o0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:a,source:r,sender:i,destination:m}=e,c=r.chain,l=c,p=ms.fromChain(c),h=ms.fromChain(t.moonchain),g=Fa.Bridge,k=await Ea.createPayload(m.chain,s),E=new Zs(i),M=r.chain.getAssetId(a),S=new Zs(M),q=await s0(S,E),U=new Ia(g),w=h.getWormholeId();if(await n0(l.connection,p.getTokenBridge(),S).catch(at=>null).then(at=>at!=null))throw new Error("Wrapped assets not supported yet");let ht=0,je=Ys.generate(),nt=Ra(p.getTokenBridge(),q,E,n),ze=_a(l.connection,p.getTokenBridge(),p.getCoreBridge(),i,je.publicKey,q,S,ht,n,U.toUint8Array(),w,k.toU8a());return new Xa({instructions:[nt,ze],signers:[je],func:"TransferWithPayload",module:"TokenBridge"})}})}),Sa=()=>({transferNativeWithPayload:a0,transferTokenWithPayload:o0});function Da(){return{TokenBridge:Sa}}function Zt(){return{Wormhole:Da}}import{mrl as r0,MoveConfig as i0,Precompile as c0,Wormhole as La}from"@galacticcouncil/xc-core";import{Transaction as m0}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as u0,SUI_TYPE_ARG as l0}from"@mysten/sui/utils";import{UniversalAddress as d0}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as f0,getPackageId as Ha}from"@wormhole-foundation/sdk-sui";var p0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:a,sender:r,destination:i}=e,m=a.chain,c=m,l=La.fromChain(m),p=La.fromChain(t.moonchain),h=0,g=c0.Bridge,k=await r0.createPayload(i.chain,s),E=new d0(g),M=p.getWormholeId(),S=l0,[q,U]=await Promise.all([Ha(c.client,l.coreBridge),Ha(c.client,l.tokenBridge)]),w=new m0,[Ue]=w.splitCoins(w.gas,[w.pure.u64(n)]),[ht]=w.splitCoins(w.gas,[w.pure.u64(i.fee.amount)]),[je]=w.moveCall({target:`${U}::state::verified_asset`,arguments:[w.object(l.tokenBridge)],typeArguments:[S]}),nt=!1,ze=await(async()=>{let Bt=await f0(c.client,q,r);if(Bt!==null)return w.object(Bt);{let[ts]=w.moveCall({target:`${q}::emitter::new`,arguments:[w.object(l.coreBridge)]});return nt=!0,ts}})(),[at,qt]=w.moveCall({target:`${U}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ze,je,Ue,w.pure.u16(M),w.pure.vector("u8",E.toUint8Array()),w.pure.vector("u8",k.toU8a()),w.pure.u32(h)],typeArguments:[S]});w.moveCall({target:`${U}::coin_utils::return_nonzero`,arguments:[qt],typeArguments:[S]});let[Es]=w.moveCall({target:`${U}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[w.object(l.tokenBridge),at],typeArguments:[S]});return w.moveCall({target:`${q}::publish_message::publish_message`,arguments:[w.object(l.coreBridge),ht,Es,w.object(u0)]}),nt&&w.transferObjects([ze],w.pure.address(r)),new i0({transaction:w,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Wa=()=>({transferNativeWithPayload:p0});function Ma(){return{TokenBridge:Wa}}function en(){return{Wormhole:Ma}}var Ka={};jt(Ka,{Tag:()=>tt});var tt=(a=>(a.Wormhole="Wormhole",a.Relayer="Relayer",a.Snowbridge="Snowbridge",a.Mrl="Mrl",a))(tt||{});function Ua(t,e){return new h0({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:_().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}var y0=[Ua(ot,$e)],Na=new b0({chain:Et,routes:[...y0]});import{AssetRoute as us,ChainRoutes as x0}from"@galacticcouncil/xc-core";import{AssetRoute as Oa}from"@galacticcouncil/xc-core";function Nt(t,e){return new Oa({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:t,balance:o().evm().erc20()}},destination:{chain:d,asset:e,fee:{amount:0,asset:e}},contract:_().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})}function oe(t,e){return new Oa({source:{asset:t,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:e,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:_().Snowbridge().sendToken(),tags:["Snowbridge"]})}var g0=[new us({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().native()}},destination:{chain:d,asset:Y,fee:{amount:0,asset:Y}},contract:_().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),Nt(le,ee),Nt(Oe,xe),Nt(b,ye),Nt(f,be),Nt(Ne,he)],A0=[new us({source:{asset:F,balance:o().evm().native(),fee:{asset:F,balance:o().evm().native()},destinationFee:{balance:o().evm().native()}},destination:{chain:d,asset:F,fee:{amount:A().Snowbridge().calculateInboundFee({hub:C}),asset:F}},contract:_().Snowbridge().sendToken(),tags:["Snowbridge"]}),oe(Te,Te),oe(Be,Be),oe(Pe,Pe),oe(_e,_e),oe(De,De),oe(Le,Le),oe(Xe,Xe),oe(Ee,Ee),oe(Ie,Ie),oe(Se,Se),oe(He,He),oe(Me,Me),oe(b,yt),oe(f,bt)],_y=[new us({source:{asset:F,balance:o().evm().native(),destinationFee:{asset:F,balance:o().evm().erc20()}},destination:{chain:B,asset:Y,fee:{amount:0,asset:Y}},contract:_().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new us({source:{asset:le,balance:o().evm().erc20(),fee:{asset:F,balance:o().evm().native()},destinationFee:{asset:le,balance:o().evm().erc20()}},destination:{chain:B,asset:ee,fee:{amount:0,asset:ee}},contract:_().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],Ga=new x0({chain:R,routes:[...g0,...A0]});var qa=[Na,Ga];import{AssetRoute as fs,ChainRoutes as za}from"@galacticcouncil/xc-core";import{AssetRoute as tn}from"@galacticcouncil/xc-core";var kt=0,w0=t=>{let{source:e}=t;return!!e.feeSwap},C0=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ja=u().assetConversion().swapTokensForExactTokens({slippage:30});function k0(t,e,s){return new tn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:f}},extrinsic:et(C0,ja).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function ls(t,e,s){return new tn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:t,balance:o().substrate().assets().account(),swap:!0},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:et(w0,ja).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Tt(t,e,s){return new tn({source:{asset:t,balance:o().substrate().assets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().assets().account()},min:mt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ds(t){return k0(t,d,.02)}var T0=[new fs({source:{asset:x,balance:o().substrate().system().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().system().account()},min:mt().assets().asset()},destination:{chain:d,asset:x,fee:{amount:.001,asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new fs({source:{asset:P,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:d,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Tt(f,d,.02),Tt(b,d,.02),ds(Je)],v0=[new fs({source:{asset:P,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:Qe,asset:P,fee:{amount:.001,asset:P}},extrinsic:u().polkadotXcm().transferAssets()})],B0=[Tt(f,B,.25),Tt(b,B,.25)],P0=[Tt(f,L,.03),Tt(b,L,.03)],E0=[new fs({source:{asset:K,balance:o().substrate().foreignAssets().account(),fee:{asset:x,balance:o().substrate().system().account(),extra:kt},destinationFee:{balance:o().substrate().foreignAssets().account()}},destination:{chain:it,asset:K,fee:{amount:2.5,asset:K}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],$a=new za({chain:rt,routes:[ls(f,d,.02),ls(b,d,.02),ls(x,d,.001)]}),Ja=new za({chain:C,routes:[...T0,...v0,...B0,...P0,...E0]});import{AssetRoute as st,ChainRoutes as F0}from"@galacticcouncil/xc-core";var X0=[new st({source:{asset:D,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new st({source:{asset:X,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:T,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:I,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:H,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:H,fee:{amount:.01,asset:H}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:W,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:z,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:z,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:L}),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:f,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new st({source:{asset:b,balance:o().substrate().assets().account(),fee:{asset:D,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().assets().account()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Qa=new F0({chain:Z,routes:[...X0]});import{AssetRoute as Ke,ChainRoutes as I0}from"@galacticcouncil/xc-core";var R0=[new Ke({source:{asset:X,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:X,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:W,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:W,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:z,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:z,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:x,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:x,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:x}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ke({source:{asset:D,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:D,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:D}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:T,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:T,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:B}),asset:T}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:I,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:I,fee:{amount:625e-8,asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:f,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:C}),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],_0=[new Ke({source:{asset:f,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ke({source:{asset:b,balance:o().substrate().tokens().accounts(),fee:{asset:X,balance:o().substrate().system().account()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:C,asset:b,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ya=new I0({chain:L,routes:[...R0,..._0]});import{AssetRoute as qe,ChainRoutes as V0}from"@galacticcouncil/xc-core";var S0="0",v=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===S0?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),G=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:v()});import{AssetRoute as vt}from"@galacticcouncil/xc-core";var D0=.9,L0=1,H0=1,ps=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},hs=u().router().buy({slippage:30});function V(t,e,s){return new vt({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 Ot(t,e,s){return new vt({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 dt(t,e){return new vt({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 bs(t){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:C,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:et(ps,hs).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function W0(t,e,s="LocalReserve"){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:e,asset:t,fee:{amount:H0,asset:T}},extrinsic:et(ps,hs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function ft(t){return W0(t,B,"DestinationReserve")}function M0(t,e,s,n,a,r){return new vt({source:{asset:t,balance:v(),fee:G(),destinationFee:{asset:t,balance:v()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:et(ps,hs).priorMulti([u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),u().polkadotXcm().send().transact({fee:D0})]),transact:{chain:B,fee:{amount:L0,asset:T,balance:v()},extrinsic:u().ethereumXcm().transact(a)},tags:r})}function Ce(t,e,s){return M0(t,e,s,0,_().Batch().batchAll([_().Erc20().approve(n=>n.getTokenBridge()),_().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function te(t,e,s){return new vt({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:et(ps,hs).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var K0=[dt(x,C),dt(P,C),dt(f,C),dt(b,C),bs(Je)],U0=[V(D,Z),V(X,Z,L),V(T,Z,B),new qe({source:{asset:I,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Z,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new qe({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(z,Z,L),V(f,Z,C),V(b,Z,C)],N0=[V(X,L),V(W,L),V(z,L),V(D,L,Z),V(T,L,B),new qe({source:{asset:I,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:L,asset:I,fee:{amount:5e-6,asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),V(f,L,C),V(b,L,C),new qe({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"})})],O0=[Ot(I,ge,62e-8),Ot(H,ge,.0019213457),Ot(j,ge,.5),Ot(f,ge,.3),Ot(b,ge,.3),new qe({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 qe({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"})})],G0=[V(j,B),V(T,B),V(f,B,C),V(b,B,C),ft(ee),ft(he),ft(ye),ft(be),ft(xe),ft(Y),ft(N)],q0=[new qe({source:{asset:K,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:it,asset:K,fee:{amount:2.5,asset:K}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],j0=[V(We,St)],z0=[new qe({source:{asset:ue,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Xt,asset:ue,fee:{amount:.04,asset:ue}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],$0=[V(Fe,It)],J0=[new qe({source:{asset:de,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:Dt,asset:de,fee:{amount:.02,asset:de}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Q0=[new qe({source:{asset:fe,balance:v(),fee:G(),destinationFee:{balance:v()}},destination:{chain:_t,asset:fe,fee:{amount:1.1,asset:fe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Y0=[V(Re,Rt)],Z0=[V(ve,Ft)],em=[Ce($e,ot,Et)],tm=[Ce(ee,le,R),Ce(Y,F,R),Ce(xe,Oe,R),Ce(be,f,R),Ce(ye,b,R),Ce(he,Ne,R)],sm=[te(F,F,R),te(Te,Te,R),te(Be,Be,R),te(Pe,Pe,R),te(_e,_e,R),te(De,De,R),te(Le,Le,R),te(He,He,R),te(Xe,Xe,R),te(Ee,Ee,R),te(Ie,Ie,R),te(Se,Se,R),te(Me,Me,R),te(yt,b,R),te(bt,f,R)],nm=[Ce(N,N,ct),Ce(se,se,ct),Ce(ne,ne,ct)],am=[Ce(ae,ae,Lt)],om=[dt(x,rt),dt(f,rt),dt(b,rt)],Za=new V0({chain:d,routes:[...Z0,...K0,...U0,...em,...N0,...om,...z0,...sm,...tm,...O0,...$0,...J0,...G0,...q0,...Y0,...Q0,...nm,...am,...j0]});import{AssetRoute as xs,ChainRoutes as rm}from"@galacticcouncil/xc-core";var sn=()=>o().substrate().tokens().accounts();function ys(t,e){return new xs({source:{asset:t,balance:sn(),fee:{asset:H,balance:sn()},destinationFee:{balance:sn()}},destination:{chain:d,asset:t,fee:{amount:A().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var im=[new xs({source:{asset:H,balance:o().substrate().tokens().accounts(),destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:H,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new xs({source:{asset:I,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:I,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:u().xTokens().transfer()}),new xs({source:{asset:j,balance:o().substrate().tokens().accounts(),fee:{asset:H,balance:o().substrate().tokens().accounts()},destinationFee:{balance:o().substrate().tokens().accounts()}},destination:{chain:d,asset:j,fee:{amount:.5,asset:j}},extrinsic:u().xTokens().transfer()}),ys(W,L),ys(f,C),ys(b,C),ys(x,C)],eo=new rm({chain:ge,routes:[...im]});import{AssetRoute as es,ChainRoutes as um}from"@galacticcouncil/xc-core";import{AssetRoute as to}from"@galacticcouncil/xc-core";function cm(t,e,s){return new to({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:_().PolkadotXcm().transferAssetsToPara32()})}function mm(t,e,s){return new to({source:{asset:t,balance:o().evm().erc20(),fee:{asset:T,balance:o().evm().erc20()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:_().PolkadotXcm().transferAssetsToPara32()})}function pt(t,e){return cm(t,d,e)}function gs(t,e){return mm(t,d,e)}var lm=[new es({source:{asset:T,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:T,fee:{amount:.05,asset:T}},contract:_().PolkadotXcm().transferAssetsToPara32()}),gs(j,.6),gs(f,.3),gs(b,.3),pt(ee,.004),pt(he,.004),pt(ye,.004),pt(be,.004),pt(xe,1e-7),pt(Y,2e-6),pt(N,2e-5)],dm=[new es({source:{asset:f,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:f,fee:{amount:.18,asset:f}},contract:_().PolkadotXcm().transferAssetsToPara32()}),new es({source:{asset:b,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{balance:o().evm().erc20()}},destination:{chain:C,asset:b,fee:{amount:.18,asset:b}},contract:_().PolkadotXcm().transferAssetsToPara32()})],Jx=[new es({source:{asset:Y,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:Y,balance:o().evm().erc20()}},destination:{chain:R,asset:F,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:F}},contract:_().Batch().batchAll([_().Erc20().approve(t=>t.getTokenRelayer()),_().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new es({source:{asset:ee,balance:o().evm().erc20(),fee:{asset:T,balance:o().substrate().system().account()},destinationFee:{asset:ee,balance:o().evm().erc20()}},destination:{chain:R,asset:le,fee:{amount:A().Wormhole().TokenRelayer().calculateRelayerFee(),asset:le}},contract:_().Batch().batchAll([_().Erc20().approve(t=>t.getTokenRelayer()),_().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],so=new um({chain:B,routes:[...lm,...dm]});import{AssetRoute as no,ChainRoutes as fm}from"@galacticcouncil/xc-core";var pm=[new no({source:{asset:K,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:K,fee:{amount:.01,asset:K}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],hm=[new no({source:{asset:K,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:K,fee:{amount:.1,asset:K}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],ao=new fm({chain:it,routes:[...pm,...hm]});import{AssetRoute as bm,ChainRoutes as ym}from"@galacticcouncil/xc-core";var xm=[new bm({source:{asset:We,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:We,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:We}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],oo=new ym({chain:St,routes:[...xm]});import{AssetRoute as gm,ChainRoutes as Am}from"@galacticcouncil/xc-core";var wm=[new gm({source:{asset:ue,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ue,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ue}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ro=new Am({chain:Xt,routes:[...wm]});import{AssetRoute as Cm,ChainRoutes as km}from"@galacticcouncil/xc-core";var Tm=[new Cm({source:{asset:fe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:fe,fee:{amount:.2,asset:fe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],io=new km({chain:_t,routes:[...Tm]});import{AssetRoute as vm,ChainRoutes as Bm}from"@galacticcouncil/xc-core";var Pm=[new vm({source:{asset:ve,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:ve,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:ve}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],co=new Bm({chain:Ft,routes:[...Pm]});import{AssetRoute as Em,ChainRoutes as Fm}from"@galacticcouncil/xc-core";var Xm=[new Em({source:{asset:Fe,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Fe,fee:{amount:2,asset:Fe}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],mo=new Fm({chain:It,routes:[...Xm]});import{AssetRoute as Im,ChainRoutes as Rm}from"@galacticcouncil/xc-core";var _m=[new Im({source:{asset:de,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:de,fee:{amount:.03,asset:de}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],uo=new Rm({chain:Dt,routes:[..._m]});import{AssetRoute as Sm,ChainRoutes as Dm}from"@galacticcouncil/xc-core";var Lm=[new Sm({source:{asset:Re,balance:o().substrate().system().account(),destinationFee:{balance:o().substrate().system().account()}},destination:{chain:d,asset:Re,fee:{amount:.205,asset:Re}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],lo=new Dm({chain:Rt,routes:[...Lm]});var fo=[co,Ja,$a,Qa,Ya,Za,eo,so,ao,lo,oo,ro,io,mo,uo];import{AssetRoute as nn,ChainRoutes as Hm}from"@galacticcouncil/xc-core";var Wm=[new nn({source:{asset:N,balance:o().solana().native(),destinationFee:{asset:N,balance:o().solana().native()}},destination:{chain:d,asset:N,fee:{amount:0,asset:N}},program:Zt().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new nn({source:{asset:se,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:se,balance:o().solana().token()}},destination:{chain:d,asset:se,fee:{amount:0,asset:se}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]}),new nn({source:{asset:ne,balance:o().solana().token(),fee:{asset:N,balance:o().solana().native()},destinationFee:{asset:ne,balance:o().solana().token()}},destination:{chain:d,asset:ne,fee:{amount:0,asset:ne}},program:Zt().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],po=new Hm({chain:ct,routes:[...Wm]});var ho=[po];import{AssetRoute as Mm,ChainRoutes as Vm}from"@galacticcouncil/xc-core";var Km=[new Mm({source:{asset:ae,balance:o().sui().native(),destinationFee:{asset:ae,balance:o().sui().native()}},destination:{chain:d,asset:ae,fee:{amount:0,asset:ae}},move:en().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:B}),tags:["Mrl","Wormhole"]})],bo=new Vm({chain:Lt,routes:[...Km]});var yo=[bo];import{AssetRoute as xo,ChainRoutes as Um}from"@galacticcouncil/xc-core";import{AssetRoute as xA}from"@galacticcouncil/xc-core";var an=.0015;var Nm=new xo({source:{asset:P,balance:o().substrate().system().account(),fee:{asset:P,balance:o().substrate().system().account(),extra:an},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:C,asset:P,fee:{amount:.002,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Om=new xo({source:{asset:P,balance:o().substrate().system().account(),fee:{asset:P,balance:o().substrate().system().account(),extra:an},destinationFee:{balance:o().substrate().system().account()}},destination:{chain:Ht,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),go=new Um({chain:Qe,routes:[Om,Nm]});import{AssetRoute as Ao,ChainRoutes as qm}from"@galacticcouncil/xc-core";var Gm="0",Gt=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Gm?o().substrate().system().account().build({address:t,asset:e,chain:s}):o().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),on=()=>({asset:Yt().multiTransactionPayment().accountCurrencyMap(),balance:Gt()});var jm=[new Ao({source:{asset:f,balance:Gt(),fee:on(),destinationFee:{balance:Gt()}},destination:{chain:Qe,asset:f,fee:{amount:A().XcmPaymentApi().calculateDestFee(),asset:f}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],zm=[new Ao({source:{asset:P,balance:Gt(),fee:on(),destinationFee:{balance:Gt()}},destination:{chain:Qe,asset:P,fee:{amount:.0012,asset:P}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],wo=new qm({chain:Ht,routes:[...jm,...zm]});var Co=[go,wo];var $m=[...qa,...fo,...ho,...yo,...Co],Jm=new Map($m.map(t=>[t.chain.key,t]));import{Parachain as Fo}from"@galacticcouncil/xc-core";import{TransferValidation as ko,TransferValidationError as To}from"@galacticcouncil/xc-core";var As=class extends ko{async validate(e){let{source:s}=e,{chain:n,fee:a,feeBalance:r}=s;if(r.amount<a.amount)throw new To("Insufficient_Fee_Balance",{amount:a.toDecimal(),asset:a.symbol,chain:n.name,error:"fee.insufficientBalance"})}},ws=class extends ko{async skipFor(e){let{asset:s,source:n}=e,{enabled:a}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!a}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:a,destinationFee:r,destinationFeeBalance:i}=n,m=await this.getMin(a,r),c=r.copyWith({amount:r.amount+m});if(i.amount<c.amount)throw new To("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 vo,TransferValidationError as Bo}from"@galacticcouncil/xc-core";var Cs=class extends vo{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,r=a.chain;if(await new me(r).getSystemAccountBalance(n)===0n)throw new Bo("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:a.chain.name,error:"account.insufficientDeposit"})}},ks=class extends vo{async validate(e){let{asset:s,sender:n,source:a}=e,r=a.chain;if(await new me(r).checkIfFrozen(n,s))throw new Bo("Asset_Frozen",{asset:s.originSymbol,chain:a.chain.name,error:"asset.frozen"})}};import{TransferValidation as Po,TransferValidationError as Eo}from"@galacticcouncil/xc-core";var Qm=12,Ym=1,Zm=18,Ts=class extends Po{async skipFor(e){let{destination:s}=e,n=s.chain,a=new Ve(n),r=s.balance.amount>0n,i=await a.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:a}=e,r=a.chain,i=new Ve(r),m=await i.getFeeAsset(n),c=r.findAssetById(m),l=c.min||Ym,p=c.decimals||Qm,h=l*Math.pow(10,p),g=await i.getAssetBalance(n,m);if(BigInt(h*1.1)>g)throw new Eo("Insufficient_Ed",{amount:h,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},vs=class extends Po{async skipFor(e){let{source:s,transact:n}=e,{enabled:a}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!a}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:a}=e,r=a.chain,i=new Ve(r),m=r.getBalanceAssetId(T),c=r.getAssetDecimals(T)||Zm,l=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,m.toString())<BigInt(l))throw new Eo("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var ke={isAny:()=>!0,isHydration:t=>t instanceof Fo&&t.parachainId===2034,isHub:t=>t instanceof Fo&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},eu=[new As(ke.isAny,ke.isAny),new ws(ke.isAny,ke.isAny),new Cs(ke.isAny,ke.isHub),new ks(ke.isHub,ke.isAny),new Ts(ke.isAny,ke.isHydration),new vs(ke.isHydration,ke.isAny)];var Io={};jt(Io,{AssethubDex:()=>cn,HydrationDex:()=>rn});import{pool as tu,sor as su,tx as nu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as au}from"@galacticcouncil/common";import{memoize1 as ou}from"@thi.ng/memoize";var{PoolType:Bs}=tu,{TradeRouteBuilder:ru,TradeRouter:iu}=su,{TxBuilderFactory:cu}=nu,rn=class{chain;client;poolCtx;txBuilder;getCtx=ou(async e=>{console.log("init swap router",e,"\u2705");let s=new iu(this.poolCtx);return s.withFilter({useOnly:[Bs.Aave,Bs.Omni,Bs.Stable,Bs.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ve(this.chain),this.txBuilder=new cu(s.client,s.evm)}async getCalldata(e,s,n,a,r=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(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,a){let r=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(r,i),p=await c.getBuy(r,i,m,l);return{amount:p.amountIn,route:ru.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 r=a*s,i=Math.pow(10,au);return r/BigInt(i)}};import{encodeLocation as Xo}from"@galacticcouncil/common";var cn=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),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Xo(a),Xo(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as uu}from"@galacticcouncil/xc-core";import{Asset as mu}from"@galacticcouncil/xc-core";function Ps(t){let{id:e,origin:s,symbol:n}=t,a=n.toLowerCase();return new mu({key:[a,s,e].join("_"),originSymbol:n})}function Ro(t){let{decimals:e,id:s}=t;return{asset:Ps(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function _o(t){let{decimals:e,id:s,internalId:n,origin:a}=t;return{asset:Ps(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 mn=class extends uu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),a=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!a(r)&&r.origin===1e3).forEach(r=>{let i=Ps(r),m=Ro(r),c=_o(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(m),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,ds(i)),this.updateChainRoute(s,bs(i))})}};export{mn as HydrationConfigService,Ho as assetsMap,Va as builders,Kr as chainsMap,ka as clients,Io as dex,Jm as routesMap,Ka as tags,eu as validations};
|
|
@@ -6,12 +6,6 @@ export declare function ContractBuilder(): {
|
|
|
6
6
|
batchAll: (configs: import("@galacticcouncil/xc-core").ContractConfigBuilder[]) => import("@galacticcouncil/xc-core").ContractConfigBuilder;
|
|
7
7
|
};
|
|
8
8
|
Erc20: typeof Erc20;
|
|
9
|
-
InstaBridge: () => {
|
|
10
|
-
bridgeViaWormhole: (opts: {
|
|
11
|
-
destChain: import("@galacticcouncil/xc-core").EvmParachain;
|
|
12
|
-
destAsset: import("@galacticcouncil/xc-core").Asset;
|
|
13
|
-
}) => import("@galacticcouncil/xc-core").ContractConfigBuilder;
|
|
14
|
-
};
|
|
15
9
|
PolkadotXcm: typeof PolkadotXcm;
|
|
16
10
|
Snowbridge: () => {
|
|
17
11
|
sendToken: () => import("@galacticcouncil/xc-core").ContractConfigBuilder;
|
package/build/types/tags.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-cfg",
|
|
3
|
-
"version": "0.17.0
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Cross-chain hydradx & basilisk dapp configuration",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest --silent"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@galacticcouncil/xc-core": "0.
|
|
34
|
+
"@galacticcouncil/xc-core": "^0.12.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@galacticcouncil/sdk-next": ">=0.20.0 <1.0.0"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Asset, ContractConfigBuilder, EvmParachain } from '@galacticcouncil/xc-core';
|
|
2
|
-
type BridgeViaWormholeOpts = {
|
|
3
|
-
destChain: EvmParachain;
|
|
4
|
-
destAsset: Asset;
|
|
5
|
-
};
|
|
6
|
-
export declare const InstaBridge: () => {
|
|
7
|
-
bridgeViaWormhole: (opts: BridgeViaWormholeOpts) => ContractConfigBuilder;
|
|
8
|
-
};
|
|
9
|
-
export {};
|