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