@galacticcouncil/xc-cfg 2.0.0-pr346-46bd2f0 → 2.0.0-pr346-b2ffa7e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var kn=Object.defineProperty;var Vr=Object.getOwnPropertyDescriptor;var Mr=Object.getOwnPropertyNames;var Nr=Object.prototype.hasOwnProperty;var ns=(t,e)=>{for(var s in e)kn(t,s,{get:e[s],enumerable:!0})},Or=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Mr(e))!Nr.call(t,o)&&o!==s&&kn(t,o,{get:()=>e[o],enumerable:!(n=Vr(e,o))||n.enumerable});return t};var Gr=t=>Or(kn({},"__esModule",{value:!0}),t);var e0={};ns(e0,{HydrationConfigService:()=>wn,assetsMap:()=>mo,builders:()=>$n,chainsMap:()=>vo,clients:()=>Jn,dex:()=>ro,routesMap:()=>Tr,tags:()=>Qn,validations:()=>Pr});module.exports=Gr(e0);var w=require("@galacticcouncil/xc-core"),le=new w.Asset({key:"aave",originSymbol:"AAVE"}),$e=new w.Asset({key:"ajun",originSymbol:"AJUN"}),fe=new w.Asset({key:"apyusd",originSymbol:"apyUSD"}),R=new w.Asset({key:"astr",originSymbol:"ASTR"}),S=new w.Asset({key:"bnc",originSymbol:"BNC"}),En=new w.Asset({key:"bsx",originSymbol:"BSX"}),pe=new w.Asset({key:"cfg_new",originSymbol:"CFG"}),Fe=new w.Asset({key:"cru",originSymbol:"CRU"}),ht=new w.Asset({key:"dai",originSymbol:"DAI"}),Xe=new w.Asset({...ht,key:"dai_mwh"}),x=new w.Asset({key:"dot",originSymbol:"DOT"}),B=new w.Asset({key:"eth",originSymbol:"ETH"}),he=new w.Asset({key:"ena",originSymbol:"ENA"}),ut=new w.Asset({key:"eurc",originSymbol:"EURC"}),Qe=new w.Asset({...ut,key:"eurc_mwh"}),P=new w.Asset({key:"glmr",originSymbol:"GLMR"}),z=new w.Asset({key:"hdx",originSymbol:"HDX"}),_=new w.Asset({key:"ibtc",originSymbol:"IBTC"}),H=new w.Asset({key:"intr",originSymbol:"INTR"}),Ne=new w.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),T=new w.Asset({key:"ksm",originSymbol:"KSM"}),ye=new w.Asset({key:"ldo",originSymbol:"LDO"}),be=new w.Asset({key:"lbtc",originSymbol:"LBTC"}),ve=new w.Asset({key:"ewt",originSymbol:"EWT"}),xe=new w.Asset({key:"link",originSymbol:"LINK"}),M=new w.Asset({key:"myth",originSymbol:"MYTH"}),Ye=new w.Asset({key:"neuro",originSymbol:"NEURO"}),Be=new w.Asset({key:"pen",originSymbol:"PEN"}),Ae=new w.Asset({key:"paxg",originSymbol:"PAXG"}),Oe=new w.Asset({key:"prime",originSymbol:"PRIME"}),ge=new w.Asset({key:"sky",originSymbol:"SKY"}),ae=new w.Asset({key:"sol",originSymbol:"SOL"}),Mt=new w.Asset({key:"sui",originSymbol:"SUI"}),we=new w.Asset({key:"susde",originSymbol:"sUSDe"}),Ze=new w.Asset({key:"susds",originSymbol:"sUSDS"}),Se=new w.Asset({...Ze,key:"susds_mwh"}),Ce=new w.Asset({key:"tbtc",originSymbol:"tBTC"}),ke=new w.Asset({key:"trac",originSymbol:"TRAC"}),et=new w.Asset({key:"unq",originSymbol:"UNQ"}),b=new w.Asset({key:"usdt",originSymbol:"USDT"}),De=new w.Asset({...b,key:"usdt_mwh"}),yt=new w.Asset({...b,key:"usdt_eth"}),A=new w.Asset({key:"usdc",originSymbol:"USDC"}),_e=new w.Asset({...A,key:"usdc_mwh"}),bt=new w.Asset({...A,key:"usdc_eth"}),Q=new w.Asset({key:"vastr",originSymbol:"vASTR"}),V=new w.Asset({key:"vdot",originSymbol:"vDOT"}),tt=new w.Asset({key:"weth",originSymbol:"WETH"}),Ie=new w.Asset({...tt,key:"weth_mwh"}),st=new w.Asset({key:"wbtc",originSymbol:"WBTC"}),Re=new w.Asset({...st,key:"wbtc_mwh"}),Ee=new w.Asset({key:"wsteth",originSymbol:"wstETH"}),xt=new w.Asset({key:"wud",originSymbol:"WUD"}),Ur=[le,$e,fe,R,En,pe,Fe,S,ht,Xe,x,he,ut,Qe,B,P,z,_,H,T,ye,be,ve,Ne,xe,M,Ye,Ae,Be,Oe,ge,ae,Mt,we,Ze,Se,ke,Ce,et,A,_e,bt,b,De,yt,Q,V,st,Re,tt,Ie,Ee,xt],mo=new Map(Ur.map(t=>[t.key,t]));var os=require("@galacticcouncil/xc-core");var uo=require("viem/chains"),as=new os.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:B,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:ut,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:A,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:os.EvmBalanceType.Erc20,ecosystem:os.ChainEcosystem.Ethereum,evmChain:uo.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[ut.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Nt=require("@galacticcouncil/xc-core");var lo=require("viem/chains"),v=new Nt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:le,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:fe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:tt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ht,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:he,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:we,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ze,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ce,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:st,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:be,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:A,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:b,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ye,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ae,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:ge,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ke,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ee,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Nt.EvmBalanceType.Erc20,balanceOverrides:{[B.key]:Nt.EvmBalanceType.Native},ecosystem:Nt.ChainEcosystem.Ethereum,evmChain:lo.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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[ht.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ze.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[A.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[b.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[st.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[tt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var fo=[as,v];var rs=require("@galacticcouncil/xc-core");var is=new rs.Parachain({assetsData:[{asset:$e,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:rs.SubstrateBalanceType.System,ecosystem:rs.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Ge=require("@galacticcouncil/xc-core");var po={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:A,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:xt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:M,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Ge.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:Ge.SubstrateBalanceType.System,[T.key]:Ge.SubstrateBalanceType.ForeignAssets,[M.key]:Ge.SubstrateBalanceType.ForeignAssets},min:Ge.SubstrateMinType.Assets,ecosystem:Ge.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},k=new Ge.Parachain({...po,key:"assethub",name:"AssetHub Polkadot"}),Ct=new Ge.Parachain({...po,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Ot=require("@galacticcouncil/xc-core");var se=new Ot.Parachain({assetsData:[{asset:R,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:A,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:S,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:P,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ot.SubstrateBalanceType.Assets,balanceOverrides:{[R.key]:Ot.SubstrateBalanceType.System},ecosystem:Ot.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Gt=require("@galacticcouncil/xc-core");var Wr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new Gt.Parachain({assetsData:[{asset:S,id:{Native:S.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:A,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:P,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Gt.SubstrateBalanceType.Tokens,balanceOverrides:{[S.key]:Gt.SubstrateBalanceType.System},ecosystem:Gt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Wr});var kt=require("@galacticcouncil/xc-core");var cs=new kt.Parachain({assetsData:[{asset:Fe,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:kt.SubstrateBalanceType.System,ecosystem:kt.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:kt.XcmVersion.v3});var Ut=require("@galacticcouncil/xc-core"),xo=require("viem");var yo=require("@galacticcouncil/common"),bo=require("polkadot-api"),{isEvmAccount:Kr,H160:ho}=yo.h160,Vs=class{async toH160(e,s){if(Kr(e))return ho.fromAccount(e);let n=ho.fromSS58(e);if(s&&await this.isBound(s,n,e))return n;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,s,n){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(s);if(!a)return!1;let r=(0,bo.AccountId)().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var qr=new Vs,vn=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Tn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],jr=(0,xo.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:vn,webSocket:Tn},default:{http:vn,webSocket:Tn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new Ut.EvmParachain({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:le,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:$e,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:S,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Fe,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Xe,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:B,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:fe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:he,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:P,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ne,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Oe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:ve,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ye,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:T,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:xe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ae,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:M,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ye,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Be,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:ae,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Mt,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:we,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ze,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Se,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ce,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ke,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:et,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:A,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:_e,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Qe,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:bt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:b,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:De,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:yt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:st,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Re,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:tt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Ie,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ee,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:xt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Ut.SubstrateBalanceType.Tokens,balanceOverrides:{[z.key]:Ut.SubstrateBalanceType.System},ecosystem:Ut.ChainEcosystem.Polkadot,evmChain:jr,evmResolver:qr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Xe.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Qe.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Ne.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Oe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[ae.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Se.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[_e.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[De.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Re.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Ie.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Tn,rpcs:vn});var Et=require("@galacticcouncil/xc-core");var Ue=new Et.Parachain({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:A,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:z,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:V,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Et.SubstrateBalanceType.Tokens,ecosystem:Et.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Et.XcmVersion.v3});var vt=require("@galacticcouncil/xc-core"),Ao=require("viem");var zr=(0,Ao.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}),G=new vt.EvmParachain({assetsData:[{asset:P,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Xe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Qe,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:ae,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Ne,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Oe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Se,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Mt,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:_e,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:De,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Re,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Ie,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:z,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:A,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:b,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:vt.EvmBalanceType.Erc20,balanceOverrides:{[P.key]:vt.SubstrateBalanceType.System},ecosystem:vt.ChainEcosystem.Polkadot,evmChain:zr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var ms=require("@galacticcouncil/xc-core");var Tt=new ms.Parachain({assetsData:[{asset:M,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ms.SubstrateBalanceType.System,ecosystem:ms.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 us=require("@galacticcouncil/xc-core");var ds=new us.Parachain({assetsData:[{asset:Ye,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:us.SubstrateBalanceType.System,ecosystem:us.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 Pt=require("@galacticcouncil/xc-core");var ls=new Pt.Parachain({assetsData:[{asset:Be,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Pt.SubstrateBalanceType.System,ecosystem:Pt.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:Pt.XcmVersion.v3});var fs=require("@galacticcouncil/xc-core");var Jr={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:fs.SubstrateBalanceType.System,ecosystem:fs.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"},go=new fs.Parachain({...Jr,key:"polkadot"});var ps=require("@galacticcouncil/xc-core");var hs=new ps.Parachain({assetsData:[{asset:et,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ps.SubstrateBalanceType.System,ecosystem:ps.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var Ft=require("@galacticcouncil/xc-core");var ys=new Ft.Parachain({assetsData:[{asset:ve,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Ft.SubstrateBalanceType.System,ecosystem:Ft.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:Ft.XcmVersion.v3});var wo=[is,k,Ct,se,L,cs,h,ds,Ue,G,Tt,ls,go,hs,ys];var Wt=require("@galacticcouncil/xc-core");var Xt=new Wt.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:ae,decimals:9},{asset:Ne,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Oe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Wt.SolanaBalanceType.Token,balanceOverrides:{[ae.key]:Wt.SolanaBalanceType.Native},ecosystem:Wt.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",ntt:{[ae.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"}},[Ne.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"}},[Oe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"}}},platformAddressFormat:"base58"}});var Co=[Xt];var bs=require("@galacticcouncil/xc-core");var Ms=new bs.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Mt,decimals:9}],balance:bs.SuiBalanceType.Native,ecosystem:bs.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var ko=[Ms];var At=require("@galacticcouncil/xc-core");var nt=new At.Parachain({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:At.SubstrateBalanceType.Assets,balanceOverrides:{[T.key]:At.SubstrateBalanceType.System},min:At.SubstrateMinType.Assets,ecosystem:At.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 xs=require("@galacticcouncil/xc-core");var As=new xs.Parachain({assetsData:[{asset:En,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:xs.SubstrateBalanceType.Tokens,ecosystem:xs.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 Eo=[nt,As];var $r=[...fo,...wo,...Co,...ko,...Eo],vo=new Map($r.map(t=>[t.key,t]));var Qa=require("@galacticcouncil/xc-core");var Yn=require("@galacticcouncil/xc-core");var $n={};ns($n,{ContractBuilder:()=>q,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>wt,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>Ds,XcmTransferType:()=>He,XcmVersion:()=>dt});var Kt=require("@galacticcouncil/xc-core"),To=require("viem"),Qr=t=>({build:async e=>{let s=await Promise.all(t.map(r=>r.build(e))),n=s.map(r=>r.address),o=[0,0],a=s.map(r=>(0,To.encodeFunctionData)({abi:Kt.Abi[r.module],functionName:r.func,args:r.args}));return new Kt.ContractConfig({abi:Kt.Abi.Batch,address:Kt.Precompile.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Po=()=>({batchAll:Qr});var gs=require("@galacticcouncil/xc-core");function Y(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function qt(t){return typeof t=="object"?Object.values(t)[0]:t}function Fo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=gs.Wormhole.fromChain(r),i=r.getAssetId(n);return new gs.ContractConfig({abi:gs.Abi.Erc20,address:qt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var ws=require("@galacticcouncil/xc-core");var Xo=require("@galacticcouncil/common"),Bo=require("polkadot-api"),So=require("@polkadot-api/utils"),{H160:Yr,isEvmAddress:Zr}=Xo.h160;function ei(t){let e=Zr(t)?Yr.toAccount(t):t;return(0,So.toHex)((0,Bo.AccountId)().enc(e))}var ti=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=ws.Basejump.fromChain(a),c=a.getAssetId(n);return new ws.ContractConfig({abi:ws.Abi.Basejump,address:r.getAddress(),args:[qt(c),s,ei(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Do=()=>({bridgeViaWormhole:ti});var ot=require("@galacticcouncil/xc-core"),Io=require("@galacticcouncil/common"),{Ss58Addr:_o}=ot.addr;function si(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 Pn(t,e){let s=t.getAssetId(e);return typeof s=="string"?si(s):s}function Ro(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Pn(o.chain,s);return new ot.ContractConfig({abi:ot.Abi.PolkadotXcm,address:ot.Precompile.PolkadotXcm,args:[n.chain.parachainId,_o.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Pn(o.chain,s),r=Pn(o.chain,o.destinationFeeBalance),c=Io.big.toBigInt(n.fee.amount,n.fee.decimals);return new ot.ContractConfig({abi:ot.Abi.PolkadotXcm,address:ot.Precompile.PolkadotXcm,args:[n.chain.parachainId,_o.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var rt=require("@galacticcouncil/xc-core"),St=require("@galacticcouncil/descriptors"),jo=require("@polkadot-api/substrate-bindings"),Gs=require("@polkadot-api/utils"),zo=require("viem");var Lo=require("@galacticcouncil/xc-core"),Ns=null;async function Ho(){if(Ns)return Ns;let t=await Lo.codec.getHubCodecs();return Ns={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Ns}var Go=require("@galacticcouncil/xc-core"),m=require("@galacticcouncil/descriptors"),Uo=require("@polkadot-api/substrate-bindings"),Wo=require("@polkadot-api/utils");var Vo=require("@galacticcouncil/descriptors"),Z=340282366920938463463374607431768211455n,at="0x0000000000000000000000000000000000000000000000000000000000000000",J={parents:1,interior:Vo.XcmV3Junctions.Here()},Mo=0,Bt=1e3,Os=1002,We=1,jt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",No="0x0000000000000000000000000000000000000000000000000000000000000000",Oo="0x0000000000000000000000000000000000000000";var Fn="0x0000000000000000000000000000000000000000",Cs=t=>({parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Xn=(t,e)=>({parents:2,interior:m.XcmV5Junctions.X2([m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),m.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function Ko(t,e){let s=Cs(t),n=Xn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[m.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:m.XcmV3MultiassetFungibility.Fungible(o)},{id:n,fun:m.XcmV3MultiassetFungibility.Fungible(o)}]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),m.XcmV5Instruction.PayFees({asset:{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(a)}})],c=Bn({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function Bn(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Cs(e),u=n===Fn?i:Xn(e,n),l=o.length===42&&o.startsWith("0x")?m.XcmV5Junction.AccountKey20({key:o,network:void 0}):m.XcmV5Junction.AccountId32({id:o,network:void 0}),y={parents:0,interior:m.XcmV5Junctions.X1(l)};return[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:u,fun:m.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}function Sn(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:u}=t,p=Cs(We),l=e===Fn?p:Xn(We,e),y={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountId32({id:s,network:void 0}))},g={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountKey20({key:n,network:void 0}))},C={parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(We)})))},X=[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:g}),m.XcmV5Instruction.SetTopic(u)],D=[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})])];D.push(m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Definite([{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:m.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let I=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))}],K=m.XcmV5AssetFilter.Definite([{id:p,fun:m.XcmV3MultiassetFungibility.Fungible(i)}]);D.push(m.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:K},preserve_origin:!0,assets:I,remote_xcm:X}),m.XcmV5Instruction.SetTopic(u));let te=a+r+c,de=[{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(te)},{id:l,fun:m.XcmV3MultiassetFungibility.Fungible(o)}],ze=[{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],mt={type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))},Je=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(c)}])},mt];return[m.XcmV5Instruction.WithdrawAsset(de),m.XcmV5Instruction.PayFees({asset:ze[0]}),m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(Bt))},remote_fees:{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:J,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Je,remote_xcm:D}),m.XcmV5Instruction.SetTopic(u)]}function qo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,u=(0,Uo.getSs58AddressInfo)(o);if(!u.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,Wo.toHex)(u.publicKey),l=i.getAssetXcmLocation(n),y=l?Go.multiloc.findNestedKey(l,"key"):void 0,g=y?y.key:Fn,C=r.feeBreakdown,X=C.sourceExecutionFee??0n,D=C.dotRemoteFee??0n,I=C.dotToEtherSwapAmount??0n,K=C.etherFeeAmount??0n,de=Sn({tokenAddress:g,senderPubKey:p,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:X,dotRemoteFee:D,dotToEtherSwapAmount:I,etherFeeAmount:K,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return m.XcmVersionedXcm.V5(de)}var{Ss58Addr:Jo}=rt.addr,ni="0x0000000000000000000000000000000000000000",oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,u=rt.Snowbridge.fromChain(c),p=c.getAssetId(n),l=qt(p),y=n.originSymbol==="ETH",g=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,X=r.feeBreakdown.hydrationDotFee,D=r.fee.amount,I=Jo.getPubKey(e),K=new TextEncoder().encode(`${i.parachainId}${o}${l}${I}${s}${Date.now()}`),te=(0,Gs.toHex)((0,jo.Blake2256)(K)),de=Bn({ethChainId:We,destinationParaId:i.parachainId,tokenAddress:y?ni:l,beneficiaryHex:I,tokenAmount:s,hydrationDotFee:X,topic:te}),ze=await Ho(),mt=(0,Gs.toHex)(ze.message.enc(St.XcmVersionedXcm.V5(de))),Je=[];y||Je.push((0,zo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,l,s]));let ss=ze.location.enc(St.XcmVersionedLocation.V5({parents:0,interior:St.XcmV5Junctions.X1(St.XcmV5Junction.AccountId32({id:I,network:void 0}))})),Vt=(0,Gs.toHex)(ss.slice(1));return new rt.ContractConfig({abi:rt.Abi.Snowbridge,address:u.getGateway(),args:[mt,Je,Vt,g,C],value:y?D+s:D,func:"v2_sendMessage",module:"Snowbridge"})}}),ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=rt.Snowbridge.fromChain(r),u=r.getAssetId(n),p=qt(u),l=n.originSymbol==="ETH",y=a.feeBreakdown.bridgeFeeInDot,g=a.fee.amount;return new rt.ContractConfig({abi:rt.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,Jo.getPubKey(e)],y,s],value:l?g+s:g,func:"sendToken",module:"Snowbridge"})}}),$o=()=>({v2SendMessage:oi,sendToken:ai});var Le=require("@galacticcouncil/xc-core"),ri="0x00",Qo=8,ii=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Le.Ntt.fromChain(r,n),u=Le.Wormhole.fromChain(c),p=e;c instanceof Le.EvmParachain&&(p=await c.getDerivatedAddress(e));let l=r,y=await l.evmClient.getProvider().readContract({abi:Le.Abi.NttManager,address:i.manager,args:[u.getWormholeId(),ri],functionName:"quoteDeliveryPrice"}),g=l.getAssetDecimals(n)??0,C=s;if(g>Qo){let X=10n**BigInt(g-Qo);C=s-s%X}return new Le.ContractConfig({abi:Le.Abi.NttManager,address:i.manager,args:[C,u.getWormholeId(),u.normalizeAddress(p)],token:i.token,wrapNative:l.getBalanceType(n)===Le.EvmBalanceType.Native,value:y[1],func:"transfer",module:"NttManager"})}}),Yo=()=>({transfer:ii});function Zo(){return{Ntt:Yo}}function q(){return{Batch:Po,Erc20:Fo,Basejump:Do,PolkadotXcm:Ro,Snowbridge:$o,Wormhole:Zo}}var Dn=require("@galacticcouncil/common"),ta=require("@galacticcouncil/xc-core"),ea="AssetConversion",ci=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,u=(0,Dn.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,Dn.encodeLocation)(i.getAssetXcmLocation(c)),l=r.amount+r.amount*BigInt(t.slippage)/100n,y=c.amount;return new ta.ExtrinsicConfig({module:ea,func:e,getTx:g=>g.getUnsafeApi().tx[ea][e]({path:[u,p],amount_out:y,amount_in_max:l,send_to:s,keep_alive:!0})})}}},sa=()=>({swapTokensForExactTokens:ci});var Us=require("@galacticcouncil/descriptors"),na=require("@galacticcouncil/xc-core"),mi="Assets",ui=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:r}=o,c=s>r.amount?s-r.amount:s,i=a.getMetadataAssetId(e);return new na.ExtrinsicConfig({module:mi,func:t,getTx:u=>u.getTypedApi(Us.hub).tx.Assets.transfer({id:Number(i),target:Us.MultiAddress.Id(n),amount:c})})}}},oa=()=>({transfer:ui});var ra=require("@galacticcouncil/xc-core"),aa="Balances",di=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new ra.ExtrinsicConfig({module:aa,func:e,getTx:n=>n.getUnsafeApi().tx[aa][e]({dest:s,keep_alive:t})})}},ia=()=>({transferAll:di});var ca=require("@galacticcouncil/descriptors"),ma=require("@galacticcouncil/xc-core"),li="Router",fi=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,u=i.getMetadataAssetId(a),p=i.getMetadataAssetId(r),l=r.amount,y=a.amount+a.amount*BigInt(t.slippage)/100n;return new ma.ExtrinsicConfig({module:li,func:"buy",getTx:g=>g.getTypedApi(ca.hydration).tx.Router.buy({asset_in:Number(u),asset_out:Number(p),amount_out:l,max_amount_in:y,route:c})})}}),ua=()=>({buy:fi});var la=require("@galacticcouncil/xc-core"),da="Utility",pi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new la.ExtrinsicConfig({module:da,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[da][e]({calls:a})}})}}},fa=()=>({batchAll:pi});var Ws=require("@galacticcouncil/xc-core"),ha=require("polkadot-api"),ya=require("viem");var dt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(dt||{}),He=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(He||{});var pa="EthereumXcm",hi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,ya.encodeFunctionData)({abi:Ws.Abi[n.module],functionName:n.func,args:n.args});return new Ws.ExtrinsicConfig({module:pa,func:e,getTx:r=>r.getUnsafeApi().tx[pa][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:ha.Binary.fromHex(a),access_list:void 0}}})})}}},_n=()=>({transact:hi});var gt=require("@galacticcouncil/xc-core"),Xs=require("@galacticcouncil/common");var zt=require("@galacticcouncil/xc-core"),d=require("@galacticcouncil/descriptors");var ee=require("@galacticcouncil/descriptors");var ba=require("@galacticcouncil/common"),In=require("@galacticcouncil/descriptors"),xa=require("@polkadot-api/substrate-bindings"),Aa=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return In.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,xa.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return In.XcmV3Junction.AccountId32({id:(0,Aa.toHex)(s.publicKey),network:void 0})}function ks(t,e,s){return ba.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Rn=require("@galacticcouncil/xc-core");function ga(t,e){let s=Rn.multiloc.findNestedKey(t,"GeneralIndex"),n=Rn.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Ks={};ns(Ks,{ETHER_TOKEN_ADDRESS:()=>Ln,erc20Location:()=>bi,erc20LocationReanchored:()=>xi,ethereumLocation:()=>Ca,parachainLocation:()=>yi});var Ke=require("@galacticcouncil/descriptors"),Ln="0x0000000000000000000000000000000000000000",wa=t=>Ke.XcmV3Junction.GlobalConsensus(Ke.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Ca(t){return{parents:2,interior:Ke.XcmV3Junctions.X1(wa(t))}}function yi(t){return{parents:1,interior:Ke.XcmV3Junctions.X1(Ke.XcmV3Junction.Parachain(t))}}function bi(t,e){return e===Ln?Ca(t):{parents:2,interior:Ke.XcmV3Junctions.X2([wa(t),Ke.XcmV3Junction.AccountKey20({key:e})])}}function xi(t){return t===Ln?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ke.XcmV3Junctions.X1(Ke.XcmV3Junction.AccountKey20({key:t}))}}var Hn=require("@galacticcouncil/common"),ka=require("@galacticcouncil/xc-core");function U(t,e){return Ai(e)>=4?(0,Hn.encodeLocation)(t):gi(t)}function Ai(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function gi(t){return{type:"Concrete",value:(0,Hn.encodeLocation)(t)}}var wi=1e3;function Ci(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function ki(t){if(t)return Ci(t)?wi:ka.multiloc.findParachain(t)}function Ea(t,e,s,n){let o=e.getAssetXcmLocation(t),a=ki(o),r=n?.parachainId??s.parachainId;if(a&&r!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function qs(t,e){let s="V4",n=U(N(e,t),s),o=at;return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:J,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:J,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(j(jt))}}),ee.XcmV4Instruction.SetTopic(o)]}var lt=require("@galacticcouncil/descriptors");function Vn(t,e){let s="V4",n=U(N(e,t),s),o=js("V4",j(Oo),j(jt),n,at);return[lt.XcmV4Instruction.WithdrawAsset([{id:J,fun:lt.XcmV3MultiassetFungibility.Fungible(Z)},{id:n,fun:lt.XcmV3MultiassetFungibility.Fungible(Z)}]),lt.XcmV4Instruction.ClearOrigin(),lt.XcmV4Instruction.BuyExecution({fees:{id:J,fun:lt.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:lt.XcmV3WeightLimit.Unlimited()}),...o.value]}var F=require("@galacticcouncil/descriptors");function va(t,e){let s="V4",n=U(N(e,t),s),o=at;return[F.XcmV4Instruction.WithdrawAsset([{id:n,fun:F.XcmV3MultiassetFungibility.Fungible(Z)}]),F.XcmV4Instruction.ClearOrigin(),F.XcmV4Instruction.BuyExecution({fees:{id:n,fun:F.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:F.XcmV3WeightLimit.Unlimited()}),F.XcmV4Instruction.DepositAsset({assets:F.XcmV4AssetAssetFilter.Wild(F.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:F.XcmV3Junctions.X1(j(jt))}}),F.XcmV4Instruction.SetTopic(o)]}function Mn(t,e){let s="V4",n=U(N(e,t),s);return[F.XcmV4Instruction.BuyExecution({fees:{id:n,fun:F.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:F.XcmV3WeightLimit.Unlimited()}),F.XcmV4Instruction.DepositAsset({assets:F.XcmV4AssetAssetFilter.Wild(F.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:F.XcmV3Junctions.X1(j(jt))}})]}function Ta(t,e,s){let n="V4",o=U(N(e,t),n),a=at,r=Mn(t,s);return[F.XcmV4Instruction.WithdrawAsset([{id:o,fun:F.XcmV3MultiassetFungibility.Fungible(Z)}]),F.XcmV4Instruction.ClearOrigin(),F.XcmV4Instruction.BuyExecution({fees:{id:o,fun:F.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:F.XcmV3WeightLimit.Unlimited()}),F.XcmV4Instruction.DepositReserveAsset({assets:F.XcmV4AssetAssetFilter.Wild(F.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:F.XcmV3Junctions.X1(F.XcmV3Junction.Parachain(s.parachainId))},xcm:r}),F.XcmV4Instruction.SetTopic(a)]}var $=require("@galacticcouncil/descriptors");function Pa(t,e){let s="V5",n=U(N(e,t),s),o={parents:0,interior:$.XcmV5Junctions.X1($.XcmV5Junction.AccountId32({id:No,network:void 0}))};return[$.XcmV5Instruction.ReserveAssetDeposited([{id:J,fun:$.XcmV3MultiassetFungibility.Fungible(Z)}]),$.XcmV5Instruction.PayFees({asset:{id:J,fun:$.XcmV3MultiassetFungibility.Fungible(Z)}}),$.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:$.XcmV3MultiassetFungibility.Fungible(Z)}]),$.XcmV5Instruction.ClearOrigin(),$.XcmV5Instruction.DepositAsset({assets:$.XcmV5AssetFilter.Wild($.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),$.XcmV5Instruction.SetTopic(at)]}var Fa=[zt.ChainEcosystem.Polkadot,zt.ChainEcosystem.Kusama],Ei={parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(1e3))},vi=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Xa=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Fa.includes(t.ecosystem)&&Fa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ba=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},ft=(t,e,s)=>{if(Xa(e,s))return{type:t,value:Nn(s.ecosystem,s.parachainId)};if(s.parachainId===Mo)return{type:t,value:{parents:1,interior:d.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Bt:s.parachainId;return{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(n))}}},Ti=t=>t===zt.ChainEcosystem.Kusama?d.XcmV3JunctionNetworkId.Kusama():d.XcmV3JunctionNetworkId.Polkadot(),Nn=(t,e)=>({parents:2,interior:d.XcmV3Junctions.X2([d.XcmV3Junction.GlobalConsensus(Ti(t)),d.XcmV3Junction.Parachain(e)])}),Sa=(t,e,s,n)=>{if(Xa(e,s)){if(e.parachainId!==Bt){let o=zt.multiloc.findGlobalConsensus(N(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(Bt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==Bt)return{dest:{type:t,value:Nn(s.ecosystem,Bt)},mode:"onward"}}},Jt=(t,e)=>({type:t,value:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),On=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:vi(s)?Ei:s}}:{type:e},Dt=(t,e)=>({id:t,fun:d.XcmV3MultiassetFungibility.Fungible(e)}),Da=(t,e,s)=>({type:t,value:[d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),js=(t,e,s,n,o)=>{let a=o;return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(s)}})]),d.XcmV4Instruction.InitiateReserveWithdraw({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllOf({id:n,fun:d.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Ks.ethereumLocation(We),xcm:[d.XcmV4Instruction.BuyExecution({fees:{id:Pi(n),fun:d.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),d.XcmV4Instruction.SetTopic(a)]}),d.XcmV4Instruction.SetTopic(a)]}},_a=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(s.parachainId))}:Nn(s.ecosystem,s.parachainId),c={parents:0,interior:d.XcmV3Junctions.X1(e)},i=d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),u=[d.XcmV4Instruction.BuyExecution({fees:{id:o,fun:d.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],p=n==="bridge-withdraw"?d.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:u}):d.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:u});return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:c})]),p]}},Pi=t=>{let e=zt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:d.XcmV3Junctions.Here()}},Ia=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.Transact({origin_kind:d.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),Ra=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(a)}}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]});var re="PolkadotXcm",Fi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",u=N(r,s),p=N(r,n.fee),l=U(u,i),y=U(p,i),g=Dt(l,e),C=Dt(y,n.fee.amount),X="limited_reserve_transfer_assets";return new gt.ExtrinsicConfig({module:re,func:X,getTx:D=>{let I=D.getUnsafeApi().tx[re][X];return s.key===n.fee.key?I({dest:ft(i,r,c),beneficiary:Jt(i,a),assets:{type:i,value:[g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):ga(u,p)?I({dest:ft(i,r,c),beneficiary:Jt(i,a),assets:{type:i,value:[C,g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):I({dest:ft(i,r,c),beneficiary:Jt(i,a),assets:{type:i,value:[g,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",u=U(N(r,s),i),p=Dt(u,e),l=ft(i,r,c),y=Jt(i,a),g={type:i,value:[p]},C="limited_teleport_assets";return new gt.ExtrinsicConfig({module:re,func:C,getTx:X=>X.getUnsafeApi().tx[re][C]({dest:l,beneficiary:y,assets:g,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Bi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",u=U(N(r,s),i),p=Dt(u,e),l=ft(i,r,c),y=Jt(i,a),g={type:i,value:[p]},C="reserve_transfer_assets";return new gt.ExtrinsicConfig({module:re,func:C,getTx:X=>X.getUnsafeApi().tx[re][C]({dest:l,beneficiary:y,assets:g,fee_asset_item:0})})}}),Si=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",u=U(N(r,s),i),p=Dt(u,e),l=ft(i,r,c),y=Jt(i,a),g={type:i,value:[p]},C="transfer_assets";return new gt.ExtrinsicConfig({module:re,func:C,getTx:X=>X.getUnsafeApi().tx[re][C]({dest:l,beneficiary:y,assets:g,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Di=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let u="V4",p=c.chain,l=o.chain,y=o.fee.amount,g=o.fee;i&&(l=i.chain,y=Xs.big.toBigInt(i.fee.amount,i.fee.decimals),g=i.fee);let C=j(r),X=i||l.usesCexForwarding?ks(p,r,l):e,D=j(X),{transferType:I}=t,K=U(N(p,s),u),te=U(N(p,g),u),de=Dt(K,n),ze=Dt(te,y),mt=s.isEqual(g),Je=Sa(u,p,l,s),ss=Je?.dest??ft(u,p,l),Vt={type:u,value:mt?[de]:[ze,de]},io=On(u,I,K),Rr={type:u,value:mt?K:te},Lr=On(u,I,te),Hs;if(Ba(K)&&o.chain.isEvmChain())Hs=js(u,D,C,K,a);else if(Je){let Cn=Xs.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Hr=U(N(l,s),u);Hs=_a(u,D,l,Je.mode,Hr,Cn)}else Hs=Da(u,D,Vt.value.length);let co="transfer_assets_using_type_and_then";return new gt.ExtrinsicConfig({module:re,func:co,getTx:Cn=>Cn.getUnsafeApi().tx[re][co]({dest:ss,assets:Vt,assets_transfer_type:io,remote_fees_id:Rr,fees_transfer_type:Lr,custom_xcm_on_dest:Hs,weight_limit:{type:"Unlimited"}})})}}),_i=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,u=ks(c,n,i),p=j(u),{fee:l}=a,y=U(N(i,l),r),g=Xs.big.toBigInt(e.fee,l.decimals);return new gt.ExtrinsicConfig({module:re,func:t,getTx:C=>C.getUnsafeApi().tx[re][t]({dest:ft(r,c,i),message:Ia(r,p,y,g,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,u="V4",p=c.chain,l=i.chain,y=ks(p,r,l),g=j(y),C=j(o),X=U(N(l,a),u),{fee:D}=i,I=Xs.big.toBigInt(e.fee,D.decimals),K=n>D.amount?n-(D.amount+I):n;return new gt.ExtrinsicConfig({module:re,func:t,getTx:te=>te.getUnsafeApi().tx[re][t]({dest:ft(u,p,l),message:Ra(u,g,X,K,I,C)})})}})}};function Ii(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new gt.ExtrinsicConfig({module:re,func:a,getTx:r=>r.getUnsafeApi().tx[re][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(qo)}}var Gn=()=>({limitedReserveTransferAssets:Fi,limitedTeleportAssets:Xi,reserveTransferAssets:Bi,transferAssets:Si,transferAssetsUsingTypeAndThen:Di,execute:Ii,send:_i});var Va=require("@galacticcouncil/xc-core"),Ma=require("@galacticcouncil/common");var Bs=require("@galacticcouncil/descriptors"),La=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Bs.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Bs.XcmV3Junctions.X2([Bs.XcmV3Junction.Parachain(e.parachainId),s])}};var Ha="XTokens",Ri=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",u=c.usesCexForwarding?ks(r,o,c):t,p=j(u),l=r.getAssetId(s),y=(0,Ma.encodeAssetId)(l),g="transfer";return new Va.ExtrinsicConfig({module:Ha,func:g,getTx:C=>C.getUnsafeApi().tx[Ha][g]({currency_id:y,amount:e,dest:La(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),Un=()=>({transfer:Ri});function f(){return{assetConversion:sa,assets:oa,balances:ia,ethereumXcm:_n,polkadotXcm:Gn,router:ua,utility:fa,xTokens:Un}}function wt(t,e){return{prior:function(s){return{build:async n=>t(n)?f().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?f().utility().batchAll([e,...s]).build(n):f().utility().batchAll([...s]).build(n)}}}}var $t=require("@galacticcouncil/xc-core");var Na=80000n,Oa=120000n,Ga=100000n,Ua=2000000n,Wn=15000000000000n;var Jn={};ns(Jn,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>qa,AssethubClient:()=>Te,BaseClient:()=>qe,HydrationClient:()=>ie,getAllAssetDepositLimits:()=>jn,getAssetDepositLimit:()=>qn,getGlobalWithdrawLimit:()=>zn});var Kn=require("@galacticcouncil/common"),Ss=require("@galacticcouncil/descriptors"),qe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ss.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=(0,Kn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ss.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!n.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=(0,Kn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ss.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Ve=require("@galacticcouncil/descriptors"),Wa=require("@galacticcouncil/common"),zs=require("@polkadot-api/substrate-bindings"),Ka=require("@polkadot-api/utils");var Te=class extends qe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,Wa.encodeLocation)(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,s){let n=new TextEncoder().encode(e),o=(0,Ka.toHex)((0,zs.Twox128)(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=zs.u128.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=Ve.XcmVersionedLocation.V5({parents:1,interior:Ve.XcmV5Junctions.X1(Ve.XcmV5Junction.Parachain(s))}),o=Ve.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Ve.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let u=i.id;return u&&u.parents&&u.parents===1&&u.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:Ve.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,s){let n={parents:1,interior:Ve.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,n,s,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,s){let n={parents:1,interior:Ve.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};var za=require("@galacticcouncil/descriptors");var qa=14400;function ja(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,u=!1,p,l,y;s&&(s.type==="Locked"?(p=s.value,u=o<s.value):(l=s.value[0],y=s.value[1]));let g=n?.type==="Local"?"Local":"External",C=!u&&l!==void 0&&l+qa<=o,X=null;if(r!==null)if(u)X=0n;else if(C)X=r;else{let D=y??a,I=a>D?a-D:0n;X=r>I?r-I:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:u,lockedUntilBlock:p,lastResetBlock:l,baselineIssuance:y,currentIssuance:a,headroom:X,category:g,periodExpired:C}}async function qn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return ja(e,n,o,a,r,c)}async function jn(t){let[e,s,n,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(s.map(l=>[l.keyArgs[0],l.value])),i=new Map(n.map(l=>[l.keyArgs[0],l.value])),u=new Map(r.map(l=>[l.keyArgs[0],l.value])),p=new Map;for(let l of e){let y=l.keyArgs[0],g=l.value;if(g?.xcm_rate_limit==null)continue;let C=y===0?a:u.get(y)??0n,X=ja(y,g,c.get(y),i.get(y),o,C);p.set(y.toString(),X)}return p}async function zn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:u,window:p}=e,l=c;if(!r&&p>0n){let g=o>i?o-i:0n;if(g>0n){let C=g>p?p:g,X=c*C/p;l=c>X?c-X:0n}}let y=r||l>=u?0n:u-l;return{configured:!0,limit:u,windowMs:p,used:l,lastUpdateMs:i,headroom:y,lockdown:r,lockdownUntilMs:a}}var ie=class extends qe{constructor(e){super(e,za.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return qn(this.api(),s)}getAllAssetDepositLimits(){return jn(this.api())}getGlobalWithdrawLimit(){return zn(this.api())}};function Li(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ie(n),a=new Te(t.hub),r=qs(e,n),c=Pa(e,n),i=Cs(We),u=250000000n,p=Ko(We,n.parachainId),[l,y,g,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,Os),a.calculateDestinationFeeV5(p,x)]),X=Y(l,33n),D=Y(y,33n),I=Y(g,33n),te=Y(C,33n)+D,de=X,ze=await a.quoteEtherForDot(i,te),mt=Y(ze,30n),Je=mt<Wn*2n?Wn*2n:mt,ss=Y(await a.quoteEtherForDot(i,de),100n),Vt=Y(await a.quoteDotToEther(i,u+I),30n);return{amount:Je+Vt+ss,breakdown:{executionFee:Je,relayerFee:Vt,remoteEtherFee:ss,hydrationDotFee:de}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new Te(t.hub),i=Cs(We),u=Vn(e,a),[p,l,y]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(u,Os),c.calculateDestinationFee(u,s)]),g=await r.evmClient.getProvider().getGasPrice(),C=Ua+Oa+Na+Ga,X=g*C,D=Y(X,10n),I=p+Y(l,33n)+Y(y,33n),K=Y(await c.quoteDotForExactEther(i,D),20n),te=new ie(a),de=Sn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:at}),ze=Y(await te.calculateDestinationFeeV5(de,x),33n);return{amount:I+K+ze,breakdown:{dotRemoteFee:I,dotToEtherSwapAmount:K,etherFeeAmount:D,sourceExecutionFee:ze}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=$t.Snowbridge.fromChain(o),c=new qe(a),i=new Te(t.hub),u=qs(e,a),[p,l]=await Promise.all([c.calculateDestinationFee(u,x),i.calculateDeliveryFee(u,a.parachainId)]),y=l+Y(p,25n),g=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:$t.Abi.Snowbridge,address:r.getGateway(),args:[g,a.parachainId,y],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:y}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new Te(t.hub),r=Vn(e,o),c=qs(e,o),[i,u,p,l,y]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,Os),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+u+Y(p,25n)+l+Y(y,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:u,assetHubDestinationFee:p,returnToSenderDeliveryFee:l,returnToSenderDestinationFee:y}}}})}}function Hi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Ea(e,o,a,r),r){let y=new qe(a),g=new qe(r),C=Mn(e,a),X=Ta(e,r,a),[D,I]=await Promise.all([y.calculateDestinationFee(C,e),g.calculateDestinationFee(X,e)]),K=I+D,te=Y(K,20n),de=te-K;return{amount:te,breakdown:{reserveFee:I,destinationFee:D,margin:de}}}let c=new qe(a),i=va(e,a),u=await c.calculateDestinationFee(i,e),p=Y(u,20n),l=p-u;return{amount:p,breakdown:{totalFee:u,margin:l}}}})}}function Vi(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=$t.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:$t.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:Vi,XcmPaymentApi:Hi,Snowbridge:Li}}var Mi="0";function Ni(){return{build:async({address:t,chain:e})=>{let n=await new ie(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Mi,a=e.findAssetById(o);return a?a.asset:z}}}var Oi=()=>({accountCurrencyMap:Ni});function Ds(){return{multiTransactionPayment:Oi}}var Qn={};ns(Qn,{Tag:()=>Es});var Es=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Es||{});function Ja(t,e){return new Yn.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function $a(t,e){return new Yn.AssetRoute({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:q().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Gi=[$a(ut,Qe)],Ui=[Ja(ut,Qe)],Ya=new Qa.ChainRoutes({chain:as,routes:[...Ui,...Gi]});var _s=require("@galacticcouncil/xc-core");var Js=require("@galacticcouncil/xc-core");function Qt(t,e){return new Js.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ce(t,e){return new Js.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:B}},contract:q().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function me(t,e){return new Js.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:B}},contract:q().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Wi=[Qt(ht,Xe),Qt(Ze,Se),Qt(A,_e),Qt(b,De),Qt(st,Re),Qt(tt,Ie)],Ki=[new _s.AssetRoute({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:B}},contract:q().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ce(le,le),ce(fe,fe),ce(pe,pe),ce(he,he),ce(Ae,Ae),ce(we,we),ce(Ce,Ce),ce(be,be),ce(ye,ye),ce(xe,xe),ce(ge,ge),ce(ke,ke),ce(Ee,Ee),ce(A,bt),ce(b,yt)],qi=[new _s.AssetRoute({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:B}},contract:q().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),me(le,le),me(fe,fe),me(pe,pe),me(he,he),me(Ae,Ae),me(we,we),me(Ce,Ce),me(be,be),me(ye,ye),me(xe,xe),me(ge,ge),me(ke,ke),me(Ee,Ee),me(A,bt),me(b,yt)],Za=new _s.ChainRoutes({chain:v,routes:[...Wi,...Ki,...qi]});var er=[Ya,Za];var _t=require("@galacticcouncil/xc-core");var $s=require("@galacticcouncil/xc-core");var Yt=0,ji=t=>{let{source:e}=t;return!!e.feeSwap},zi=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},tr=f().assetConversion().swapTokensForExactTokens({slippage:30});function Ji(t,e,s){return new $s.AssetRoute({source:{asset:t,fee:{asset:x,extra:Yt}},destination:{chain:e,asset:t,fee:{amount:s,asset:b}},extrinsic:wt(zi,tr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Qs(t,e,s){return new $s.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:wt(ji,tr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Zt(t,e,s){return new $s.AssetRoute({source:{asset:t,fee:{asset:x,extra:Yt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Ys(t){return Ji(t,h,.02)}var $i=[new _t.AssetRoute({source:{asset:x,fee:{asset:x,extra:Yt}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new _t.AssetRoute({source:{asset:T,fee:{asset:x,extra:Yt}},destination:{chain:h,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Zt(b,h,.02),Zt(A,h,.02),Ys(xt)],Qi=[new _t.AssetRoute({source:{asset:T,fee:{asset:x,extra:Yt}},destination:{chain:nt,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssets()})],Yi=[Zt(b,G,.25),Zt(A,G,.25)],Zi=[Zt(b,L,.03),Zt(A,L,.03)],ec=[new _t.AssetRoute({source:{asset:M,fee:{asset:x,extra:Yt}},destination:{chain:Tt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],sr=new _t.ChainRoutes({chain:Ct,routes:[Qs(b,h,.02),Qs(A,h,.02),Qs(x,h,.001)]}),nr=new _t.ChainRoutes({chain:k,routes:[...$i,...Qi,...Yi,...Zi,...ec]});var je=require("@galacticcouncil/xc-core");var tc=[new je.AssetRoute({source:{asset:R},destination:{chain:h,asset:R,fee:{amount:.044306118,asset:R}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new je.AssetRoute({source:{asset:S,fee:{asset:R}},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:P,fee:{asset:R}},destination:{chain:h,asset:P,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:G}),asset:P}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:_,fee:{asset:R}},destination:{chain:h,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:H,fee:{asset:R}},destination:{chain:h,asset:H,fee:{amount:.01,asset:H}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:V,fee:{asset:R}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:V}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:Q,fee:{asset:R}},destination:{chain:h,asset:Q,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:Q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:b,fee:{asset:R}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new je.AssetRoute({source:{asset:A,fee:{asset:R}},destination:{chain:h,asset:A,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],or=new je.ChainRoutes({chain:se,routes:[...tc]});var Pe=require("@galacticcouncil/xc-core");var sc=[new Pe.AssetRoute({source:{asset:S},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:V,fee:{asset:S}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:Q,fee:{asset:S}},destination:{chain:h,asset:Q,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:x,fee:{asset:S}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Pe.AssetRoute({source:{asset:R,fee:{asset:S}},destination:{chain:h,asset:R,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:se}),asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:P,fee:{asset:S}},destination:{chain:h,asset:P,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:G}),asset:P}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:_,fee:{asset:S}},destination:{chain:h,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:b,fee:{asset:S}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:A,fee:{asset:S}},destination:{chain:h,asset:A,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:A}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],nc=[new Pe.AssetRoute({source:{asset:b,fee:{asset:S}},destination:{chain:k,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Pe.AssetRoute({source:{asset:A,fee:{asset:S}},destination:{chain:k,asset:A,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],ar=new Pe.ChainRoutes({chain:L,routes:[...sc,...nc]});var Me=require("@galacticcouncil/xc-core");var W=()=>({asset:Ds().multiTransactionPayment().accountCurrencyMap()});var pt=require("@galacticcouncil/xc-core");var oc=1,ac=.02,Zs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},en=f().router().buy({slippage:30});function O(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function vs(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function It(t,e){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function tn(t){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:k,asset:t,fee:{amount:ac,asset:b}},extrinsic:wt(Zs,en).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Zn(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:nt,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function rc(t,e,s="LocalReserve"){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:oc,asset:P}},extrinsic:wt(Zs,en).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Rt(t){return rc(t,G,"DestinationReserve")}function it(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:wt(Zs,en).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function oe(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:wt(Zs,en).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var ic=[It(x,k),It(T,k),It(b,k),It(A,k),tn(xt)],cc=[Zn(T,.05,.005),Zn(x,.2,.02)],mc=[O(R,se),O(S,se,L),O(P,se,G),new Me.AssetRoute({source:{asset:_,fee:W()},destination:{chain:se,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Me.AssetRoute({source:{asset:H,fee:W()},destination:{chain:se,asset:H,fee:{amount:.01,asset:H}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),O(V,se,L),O(Q,se,L),O(b,se,k),O(A,se,k)],uc=[O(S,L),O(V,L),O(Q,L),O(R,L,se),O(P,L,G),new Me.AssetRoute({source:{asset:_,fee:W()},destination:{chain:L,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),O(b,L,k),O(A,L,k),new Me.AssetRoute({source:{asset:x,fee:W()},destination:{chain:L,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],dc=[vs(_,Ue,62e-8),vs(H,Ue,.0019213457),vs(z,Ue,.5),vs(b,Ue,.3),vs(A,Ue,.3),new Me.AssetRoute({source:{asset:V,fee:W()},destination:{chain:Ue,asset:V,fee:{amount:.01,asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Me.AssetRoute({source:{asset:x,fee:W()},destination:{chain:Ue,asset:x,fee:{amount:.05,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],lc=[O(z,G),O(P,G),O(b,G,k),O(A,G,k),Rt(Xe),Rt(Se),Rt(_e),Rt(De),Rt(Re),Rt(Ie),Rt(ae)],fc=[new Me.AssetRoute({source:{asset:M,fee:W()},destination:{chain:Tt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],pc=[O(et,hs)],hc=[new Me.AssetRoute({source:{asset:Fe,fee:W()},destination:{chain:cs,asset:Fe,fee:{amount:.04,asset:Fe}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],yc=[new Me.AssetRoute({source:{asset:ve,fee:W()},destination:{chain:ys,asset:ve,fee:{amount:.02,asset:ve}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],bc=[new Me.AssetRoute({source:{asset:Be,fee:W()},destination:{chain:ls,asset:Be,fee:{amount:1.1,asset:Be}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],xc=[O(Ye,ds)],Ac=[O($e,is)],gc=[it(Xe,ht,v),it(Se,Ze,v),it(_e,A,v),it(De,b,v),it(Re,st,v),it(Ie,tt,v)],wc=[it(Qe,ut,as)],Cc=[it(ae,ae,Xt),it(Ne,Ne,Xt),it(Oe,Oe,Xt)],kc=[ne(B,B,v),ne(le,le,v),ne(fe,fe,v),ne(pe,pe,v),ne(he,he,v),ne(Ae,Ae,v),ne(we,we,v),ne(Ce,Ce,v),ne(ke,ke,v),ne(be,be,v),ne(ye,ye,v),ne(xe,xe,v),ne(ge,ge,v),ne(Ee,Ee,v),ne(bt,A,v),ne(yt,b,v)],Ec=[oe(B,B,v),oe(le,le,v),oe(fe,fe,v),oe(pe,pe,v),oe(he,he,v),oe(Ae,Ae,v),oe(we,we,v),oe(Ce,Ce,v),oe(ke,ke,v),oe(be,be,v),oe(ye,ye,v),oe(xe,xe,v),oe(ge,ge,v),oe(Ee,Ee,v),oe(bt,A,v),oe(yt,b,v)],vc=[It(x,Ct),It(b,Ct),It(A,Ct)],rr=new Me.ChainRoutes({chain:h,routes:[...Ac,...ic,...mc,...uc,...vc,...wc,...hc,...gc,...kc,...Cc,...Ec,...dc,...yc,...cc,...lc,...fc,...xc,...bc,...pc]});var es=require("@galacticcouncil/xc-core");function sn(t,e){return new es.AssetRoute({source:{asset:t,fee:{asset:H}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var Tc=[new es.AssetRoute({source:{asset:H},destination:{chain:h,asset:H,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:f().xTokens().transfer()}),new es.AssetRoute({source:{asset:_,fee:{asset:H}},destination:{chain:h,asset:_,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:f().xTokens().transfer()}),new es.AssetRoute({source:{asset:z,fee:{asset:H}},destination:{chain:h,asset:z,fee:{amount:.5,asset:z}},extrinsic:f().xTokens().transfer()}),sn(V,L),sn(b,k),sn(A,k),sn(x,k)],ir=new es.ChainRoutes({chain:Ue,routes:[...Tc]});var Ts=require("@galacticcouncil/xc-core");var eo=require("@galacticcouncil/xc-core");function Pc(t,e,s){return new eo.AssetRoute({source:{asset:t,fee:{asset:P}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:q().PolkadotXcm().transferAssetsToPara32()})}function Fc(t,e,s){return new eo.AssetRoute({source:{asset:t,fee:{asset:P}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:q().PolkadotXcm().transferAssetsToPara32()})}function Lt(t,e){return Pc(t,h,e)}function nn(t,e){return Fc(t,h,e)}var Xc=[new Ts.AssetRoute({source:{asset:P},destination:{chain:h,asset:P,fee:{amount:.05,asset:P}},contract:q().PolkadotXcm().transferAssetsToPara32()}),nn(z,.6),nn(b,.3),nn(A,.3),Lt(Xe,.004),Lt(Se,.004),Lt(_e,.004),Lt(De,.004),Lt(Re,1e-7),Lt(Ie,2e-6),Lt(ae,2e-5)],Bc=[new Ts.AssetRoute({source:{asset:b,fee:{asset:P}},destination:{chain:k,asset:b,fee:{amount:.18,asset:b}},contract:q().PolkadotXcm().transferAssetsToPara32()}),new Ts.AssetRoute({source:{asset:A,fee:{asset:P}},destination:{chain:k,asset:A,fee:{amount:.18,asset:A}},contract:q().PolkadotXcm().transferAssetsToPara32()})],cr=new Ts.ChainRoutes({chain:G,routes:[...Xc,...Bc]});var Is=require("@galacticcouncil/xc-core");var Sc=[new Is.AssetRoute({source:{asset:M},destination:{chain:h,asset:M,fee:{amount:.01,asset:M}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Dc=[new Is.AssetRoute({source:{asset:M},destination:{chain:k,asset:M,fee:{amount:.1,asset:M}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],mr=new Is.ChainRoutes({chain:Tt,routes:[...Sc,...Dc]});var on=require("@galacticcouncil/xc-core");var _c=[new on.AssetRoute({source:{asset:et},destination:{chain:h,asset:et,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:et}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],ur=new on.ChainRoutes({chain:hs,routes:[..._c]});var an=require("@galacticcouncil/xc-core");var Ic=[new an.AssetRoute({source:{asset:Fe},destination:{chain:h,asset:Fe,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Fe}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],dr=new an.ChainRoutes({chain:cs,routes:[...Ic]});var rn=require("@galacticcouncil/xc-core");var Rc=[new rn.AssetRoute({source:{asset:Be},destination:{chain:h,asset:Be,fee:{amount:.2,asset:Be}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],lr=new rn.ChainRoutes({chain:ls,routes:[...Rc]});var cn=require("@galacticcouncil/xc-core");var Lc=[new cn.AssetRoute({source:{asset:$e},destination:{chain:h,asset:$e,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:$e}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],fr=new cn.ChainRoutes({chain:is,routes:[...Lc]});var mn=require("@galacticcouncil/xc-core");var Hc=[new mn.AssetRoute({source:{asset:ve,fee:{asset:ve,extra:.030555}},destination:{chain:h,asset:ve,fee:{amount:.03,asset:ve}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],pr=new mn.ChainRoutes({chain:ys,routes:[...Hc]});var un=require("@galacticcouncil/xc-core");var Vc=[new un.AssetRoute({source:{asset:Ye},destination:{chain:h,asset:Ye,fee:{amount:.205,asset:Ye}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],hr=new un.ChainRoutes({chain:ds,routes:[...Vc]});var yr=[fr,nr,sr,or,ar,rr,ir,cr,mr,hr,ur,dr,lr,pr];var br=require("@galacticcouncil/xc-core");var Mc=[],xr=new br.ChainRoutes({chain:Xt,routes:[...Mc]});var Ar=[xr];var gr=require("@galacticcouncil/xc-core");var Nc=[],wr=new gr.ChainRoutes({chain:Ms,routes:[...Nc]});var Cr=[wr];var ts=require("@galacticcouncil/xc-core");var Oc=require("@galacticcouncil/xc-core");var Rs=.0015;var Gc=new ts.AssetRoute({source:{asset:T,fee:{asset:T,extra:Rs}},destination:{chain:k,asset:T,fee:{amount:.002,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Uc=new ts.AssetRoute({source:{asset:T,fee:{asset:T,extra:Rs}},destination:{chain:As,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Wc=[new ts.AssetRoute({source:{asset:T,fee:{asset:T,extra:Rs}},destination:{chain:h,asset:T,fee:{amount:.04,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new ts.AssetRoute({source:{asset:x,fee:{asset:T,extra:Rs}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],kr=new ts.ChainRoutes({chain:nt,routes:[Uc,Gc,...Wc]});var Ls=require("@galacticcouncil/xc-core");var to=()=>({asset:Ds().multiTransactionPayment().accountCurrencyMap()});var Kc=[new Ls.AssetRoute({source:{asset:b,fee:to()},destination:{chain:nt,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],qc=[new Ls.AssetRoute({source:{asset:T,fee:to()},destination:{chain:nt,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Er=new Ls.ChainRoutes({chain:As,routes:[...Kc,...qc]});var vr=[kr,Er];var jc=[...er,...yr,...Ar,...Cr,...vr],Tr=new Map(jc.map(t=>[t.chain.key,t]));var so=require("@galacticcouncil/xc-core");var Ht=require("@galacticcouncil/xc-core"),dn=class extends Ht.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Ht.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},ln=class extends Ht.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=n,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new Ht.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Ht.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var Ps=require("@galacticcouncil/xc-core");var fn=class extends Ps.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new Te(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new Te(a).getSystemAccountBalance(n)===0n)throw new Ps.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},pn=class extends Ps.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new Te(a).checkIfFrozen(n,s))throw new Ps.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var ct=require("@galacticcouncil/xc-core");var zc=12,Jc=1,$c=18,hn=class extends ct.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ie(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new ie(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),u=i.min||Jc,p=i.decimals||zc,l=u*Math.pow(10,p),y=await r.getAssetBalance(n,c);if(BigInt(l*1.1)>y)throw new ct.TransferValidationError("Insufficient_Ed",{amount:l,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},yn=class extends ct.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ie(a).getAssetDepositLimit(n);if(c.locked)throw new ct.TransferValidationError("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new ct.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},bn=class extends ct.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new ie(n).getGlobalWithdrawLimit();if(a.lockdown)throw new ct.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},xn=class extends ct.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,r=new ie(a),c=a.getBalanceAssetId(P),i=a.getAssetDecimals(P)||$c,u=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(u))throw new ct.TransferValidationError("Insufficient_Ed",{amount:1,asset:P.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ue={isAny:()=>!0,isHydration:t=>t instanceof so.Parachain&&t.parachainId===2034,isHub:t=>t instanceof so.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Pr=[new dn(ue.isAny,ue.isAny),new ln(ue.isAny,ue.isAny),new fn(ue.isAny,ue.isHub),new pn(ue.isHub,ue.isAny),new hn(ue.isAny,ue.isHydration),new xn(ue.isHydration,ue.isAny),new yn(ue.isAny,ue.isHydration),new bn(ue.isHydration,ue.isAny)];var ro={};ns(ro,{AssethubDex:()=>ao,HydrationDex:()=>no});var Fs=require("@galacticcouncil/sdk-next"),Xr=require("@galacticcouncil/common"),Br=require("polkadot-api");var Fr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:An}=Fs.pool,{TradeRouteBuilder:Qc,TradeRouter:Yc}=Fs.sor,{TxBuilderFactory:Zc}=Fs.tx,no=class{chain;client;poolCtx;txBuilder;getCtx=Fr(async e=>{console.log("init swap router",e,"\u2705");let s=new Yc(this.poolCtx);return s.withFilter({useOnly:[An.Aave,An.Omni,An.Stable,An.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ie(this.chain),this.txBuilder=new Zc(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,u=await this.getCtx(1),p=await u.getMostLiquidRoute(r,c),l=await u.getBuy(r,c,i,p),C=await(await this.txBuilder.trade(l).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Br.Binary.toHex(C)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let u=await i.getMostLiquidRoute(a,r),p=await i.getBuy(a,r,c,u);return{amount:p.amountIn,route:Qc.build(p.swaps)}}catch(u){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw u}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,Xr.RUNTIME_DECIMALS);return a/BigInt(r)}};var oo=require("@galacticcouncil/common"),ao=class{chain;client;constructor(e){this.chain=e,this.client=new Te(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,oo.encodeLocation)(o),(0,oo.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var Ir=require("@galacticcouncil/xc-core");var Sr=require("@galacticcouncil/xc-core");function gn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Sr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function Dr(t){let{decimals:e,id:s}=t;return{asset:gn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function _r(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:gn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var wn=class extends Ir.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=gn(a),c=Dr(a),i=_r(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,Ys(r)),this.updateChainRoute(s,tn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
|
1
|
+
"use strict";var Tn=Object.defineProperty;var Jr=Object.getOwnPropertyDescriptor;var $r=Object.getOwnPropertyNames;var Yr=Object.prototype.hasOwnProperty;var as=(t,e)=>{for(var s in e)Tn(t,s,{get:e[s],enumerable:!0})},Qr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of $r(e))!Yr.call(t,o)&&o!==s&&Tn(t,o,{get:()=>e[o],enumerable:!(n=Jr(e,o))||n.enumerable});return t};var Zr=t=>Qr(Tn({},"__esModule",{value:!0}),t);var p0={};as(p0,{HydrationConfigService:()=>En,assetsMap:()=>ho,builders:()=>eo,chainsMap:()=>Bo,clients:()=>Qn,dex:()=>lo,routesMap:()=>Hr,tags:()=>to,validations:()=>Vr});module.exports=Zr(p0);var w=require("@galacticcouncil/xc-core"),le=new w.Asset({key:"aave",originSymbol:"AAVE"}),$e=new w.Asset({key:"ajun",originSymbol:"AJUN"}),fe=new w.Asset({key:"apyusd",originSymbol:"apyUSD"}),R=new w.Asset({key:"astr",originSymbol:"ASTR"}),_=new w.Asset({key:"bnc",originSymbol:"BNC"}),Pn=new w.Asset({key:"bsx",originSymbol:"BSX"}),pe=new w.Asset({key:"cfg_new",originSymbol:"CFG"}),De=new w.Asset({key:"cru",originSymbol:"CRU"}),ht=new w.Asset({key:"dai",originSymbol:"DAI"}),_e=new w.Asset({...ht,key:"dai_mwh"}),x=new w.Asset({key:"dot",originSymbol:"DOT"}),S=new w.Asset({key:"eth",originSymbol:"ETH"}),he=new w.Asset({key:"ena",originSymbol:"ENA"}),ut=new w.Asset({key:"eurc",originSymbol:"EURC"}),Ye=new w.Asset({...ut,key:"eurc_mwh"}),F=new w.Asset({key:"glmr",originSymbol:"GLMR"}),J=new w.Asset({key:"hdx",originSymbol:"HDX"}),I=new w.Asset({key:"ibtc",originSymbol:"IBTC"}),H=new w.Asset({key:"intr",originSymbol:"INTR"}),ve=new w.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),T=new w.Asset({key:"ksm",originSymbol:"KSM"}),ye=new w.Asset({key:"ldo",originSymbol:"LDO"}),be=new w.Asset({key:"lbtc",originSymbol:"LBTC"}),Te=new w.Asset({key:"ewt",originSymbol:"EWT"}),xe=new w.Asset({key:"link",originSymbol:"LINK"}),N=new w.Asset({key:"myth",originSymbol:"MYTH"}),Qe=new w.Asset({key:"neuro",originSymbol:"NEURO"}),Ie=new w.Asset({key:"pen",originSymbol:"PEN"}),Ae=new w.Asset({key:"paxg",originSymbol:"PAXG"}),Pe=new w.Asset({key:"prime",originSymbol:"PRIME"}),ge=new w.Asset({key:"sky",originSymbol:"SKY"}),$=new w.Asset({key:"sol",originSymbol:"SOL"}),Ot=new w.Asset({key:"sui",originSymbol:"SUI"}),we=new w.Asset({key:"susde",originSymbol:"sUSDe"}),Ze=new w.Asset({key:"susds",originSymbol:"sUSDS"}),Re=new w.Asset({...Ze,key:"susds_mwh"}),Ce=new w.Asset({key:"tbtc",originSymbol:"tBTC"}),ke=new w.Asset({key:"trac",originSymbol:"TRAC"}),et=new w.Asset({key:"unq",originSymbol:"UNQ"}),b=new w.Asset({key:"usdt",originSymbol:"USDT"}),Le=new w.Asset({...b,key:"usdt_mwh"}),yt=new w.Asset({...b,key:"usdt_eth"}),g=new w.Asset({key:"usdc",originSymbol:"USDC"}),He=new w.Asset({...g,key:"usdc_mwh"}),bt=new w.Asset({...g,key:"usdc_eth"}),Z=new w.Asset({key:"vastr",originSymbol:"vASTR"}),M=new w.Asset({key:"vdot",originSymbol:"vDOT"}),xt=new w.Asset({key:"weth",originSymbol:"WETH"}),Fe=new w.Asset({...xt,key:"weth_mwh"}),tt=new w.Asset({key:"wbtc",originSymbol:"WBTC"}),Ve=new w.Asset({...tt,key:"wbtc_mwh"}),Ee=new w.Asset({key:"wsteth",originSymbol:"wstETH"}),At=new w.Asset({key:"wud",originSymbol:"WUD"}),ei=[le,$e,fe,R,Pn,pe,De,_,ht,_e,x,he,ut,Ye,S,F,J,I,H,T,ye,be,Te,ve,xe,N,Qe,Ae,Ie,Pe,ge,$,Ot,we,Ze,Re,ke,Ce,et,g,He,bt,b,Le,yt,Z,M,tt,Ve,xt,Fe,Ee,At],ho=new Map(ei.map(t=>[t.key,t]));var rs=require("@galacticcouncil/xc-core");var yo=require("viem/chains"),is=new rs.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:S,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:ut,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:g,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:rs.EvmBalanceType.Erc20,ecosystem:rs.ChainEcosystem.Ethereum,evmChain:yo.base,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[ut.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Gt=require("@galacticcouncil/xc-core");var bo=require("viem/chains"),v=new Gt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:S,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:le,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:fe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:xt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ht,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:he,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:we,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Ze,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ce,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:tt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:be,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:b,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ye,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:xe,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Ae,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:ge,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ke,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ee,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Gt.EvmBalanceType.Erc20,balanceOverrides:{[S.key]:Gt.EvmBalanceType.Native},ecosystem:Gt.ChainEcosystem.Ethereum,evmChain:bo.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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[ht.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Ze.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[g.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[b.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[tt.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[xt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[S.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var xo=[is,v];var cs=require("@galacticcouncil/xc-core");var ms=new cs.Parachain({assetsData:[{asset:$e,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:cs.SubstrateBalanceType.System,ecosystem:cs.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Ue=require("@galacticcouncil/xc-core");var Ao={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:At,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:N,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Ue.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:Ue.SubstrateBalanceType.System,[T.key]:Ue.SubstrateBalanceType.ForeignAssets,[N.key]:Ue.SubstrateBalanceType.ForeignAssets},min:Ue.SubstrateMinType.Assets,ecosystem:Ue.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},k=new Ue.Parachain({...Ao,key:"assethub",name:"AssetHub Polkadot"}),kt=new Ue.Parachain({...Ao,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Ut=require("@galacticcouncil/xc-core");var oe=new Ut.Parachain({assetsData:[{asset:R,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:_,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:F,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ut.SubstrateBalanceType.Assets,balanceOverrides:{[R.key]:Ut.SubstrateBalanceType.System},ecosystem:Ut.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Wt=require("@galacticcouncil/xc-core");var ti=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new Wt.Parachain({assetsData:[{asset:_,id:{Native:_.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:F,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Wt.SubstrateBalanceType.Tokens,balanceOverrides:{[_.key]:Wt.SubstrateBalanceType.System},ecosystem:Wt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ti});var Et=require("@galacticcouncil/xc-core");var us=new Et.Parachain({assetsData:[{asset:De,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Et.SubstrateBalanceType.System,ecosystem:Et.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:Et.XcmVersion.v3});var Kt=require("@galacticcouncil/xc-core"),ko=require("viem");var wo=require("@galacticcouncil/common"),Co=require("polkadot-api"),{isEvmAccount:si,H160:go}=wo.h160,Ms=class{async toH160(e,s){if(si(e))return go.fromAccount(e);let n=go.fromSS58(e);if(s&&await this.isBound(s,n,e))return n;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,s,n){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(s);if(!a)return!1;let r=(0,Co.AccountId)().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var ni=new Ms,Fn=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Xn=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],oi=(0,ko.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Fn,webSocket:Xn},default:{http:Fn,webSocket:Xn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new Kt.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:le,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:$e,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:_,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:De,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:_e,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:S,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:fe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:he,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:F,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Pe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Te,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ye,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:T,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:xe,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Ae,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:N,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Qe,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Ie,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:$,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Ot,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:we,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Ze,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Re,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ce,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ke,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:et,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:g,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:He,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ye,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:bt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:b,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Le,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:yt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Z,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:tt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ve,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:xt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Fe,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ee,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:At,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Kt.SubstrateBalanceType.Tokens,balanceOverrides:{[J.key]:Kt.SubstrateBalanceType.System},ecosystem:Kt.ChainEcosystem.Polkadot,evmChain:oi,evmResolver:ni,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[_e.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ye.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[ve.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Pe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[$.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Re.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[He.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Le.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ve.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Xn,rpcs:Fn});var vt=require("@galacticcouncil/xc-core");var We=new vt.Parachain({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:I,decimals:8,id:{Token:I.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:M,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:vt.SubstrateBalanceType.Tokens,ecosystem:vt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:vt.XcmVersion.v3});var Tt=require("@galacticcouncil/xc-core"),Eo=require("viem");var ai=(0,Eo.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}),U=new Tt.EvmParachain({assetsData:[{asset:F,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:_e,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ye,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:$,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ve,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Pe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Re,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ot,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:He,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Le,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Ve,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Fe,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:g,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:b,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Tt.EvmBalanceType.Erc20,balanceOverrides:{[F.key]:Tt.SubstrateBalanceType.System},ecosystem:Tt.ChainEcosystem.Polkadot,evmChain:ai,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var ds=require("@galacticcouncil/xc-core");var Pt=new ds.Parachain({assetsData:[{asset:N,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ds.SubstrateBalanceType.System,ecosystem:ds.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 ls=require("@galacticcouncil/xc-core");var fs=new ls.Parachain({assetsData:[{asset:Qe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ls.SubstrateBalanceType.System,ecosystem:ls.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 Ft=require("@galacticcouncil/xc-core");var ps=new Ft.Parachain({assetsData:[{asset:Ie,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Ft.SubstrateBalanceType.System,ecosystem:Ft.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:Ft.XcmVersion.v3});var hs=require("@galacticcouncil/xc-core");var ri={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:hs.SubstrateBalanceType.System,ecosystem:hs.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"},vo=new hs.Parachain({...ri,key:"polkadot"});var ys=require("@galacticcouncil/xc-core");var bs=new ys.Parachain({assetsData:[{asset:et,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ys.SubstrateBalanceType.System,ecosystem:ys.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var Xt=require("@galacticcouncil/xc-core");var xs=new Xt.Parachain({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Xt.SubstrateBalanceType.System,ecosystem:Xt.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:Xt.XcmVersion.v3});var To=[ms,k,kt,oe,L,us,h,fs,We,U,Pt,ps,vo,bs,xs];var qt=require("@galacticcouncil/xc-core");var Bt=new qt.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:$,decimals:9},{asset:ve,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Pe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:qt.SolanaBalanceType.Token,balanceOverrides:{[$.key]:qt.SolanaBalanceType.Native},ecosystem:qt.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",ntt:{[$.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[ve.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Pe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Po=[Bt];var As=require("@galacticcouncil/xc-core");var Ns=new As.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Ot,decimals:9}],balance:As.SuiBalanceType.Native,ecosystem:As.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var Fo=[Ns];var gt=require("@galacticcouncil/xc-core");var st=new gt.Parachain({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:gt.SubstrateBalanceType.Assets,balanceOverrides:{[T.key]:gt.SubstrateBalanceType.System},min:gt.SubstrateMinType.Assets,ecosystem:gt.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 gs=require("@galacticcouncil/xc-core");var ws=new gs.Parachain({assetsData:[{asset:Pn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:gs.SubstrateBalanceType.Tokens,ecosystem:gs.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 Xo=[st,ws];var ii=[...xo,...To,...Po,...Fo,...Xo],Bo=new Map(ii.map(t=>[t.key,t]));var mr=require("@galacticcouncil/xc-core");var so=require("@galacticcouncil/xc-core");var eo={};as(eo,{ContractBuilder:()=>q,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>Ct,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>_s,ProgramBuilder:()=>Zn,XcmTransferType:()=>Ne,XcmVersion:()=>dt});var jt=require("@galacticcouncil/xc-core"),So=require("viem"),ci=t=>({build:async e=>{let s=await Promise.all(t.map(r=>r.build(e))),n=s.map(r=>r.address),o=[0,0],a=s.map(r=>(0,So.encodeFunctionData)({abi:jt.Abi[r.module],functionName:r.func,args:r.args}));return new jt.ContractConfig({abi:jt.Abi.Batch,address:jt.Precompile.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Do=()=>({batchAll:ci});var Cs=require("@galacticcouncil/xc-core");function ee(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function zt(t){return typeof t=="object"?Object.values(t)[0]:t}function _o(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Cs.Wormhole.fromChain(r),i=r.getAssetId(n);return new Cs.ContractConfig({abi:Cs.Abi.Erc20,address:zt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var ks=require("@galacticcouncil/xc-core");var Io=require("@galacticcouncil/common"),Ro=require("polkadot-api"),Lo=require("@polkadot-api/utils"),{H160:mi,isEvmAddress:ui}=Io.h160;function di(t){let e=ui(t)?mi.toAccount(t):t;return(0,Lo.toHex)((0,Ro.AccountId)().enc(e))}var li=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=ks.Basejump.fromChain(a),c=a.getAssetId(n);return new ks.ContractConfig({abi:ks.Abi.Basejump,address:r.getAddress(),args:[zt(c),s,di(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Ho=()=>({bridgeViaWormhole:li});var nt=require("@galacticcouncil/xc-core"),Mo=require("@galacticcouncil/common"),{Ss58Addr:Vo}=nt.addr;function fi(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 Bn(t,e){let s=t.getAssetId(e);return typeof s=="string"?fi(s):s}function No(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Bn(o.chain,s);return new nt.ContractConfig({abi:nt.Abi.PolkadotXcm,address:nt.Precompile.PolkadotXcm,args:[n.chain.parachainId,Vo.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Bn(o.chain,s),r=Bn(o.chain,o.destinationFeeBalance),c=Mo.big.toBigInt(n.fee.amount,n.fee.decimals);return new nt.ContractConfig({abi:nt.Abi.PolkadotXcm,address:nt.Precompile.PolkadotXcm,args:[n.chain.parachainId,Vo.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var at=require("@galacticcouncil/xc-core"),Dt=require("@galacticcouncil/descriptors"),Qo=require("@polkadot-api/substrate-bindings"),Us=require("@polkadot-api/utils"),Zo=require("viem");var Oo=require("@galacticcouncil/xc-core"),Os=null;async function Go(){if(Os)return Os;let t=await Oo.codec.getHubCodecs();return Os={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Os}var jo=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),zo=require("@polkadot-api/substrate-bindings"),Jo=require("@polkadot-api/utils");var Uo=require("@galacticcouncil/descriptors"),te=340282366920938463463374607431768211455n,ot="0x0000000000000000000000000000000000000000000000000000000000000000",Y={parents:1,interior:Uo.XcmV3Junctions.Here()},Wo=0,St=1e3,Gs=1002,Ke=1,Jt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Ko="0x0000000000000000000000000000000000000000000000000000000000000000",qo="0x0000000000000000000000000000000000000000";var Sn="0x0000000000000000000000000000000000000000",Es=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Dn=(t,e)=>({parents:2,interior:u.XcmV5Junctions.X2([u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),u.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function $o(t,e){let s=Es(t),n=Dn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[u.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:u.XcmV3MultiassetFungibility.Fungible(o)},{id:n,fun:u.XcmV3MultiassetFungibility.Fungible(o)}]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(a)}})],c=_n({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function _n(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Es(e),m=n===Sn?i:Dn(e,n),d=o.length===42&&o.startsWith("0x")?u.XcmV5Junction.AccountKey20({key:o,network:void 0}):u.XcmV5Junction.AccountId32({id:o,network:void 0}),y={parents:0,interior:u.XcmV5Junctions.X1(d)};return[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:y})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:u.XcmV5AssetFilter.Definite([{id:m,fun:u.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),u.XcmV5Instruction.SetTopic(c)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:y}),u.XcmV5Instruction.SetTopic(c)]}function In(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,p=Es(Ke),d=e===Sn?p:Dn(Ke,e),y={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountId32({id:s,network:void 0}))},A={parents:0,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.AccountKey20({key:n,network:void 0}))},C={parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(Ke)})))},P=[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),u.XcmV5Instruction.SetTopic(m)],B=[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:y})])];B.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let D=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],V=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}]);B.push(u.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:V},preserve_origin:!0,assets:D,remote_xcm:P}),u.XcmV5Instruction.SetTopic(m));let z=a+r+c,ne=[{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(z)},{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],Se=[{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],mt={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},Je=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(c)}])},mt];return[u.XcmV5Instruction.WithdrawAsset(ne),u.XcmV5Instruction.PayFees({asset:Se[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:y})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(St))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Y,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Je,remote_xcm:B}),u.XcmV5Instruction.SetTopic(m)]}function Yo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=(0,zo.getSs58AddressInfo)(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,Jo.toHex)(m.publicKey),d=i.getAssetXcmLocation(n),y=d?jo.multiloc.findNestedKey(d,"key"):void 0,A=y?y.key:Sn,C=r.feeBreakdown,P=C.sourceExecutionFee??0n,B=C.dotRemoteFee??0n,D=C.dotToEtherSwapAmount??0n,V=C.etherFeeAmount??0n,ne=In({tokenAddress:A,senderPubKey:p,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:P,dotRemoteFee:B,dotToEtherSwapAmount:D,etherFeeAmount:V,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(ne)}var{Ss58Addr:ea}=at.addr,pi="0x0000000000000000000000000000000000000000",hi=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=at.Snowbridge.fromChain(c),p=c.getAssetId(n),d=zt(p),y=n.originSymbol==="ETH",A=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,P=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,D=ea.getPubKey(e),V=new TextEncoder().encode(`${i.parachainId}${o}${d}${D}${s}${Date.now()}`),z=(0,Us.toHex)((0,Qo.Blake2256)(V)),ne=_n({ethChainId:Ke,destinationParaId:i.parachainId,tokenAddress:y?pi:d,beneficiaryHex:D,tokenAmount:s,hydrationDotFee:P,topic:z}),Se=await Go(),mt=(0,Us.toHex)(Se.message.enc(Dt.XcmVersionedXcm.V5(ne))),Je=[];y||Je.push((0,Zo.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,s]));let os=Se.location.enc(Dt.XcmVersionedLocation.V5({parents:0,interior:Dt.XcmV5Junctions.X1(Dt.XcmV5Junction.AccountId32({id:D,network:void 0}))})),Nt=(0,Us.toHex)(os.slice(1));return new at.ContractConfig({abi:at.Abi.Snowbridge,address:m.getGateway(),args:[mt,Je,Nt,A,C],value:y?B+s:B,func:"v2_sendMessage",module:"Snowbridge"})}}),yi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=at.Snowbridge.fromChain(r),m=r.getAssetId(n),p=zt(m),d=n.originSymbol==="ETH",y=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new at.ContractConfig({abi:at.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,ea.getPubKey(e)],y,s],value:d?A+s:A,func:"sendToken",module:"Snowbridge"})}}),ta=()=>({v2SendMessage:hi,sendToken:yi});var Me=require("@galacticcouncil/xc-core"),bi="0x00",sa=8,xi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Me.Ntt.fromChain(r,n),m=Me.Wormhole.fromChain(c),p=e;c instanceof Me.EvmParachain&&(p=await c.getDerivatedAddress(e));let d=r,y=await d.evmClient.getProvider().readContract({abi:Me.Abi.NttManager,address:i.manager,args:[m.getWormholeId(),bi],functionName:"quoteDeliveryPrice"}),A=d.getAssetDecimals(n)??0,C=s;if(A>sa){let P=10n**BigInt(A-sa);C=s-s%P}return new Me.ContractConfig({abi:Me.Abi.NttManager,address:i.manager,args:[C,m.getWormholeId(),m.normalizeAddress(p)],token:i.token,wrapNative:d.getBalanceType(n)===Me.EvmBalanceType.Native,value:y[1],func:"transfer",module:"NttManager"})}}),na=()=>({transfer:xi});function oa(){return{Ntt:na}}function q(){return{Batch:Do,Erc20:_o,Basejump:Ho,PolkadotXcm:No,Snowbridge:ta,Wormhole:oa}}var Rn=require("@galacticcouncil/common"),ra=require("@galacticcouncil/xc-core"),aa="AssetConversion",Ai=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=(0,Rn.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,Rn.encodeLocation)(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,y=c.amount;return new ra.ExtrinsicConfig({module:aa,func:e,getTx:A=>A.getUnsafeApi().tx[aa][e]({path:[m,p],amount_out:y,amount_in_max:d,send_to:s,keep_alive:!0})})}}},ia=()=>({swapTokensForExactTokens:Ai});var Ws=require("@galacticcouncil/descriptors"),ca=require("@galacticcouncil/xc-core"),gi="Assets",wi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:r}=o,c=s>r.amount?s-r.amount:s,i=a.getMetadataAssetId(e);return new ca.ExtrinsicConfig({module:gi,func:t,getTx:m=>m.getTypedApi(Ws.hub).tx.Assets.transfer({id:Number(i),target:Ws.MultiAddress.Id(n),amount:c})})}}},ma=()=>({transfer:wi});var da=require("@galacticcouncil/xc-core"),ua="Balances",Ci=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new da.ExtrinsicConfig({module:ua,func:e,getTx:n=>n.getUnsafeApi().tx[ua][e]({dest:s,keep_alive:t})})}},la=()=>({transferAll:Ci});var fa=require("@galacticcouncil/descriptors"),pa=require("@galacticcouncil/xc-core"),ki="Router",Ei=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,m=i.getMetadataAssetId(a),p=i.getMetadataAssetId(r),d=r.amount,y=a.amount+a.amount*BigInt(t.slippage)/100n;return new pa.ExtrinsicConfig({module:ki,func:"buy",getTx:A=>A.getTypedApi(fa.hydration).tx.Router.buy({asset_in:Number(m),asset_out:Number(p),amount_out:d,max_amount_in:y,route:c})})}}),ha=()=>({buy:Ei});var ba=require("@galacticcouncil/xc-core"),ya="Utility",vi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new ba.ExtrinsicConfig({module:ya,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[ya][e]({calls:a})}})}}},xa=()=>({batchAll:vi});var Ks=require("@galacticcouncil/xc-core"),ga=require("polkadot-api"),wa=require("viem");var dt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(dt||{}),Ne=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Ne||{});var Aa="EthereumXcm",Ti=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,wa.encodeFunctionData)({abi:Ks.Abi[n.module],functionName:n.func,args:n.args});return new Ks.ExtrinsicConfig({module:Aa,func:e,getTx:r=>r.getUnsafeApi().tx[Aa][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:ga.Binary.fromHex(a),access_list:void 0}}})})}}},Ln=()=>({transact:Ti});var wt=require("@galacticcouncil/xc-core"),Bs=require("@galacticcouncil/common");var $t=require("@galacticcouncil/xc-core"),l=require("@galacticcouncil/descriptors");var se=require("@galacticcouncil/descriptors");var Ca=require("@galacticcouncil/common"),Hn=require("@galacticcouncil/descriptors"),ka=require("@polkadot-api/substrate-bindings"),Ea=require("@polkadot-api/utils");function j(t){if(t.length===42&&t.startsWith("0x"))return Hn.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,ka.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Hn.XcmV3Junction.AccountId32({id:(0,Ea.toHex)(s.publicKey),network:void 0})}function vs(t,e,s){return Ca.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Vn=require("@galacticcouncil/xc-core");function va(t,e){let s=Vn.multiloc.findNestedKey(t,"GeneralIndex"),n=Vn.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function O(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var qs={};as(qs,{ETHER_TOKEN_ADDRESS:()=>Mn,erc20Location:()=>Fi,erc20LocationReanchored:()=>Xi,ethereumLocation:()=>Pa,parachainLocation:()=>Pi});var qe=require("@galacticcouncil/descriptors"),Mn="0x0000000000000000000000000000000000000000",Ta=t=>qe.XcmV3Junction.GlobalConsensus(qe.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Pa(t){return{parents:2,interior:qe.XcmV3Junctions.X1(Ta(t))}}function Pi(t){return{parents:1,interior:qe.XcmV3Junctions.X1(qe.XcmV3Junction.Parachain(t))}}function Fi(t,e){return e===Mn?Pa(t):{parents:2,interior:qe.XcmV3Junctions.X2([Ta(t),qe.XcmV3Junction.AccountKey20({key:e})])}}function Xi(t){return t===Mn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:qe.XcmV3Junctions.X1(qe.XcmV3Junction.AccountKey20({key:t}))}}var Nn=require("@galacticcouncil/common"),Fa=require("@galacticcouncil/xc-core");function W(t,e){return Bi(e)>=4?(0,Nn.encodeLocation)(t):Si(t)}function Bi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Si(t){return{type:"Concrete",value:(0,Nn.encodeLocation)(t)}}var Di=1e3;function _i(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function Ii(t){if(t)return _i(t)?Di:Fa.multiloc.findParachain(t)}function Xa(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Ii(o),r=n?.parachainId??s.parachainId;if(a&&r!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function js(t,e){let s="V4",n=W(O(e,t),s),o=ot;return[se.XcmV4Instruction.ReserveAssetDeposited([{id:Y,fun:se.XcmV3MultiassetFungibility.Fungible(te)},{id:n,fun:se.XcmV3MultiassetFungibility.Fungible(te)}]),se.XcmV4Instruction.ClearOrigin(),se.XcmV4Instruction.BuyExecution({fees:{id:Y,fun:se.XcmV3MultiassetFungibility.Fungible(te)},weight_limit:se.XcmV3WeightLimit.Unlimited()}),se.XcmV4Instruction.DepositAsset({assets:se.XcmV4AssetAssetFilter.Wild(se.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:se.XcmV3Junctions.X1(j(Jt))}}),se.XcmV4Instruction.SetTopic(o)]}var lt=require("@galacticcouncil/descriptors");function On(t,e){let s="V4",n=W(O(e,t),s),o=zs("V4",j(qo),j(Jt),n,ot);return[lt.XcmV4Instruction.WithdrawAsset([{id:Y,fun:lt.XcmV3MultiassetFungibility.Fungible(te)},{id:n,fun:lt.XcmV3MultiassetFungibility.Fungible(te)}]),lt.XcmV4Instruction.ClearOrigin(),lt.XcmV4Instruction.BuyExecution({fees:{id:Y,fun:lt.XcmV3MultiassetFungibility.Fungible(te)},weight_limit:lt.XcmV3WeightLimit.Unlimited()}),...o.value]}var X=require("@galacticcouncil/descriptors");function Ba(t,e){let s="V4",n=W(O(e,t),s),o=ot;return[X.XcmV4Instruction.WithdrawAsset([{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(te)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(te)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(j(Jt))}}),X.XcmV4Instruction.SetTopic(o)]}function Gn(t,e){let s="V4",n=W(O(e,t),s);return[X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(te)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(j(Jt))}})]}function Sa(t,e,s){let n="V4",o=W(O(e,t),n),a=ot,r=Gn(t,s);return[X.XcmV4Instruction.WithdrawAsset([{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(te)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(te)},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(s.parachainId))},xcm:r}),X.XcmV4Instruction.SetTopic(a)]}var Q=require("@galacticcouncil/descriptors");function Da(t,e){let s="V5",n=W(O(e,t),s),o={parents:0,interior:Q.XcmV5Junctions.X1(Q.XcmV5Junction.AccountId32({id:Ko,network:void 0}))};return[Q.XcmV5Instruction.ReserveAssetDeposited([{id:Y,fun:Q.XcmV3MultiassetFungibility.Fungible(te)}]),Q.XcmV5Instruction.PayFees({asset:{id:Y,fun:Q.XcmV3MultiassetFungibility.Fungible(te)}}),Q.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:Q.XcmV3MultiassetFungibility.Fungible(te)}]),Q.XcmV5Instruction.ClearOrigin(),Q.XcmV5Instruction.DepositAsset({assets:Q.XcmV5AssetFilter.Wild(Q.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),Q.XcmV5Instruction.SetTopic(ot)]}var _a=[$t.ChainEcosystem.Polkadot,$t.ChainEcosystem.Kusama],Ri={parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(1e3))},Li=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ia=(t,e)=>!t.ecosystem||!e.ecosystem?!1:_a.includes(t.ecosystem)&&_a.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ra=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},ft=(t,e,s)=>{if(Ia(e,s))return{type:t,value:Un(s.ecosystem,s.parachainId)};if(s.parachainId===Wo)return{type:t,value:{parents:1,interior:l.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?St:s.parachainId;return{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(n))}}},Hi=t=>t===$t.ChainEcosystem.Kusama?l.XcmV3JunctionNetworkId.Kusama():l.XcmV3JunctionNetworkId.Polkadot(),Un=(t,e)=>({parents:2,interior:l.XcmV3Junctions.X2([l.XcmV3Junction.GlobalConsensus(Hi(t)),l.XcmV3Junction.Parachain(e)])}),La=(t,e,s,n)=>{if(Ia(e,s)){if(e.parachainId!==St){let o=$t.multiloc.findGlobalConsensus(O(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(St))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==St)return{dest:{type:t,value:Un(s.ecosystem,St)},mode:"onward"}}},Yt=(t,e)=>({type:t,value:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),Wn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Li(s)?Ri:s}}:{type:e},_t=(t,e)=>({id:t,fun:l.XcmV3MultiassetFungibility.Fungible(e)}),Ha=(t,e,s)=>({type:t,value:[l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),zs=(t,e,s,n,o)=>{let a=o;return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(s)}})]),l.XcmV4Instruction.InitiateReserveWithdraw({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllOf({id:n,fun:l.XcmV2MultiassetWildFungibility.Fungible()})),reserve:qs.ethereumLocation(Ke),xcm:[l.XcmV4Instruction.BuyExecution({fees:{id:Vi(n),fun:l.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),l.XcmV4Instruction.SetTopic(a)]}),l.XcmV4Instruction.SetTopic(a)]}},Va=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(s.parachainId))}:Un(s.ecosystem,s.parachainId),c={parents:0,interior:l.XcmV3Junctions.X1(e)},i=l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),m=[l.XcmV4Instruction.BuyExecution({fees:{id:o,fun:l.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],p=n==="bridge-withdraw"?l.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):l.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[l.XcmV4Instruction.SetAppendix([l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.All()),beneficiary:c})]),p]}},Vi=t=>{let e=$t.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:l.XcmV3Junctions.Here()}},Ma=(t,e,s,n,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:s,fun:l.XcmV3MultiassetFungibility.Fungible(n)}]),l.XcmV4Instruction.BuyExecution({fees:{id:s,fun:l.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.Transact({origin_kind:l.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]}),Na=(t,e,s,n,o,a)=>({type:t,value:[l.XcmV4Instruction.WithdrawAsset([{id:s,fun:l.XcmV3MultiassetFungibility.Fungible(o)}]),l.XcmV4Instruction.BuyExecution({fees:{id:s,fun:l.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:l.XcmV3WeightLimit.Unlimited()}),l.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:l.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(a)}}),l.XcmV4Instruction.RefundSurplus(),l.XcmV4Instruction.DepositAsset({assets:l.XcmV4AssetAssetFilter.Wild(l.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:l.XcmV3Junctions.X1(e)}})]});var ie="PolkadotXcm",Mi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",m=O(r,s),p=O(r,n.fee),d=W(m,i),y=W(p,i),A=_t(d,e),C=_t(y,n.fee.amount),P="limited_reserve_transfer_assets";return new wt.ExtrinsicConfig({module:ie,func:P,getTx:B=>{let D=B.getUnsafeApi().tx[ie][P];return s.key===n.fee.key?D({dest:ft(i,r,c),beneficiary:Yt(i,a),assets:{type:i,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):va(m,p)?D({dest:ft(i,r,c),beneficiary:Yt(i,a),assets:{type:i,value:[C,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):D({dest:ft(i,r,c),beneficiary:Yt(i,a),assets:{type:i,value:[A,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Ni=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",m=W(O(r,s),i),p=_t(m,e),d=ft(i,r,c),y=Yt(i,a),A={type:i,value:[p]},C="limited_teleport_assets";return new wt.ExtrinsicConfig({module:ie,func:C,getTx:P=>P.getUnsafeApi().tx[ie][C]({dest:d,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Oi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=W(O(r,s),i),p=_t(m,e),d=ft(i,r,c),y=Yt(i,a),A={type:i,value:[p]},C="reserve_transfer_assets";return new wt.ExtrinsicConfig({module:ie,func:C,getTx:P=>P.getUnsafeApi().tx[ie][C]({dest:d,beneficiary:y,assets:A,fee_asset_item:0})})}}),Gi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=j(t),r=o.chain,c=n.chain,i="V4",m=W(O(r,s),i),p=_t(m,e),d=ft(i,r,c),y=Yt(i,a),A={type:i,value:[p]},C="transfer_assets";return new wt.ExtrinsicConfig({module:ie,func:C,getTx:P=>P.getUnsafeApi().tx[ie][C]({dest:d,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ui=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",p=c.chain,d=o.chain,y=o.fee.amount,A=o.fee;i&&(d=i.chain,y=Bs.big.toBigInt(i.fee.amount,i.fee.decimals),A=i.fee);let C=j(r),P=i||d.usesCexForwarding?vs(p,r,d):e,B=j(P),{transferType:D}=t,V=W(O(p,s),m),z=W(O(p,A),m),ne=_t(V,n),Se=_t(z,y),mt=s.isEqual(A),Je=La(m,p,d,s),os=Je?.dest??ft(m,p,d),Nt={type:m,value:mt?[ne]:[Se,ne]},fo=Wn(m,D,V),qr={type:m,value:mt?V:z},jr=Wn(m,D,z),Vs;if(Ra(V)&&o.chain.isEvmChain())Vs=zs(m,B,C,V,a);else if(Je){let vn=Bs.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),zr=W(O(d,s),m);Vs=Va(m,B,d,Je.mode,zr,vn)}else Vs=Ha(m,B,Nt.value.length);let po="transfer_assets_using_type_and_then";return new wt.ExtrinsicConfig({module:ie,func:po,getTx:vn=>vn.getUnsafeApi().tx[ie][po]({dest:os,assets:Nt,assets_transfer_type:fo,remote_fees_id:qr,fees_transfer_type:jr,custom_xcm_on_dest:Vs,weight_limit:{type:"Unlimited"}})})}}),Wi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=vs(c,n,i),p=j(m),{fee:d}=a,y=W(O(i,d),r),A=Bs.big.toBigInt(e.fee,d.decimals);return new wt.ExtrinsicConfig({module:ie,func:t,getTx:C=>C.getUnsafeApi().tx[ie][t]({dest:ft(r,c,i),message:Ma(r,p,y,A,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,m="V4",p=c.chain,d=i.chain,y=vs(p,r,d),A=j(y),C=j(o),P=W(O(d,a),m),{fee:B}=i,D=Bs.big.toBigInt(e.fee,B.decimals),V=n>B.amount?n-(B.amount+D):n;return new wt.ExtrinsicConfig({module:ie,func:t,getTx:z=>z.getUnsafeApi().tx[ie][t]({dest:ft(m,p,d),message:Na(m,A,P,V,D,C)})})}})}};function Ki(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new wt.ExtrinsicConfig({module:ie,func:a,getTx:r=>r.getUnsafeApi().tx[ie][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Yo)}}var Kn=()=>({limitedReserveTransferAssets:Mi,limitedTeleportAssets:Ni,reserveTransferAssets:Oi,transferAssets:Gi,transferAssetsUsingTypeAndThen:Ui,execute:Ki,send:Wi});var Ua=require("@galacticcouncil/xc-core"),Wa=require("@galacticcouncil/common");var Ss=require("@galacticcouncil/descriptors"),Oa=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ss.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Ss.XcmV3Junctions.X2([Ss.XcmV3Junction.Parachain(e.parachainId),s])}};var Ga="XTokens",qi=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",m=c.usesCexForwarding?vs(r,o,c):t,p=j(m),d=r.getAssetId(s),y=(0,Wa.encodeAssetId)(d),A="transfer";return new Ua.ExtrinsicConfig({module:Ga,func:A,getTx:C=>C.getUnsafeApi().tx[Ga][A]({currency_id:y,amount:e,dest:Oa(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),qn=()=>({transfer:qi});function f(){return{assetConversion:ia,assets:ma,balances:la,ethereumXcm:Ln,polkadotXcm:Kn,router:ha,utility:xa,xTokens:qn}}function Ct(t,e){return{prior:function(s){return{build:async n=>t(n)?f().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?f().utility().batchAll([e,...s]).build(n):f().utility().batchAll([...s]).build(n)}}}}var Qt=require("@galacticcouncil/xc-core");var Ka=80000n,qa=120000n,ja=100000n,za=2000000n,jn=15000000000000n;var Qn={};as(Qn,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Ya,AssethubClient:()=>Xe,BaseClient:()=>je,HydrationClient:()=>ce,getAllAssetDepositLimits:()=>$n,getAssetDepositLimit:()=>Jn,getGlobalWithdrawLimit:()=>Yn});var zn=require("@galacticcouncil/common"),Ds=require("@galacticcouncil/descriptors"),je=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ds.hub}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=(0,zn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ds.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!n.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=(0,zn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ds.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Oe=require("@galacticcouncil/descriptors"),Ja=require("@galacticcouncil/common"),Js=require("@polkadot-api/substrate-bindings"),$a=require("@polkadot-api/utils");var Xe=class extends je{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,Ja.encodeLocation)(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,s){let n=new TextEncoder().encode(e),o=(0,$a.toHex)((0,Js.Twox128)(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=Js.u128.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=Oe.XcmVersionedLocation.V5({parents:1,interior:Oe.XcmV5Junctions.X1(Oe.XcmV5Junction.Parachain(s))}),o=Oe.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Oe.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:Oe.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,s){let n={parents:1,interior:Oe.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,n,s,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,s){let n={parents:1,interior:Oe.XcmV5Junctions.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};var Za=require("@galacticcouncil/descriptors");var Ya=14400;function Qa(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,p,d,y;s&&(s.type==="Locked"?(p=s.value,m=o<s.value):(d=s.value[0],y=s.value[1]));let A=n?.type==="Local"?"Local":"External",C=!m&&d!==void 0&&d+Ya<=o,P=null;if(r!==null)if(m)P=0n;else if(C)P=r;else{let B=y??a,D=a>B?a-B:0n;P=r>D?r-D:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:y,currentIssuance:a,headroom:P,category:A,periodExpired:C}}async function Jn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return Qa(e,n,o,a,r,c)}async function $n(t){let[e,s,n,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(s.map(d=>[d.keyArgs[0],d.value])),i=new Map(n.map(d=>[d.keyArgs[0],d.value])),m=new Map(r.map(d=>[d.keyArgs[0],d.value])),p=new Map;for(let d of e){let y=d.keyArgs[0],A=d.value;if(A?.xcm_rate_limit==null)continue;let C=y===0?a:m.get(y)??0n,P=Qa(y,A,c.get(y),i.get(y),o,C);p.set(y.toString(),P)}return p}async function Yn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:p}=e,d=c;if(!r&&p>0n){let A=o>i?o-i:0n;if(A>0n){let C=A>p?p:A,P=c*C/p;d=c>P?c-P:0n}}let y=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:p,used:d,lastUpdateMs:i,headroom:y,lockdown:r,lockdownUntilMs:a}}var ce=class extends je{constructor(e){super(e,Za.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return Jn(this.api(),s)}getAllAssetDepositLimits(){return $n(this.api())}getGlobalWithdrawLimit(){return Yn(this.api())}};function ji(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ce(n),a=new Xe(t.hub),r=js(e,n),c=Da(e,n),i=Es(Ke),m=250000000n,p=$o(Ke,n.parachainId),[d,y,A,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,Gs),a.calculateDestinationFeeV5(p,x)]),P=ee(d,33n),B=ee(y,33n),D=ee(A,33n),z=ee(C,33n)+B,ne=P,Se=await a.quoteEtherForDot(i,z),mt=ee(Se,30n),Je=mt<jn*2n?jn*2n:mt,os=ee(await a.quoteEtherForDot(i,ne),100n),Nt=ee(await a.quoteDotToEther(i,m+D),30n);return{amount:Je+Nt+os,breakdown:{executionFee:Je,relayerFee:Nt,remoteEtherFee:os,hydrationDotFee:ne}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new Xe(t.hub),i=Es(Ke),m=On(e,a),[p,d,y]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,Gs),c.calculateDestinationFee(m,s)]),A=await r.evmClient.getProvider().getGasPrice(),C=za+qa+Ka+ja,P=A*C,B=ee(P,10n),D=p+ee(d,33n)+ee(y,33n),V=ee(await c.quoteDotForExactEther(i,B),20n),z=new ce(a),ne=In({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ot}),Se=ee(await z.calculateDestinationFeeV5(ne,x),33n);return{amount:D+V+Se,breakdown:{dotRemoteFee:D,dotToEtherSwapAmount:V,etherFeeAmount:B,sourceExecutionFee:Se}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=Qt.Snowbridge.fromChain(o),c=new je(a),i=new Xe(t.hub),m=js(e,a),[p,d]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),y=d+ee(p,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Qt.Abi.Snowbridge,address:r.getGateway(),args:[A,a.parachainId,y],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:y}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new Xe(t.hub),r=On(e,o),c=js(e,o),[i,m,p,d,y]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,Gs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+ee(p,25n)+d+ee(y,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:y}}}})}}function zi(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Xa(e,o,a,r),r){let y=new je(a),A=new je(r),C=Gn(e,a),P=Sa(e,r,a),[B,D]=await Promise.all([y.calculateDestinationFee(C,e),A.calculateDestinationFee(P,e)]),V=D+B,z=ee(V,20n),ne=z-V;return{amount:z,breakdown:{reserveFee:D,destinationFee:B,margin:ne}}}let c=new je(a),i=Ba(e,a),m=await c.calculateDestinationFee(i,e),p=ee(m,20n),d=p-m;return{amount:p,breakdown:{totalFee:m,margin:d}}}})}}function Ji(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=Qt.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Qt.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:Ji,XcmPaymentApi:zi,Snowbridge:ji}}var $i="0";function Yi(){return{build:async({address:t,chain:e})=>{let n=await new ce(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():$i,a=e.findAssetById(o);return a?a.asset:J}}}var Qi=()=>({accountCurrencyMap:Yi});function _s(){return{multiTransactionPayment:Qi}}var rt=require("@galacticcouncil/xc-core"),er=require("@solana/spl-token"),$s=require("@solana/web3.js"),tr=require("@wormhole-foundation/sdk-base"),sr=require("@wormhole-foundation/sdk-definitions"),nr=require("@wormhole-foundation/sdk-solana"),or=require("@wormhole-foundation/sdk-solana-ntt"),bf=require("@wormhole-foundation/sdk-definitions-ntt");async function Zi(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(n=>t.getAddressLookupTable(n.accountKey)))).map(n=>n.value).filter(n=>n!==null)}async function ec(t,e,s){let n=await Zi(t,e);return{instructions:"message"in e?$s.TransactionMessage.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var tc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=rt.Ntt.fromChain(c,n),p=rt.Wormhole.fromChain(c),d=rt.Wormhole.fromChain(i),y=e;i instanceof rt.EvmParachain&&(y=await i.getDerivatedAddress(e));let A=new or.SolanaNtt("Mainnet","Solana",c.connection,{coreBridge:p.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),C=c.getBalanceType(n)===rt.SolanaBalanceType.Native,P=$s.Keypair.generate(),B=[];for await(let z of A.transfer(new nr.SolanaAddress(o),s,{chain:(0,tr.toChain)(d.getWormholeId()),address:new sr.UniversalAddress(d.normalizeAddress(y))},{queue:!1,automatic:!1,wrapNative:C},P)){let{transaction:ne,signers:Se}=z.transaction;B.push(await ec(c.connection,ne,Se??[]))}let D=C?BigInt(await(0,er.getMinimumBalanceForRentExemptAccount)(c.connection)):0n,V=B[B.length-1];return new rt.ProgramConfig({instructions:V.instructions,signers:V.signers,lookupTables:V.lookupTables,prerequisites:B.slice(0,-1),rentReserve:D,func:"transfer",module:"NttManager"})}}),ar=()=>({transfer:tc});function rr(){return{Ntt:ar}}function Zn(){return{Wormhole:rr}}var to={};as(to,{Tag:()=>Zt});var Zt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Zt||{});function ir(t,e){return new so.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function cr(t,e){return new so.AssetRoute({source:{asset:t,fee:{asset:S},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:q().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var sc=[cr(ut,Ye)],nc=[ir(ut,Ye)],ur=new mr.ChainRoutes({chain:is,routes:[...nc,...sc]});var Is=require("@galacticcouncil/xc-core");var Ys=require("@galacticcouncil/xc-core");function It(t,e){return new Ys.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function me(t,e){return new Ys.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:S}},contract:q().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ue(t,e){return new Ys.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:S}},contract:q().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var oc=[It(ht,_e),It(Ze,Re),It(g,He),It(b,Le),It(tt,Ve),It(xt,Fe),It(S,Fe)],ac=[new Is.AssetRoute({source:{asset:S,fee:{asset:S}},destination:{chain:h,asset:S,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:S}},contract:q().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),me(le,le),me(fe,fe),me(pe,pe),me(he,he),me(Ae,Ae),me(we,we),me(Ce,Ce),me(be,be),me(ye,ye),me(xe,xe),me(ge,ge),me(ke,ke),me(Ee,Ee),me(g,bt),me(b,yt)],rc=[new Is.AssetRoute({source:{asset:S,fee:{asset:S}},destination:{chain:h,asset:S,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:S}},contract:q().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ue(le,le),ue(fe,fe),ue(pe,pe),ue(he,he),ue(Ae,Ae),ue(we,we),ue(Ce,Ce),ue(be,be),ue(ye,ye),ue(xe,xe),ue(ge,ge),ue(ke,ke),ue(Ee,Ee),ue(g,bt),ue(b,yt)],dr=new Is.ChainRoutes({chain:v,routes:[...oc,...ac,...rc]});var lr=[ur,dr];var Rt=require("@galacticcouncil/xc-core");var Qs=require("@galacticcouncil/xc-core");var es=0,ic=t=>{let{source:e}=t;return!!e.feeSwap},cc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},fr=f().assetConversion().swapTokensForExactTokens({slippage:30});function mc(t,e,s){return new Qs.AssetRoute({source:{asset:t,fee:{asset:x,extra:es}},destination:{chain:e,asset:t,fee:{amount:s,asset:b}},extrinsic:Ct(cc,fr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Zs(t,e,s){return new Qs.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:Ct(ic,fr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function ts(t,e,s){return new Qs.AssetRoute({source:{asset:t,fee:{asset:x,extra:es}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function en(t){return mc(t,h,.02)}var uc=[new Rt.AssetRoute({source:{asset:x,fee:{asset:x,extra:es}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Rt.AssetRoute({source:{asset:T,fee:{asset:x,extra:es}},destination:{chain:h,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),ts(b,h,.02),ts(g,h,.02),en(At)],dc=[new Rt.AssetRoute({source:{asset:T,fee:{asset:x,extra:es}},destination:{chain:st,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssets()})],lc=[ts(b,U,.25),ts(g,U,.25)],fc=[ts(b,L,.03),ts(g,L,.03)],pc=[new Rt.AssetRoute({source:{asset:N,fee:{asset:x,extra:es}},destination:{chain:Pt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],pr=new Rt.ChainRoutes({chain:kt,routes:[Zs(b,h,.02),Zs(g,h,.02),Zs(x,h,.001)]}),hr=new Rt.ChainRoutes({chain:k,routes:[...uc,...dc,...lc,...fc,...pc]});var ze=require("@galacticcouncil/xc-core");var hc=[new ze.AssetRoute({source:{asset:R},destination:{chain:h,asset:R,fee:{amount:.044306118,asset:R}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new ze.AssetRoute({source:{asset:_,fee:{asset:R}},destination:{chain:h,asset:_,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:F,fee:{asset:R}},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:I,fee:{asset:R}},destination:{chain:h,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:H,fee:{asset:R}},destination:{chain:h,asset:H,fee:{amount:.01,asset:H}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:M,fee:{asset:R}},destination:{chain:h,asset:M,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:Z,fee:{asset:R}},destination:{chain:h,asset:Z,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:Z}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:b,fee:{asset:R}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new ze.AssetRoute({source:{asset:g,fee:{asset:R}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],yr=new ze.ChainRoutes({chain:oe,routes:[...hc]});var Be=require("@galacticcouncil/xc-core");var yc=[new Be.AssetRoute({source:{asset:_},destination:{chain:h,asset:_,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:_}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:M,fee:{asset:_}},destination:{chain:h,asset:M,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:Z,fee:{asset:_}},destination:{chain:h,asset:Z,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Z}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:x,fee:{asset:_}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Be.AssetRoute({source:{asset:R,fee:{asset:_}},destination:{chain:h,asset:R,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:oe}),asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:F,fee:{asset:_}},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:I,fee:{asset:_}},destination:{chain:h,asset:I,fee:{amount:625e-8,asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:b,fee:{asset:_}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:g,fee:{asset:_}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],bc=[new Be.AssetRoute({source:{asset:b,fee:{asset:_}},destination:{chain:k,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Be.AssetRoute({source:{asset:g,fee:{asset:_}},destination:{chain:k,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],br=new Be.ChainRoutes({chain:L,routes:[...yc,...bc]});var Ge=require("@galacticcouncil/xc-core");var K=()=>({asset:_s().multiTransactionPayment().accountCurrencyMap()});var pt=require("@galacticcouncil/xc-core");var xc=1,Ac=.02,tn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},sn=f().router().buy({slippage:30});function G(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Ts(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Lt(t,e){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function nn(t){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:k,asset:t,fee:{amount:Ac,asset:b}},extrinsic:Ct(tn,sn).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function no(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:st,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function gc(t,e,s="LocalReserve"){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:xc,asset:F}},extrinsic:Ct(tn,sn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Ht(t){return gc(t,U,"DestinationReserve")}function it(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:q().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ae(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:Ct(tn,sn).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function re(t,e,s){return new pt.AssetRoute({source:{asset:t,fee:K()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:Ct(tn,sn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var wc=[Lt(x,k),Lt(T,k),Lt(b,k),Lt(g,k),nn(At)],Cc=[no(T,.05,.005),no(x,.2,.02)],kc=[G(R,oe),G(_,oe,L),G(F,oe,U),new Ge.AssetRoute({source:{asset:I,fee:K()},destination:{chain:oe,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ge.AssetRoute({source:{asset:H,fee:K()},destination:{chain:oe,asset:H,fee:{amount:.01,asset:H}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(M,oe,L),G(Z,oe,L),G(b,oe,k),G(g,oe,k)],Ec=[G(_,L),G(M,L),G(Z,L),G(R,L,oe),G(F,L,U),new Ge.AssetRoute({source:{asset:I,fee:K()},destination:{chain:L,asset:I,fee:{amount:5e-6,asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(b,L,k),G(g,L,k),new Ge.AssetRoute({source:{asset:x,fee:K()},destination:{chain:L,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],vc=[Ts(I,We,62e-8),Ts(H,We,.0019213457),Ts(J,We,.5),Ts(b,We,.3),Ts(g,We,.3),new Ge.AssetRoute({source:{asset:M,fee:K()},destination:{chain:We,asset:M,fee:{amount:.01,asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ge.AssetRoute({source:{asset:x,fee:K()},destination:{chain:We,asset:x,fee:{amount:.05,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Tc=[G(J,U),G(F,U),G(b,U,k),G(g,U,k),Ht(_e),Ht(Re),Ht(He),Ht(Le),Ht(Ve),Ht(Fe),Ht($)],Pc=[new Ge.AssetRoute({source:{asset:N,fee:K()},destination:{chain:Pt,asset:N,fee:{amount:2.5,asset:N}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Fc=[G(et,bs)],Xc=[new Ge.AssetRoute({source:{asset:De,fee:K()},destination:{chain:us,asset:De,fee:{amount:.04,asset:De}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Bc=[new Ge.AssetRoute({source:{asset:Te,fee:K()},destination:{chain:xs,asset:Te,fee:{amount:.02,asset:Te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Sc=[new Ge.AssetRoute({source:{asset:Ie,fee:K()},destination:{chain:ps,asset:Ie,fee:{amount:1.1,asset:Ie}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Dc=[G(Qe,fs)],_c=[G($e,ms)],Ic=[it(_e,ht,v),it(Re,Ze,v),it(He,g,v),it(Le,b,v),it(Ve,tt,v),it(Fe,S,v)],Rc=[it(Ye,ut,is)],Lc=[it($,$,Bt),it(ve,ve,Bt),it(Pe,Pe,Bt)],Hc=[ae(S,S,v),ae(le,le,v),ae(fe,fe,v),ae(pe,pe,v),ae(he,he,v),ae(Ae,Ae,v),ae(we,we,v),ae(Ce,Ce,v),ae(ke,ke,v),ae(be,be,v),ae(ye,ye,v),ae(xe,xe,v),ae(ge,ge,v),ae(Ee,Ee,v),ae(bt,g,v),ae(yt,b,v)],Vc=[re(S,S,v),re(le,le,v),re(fe,fe,v),re(pe,pe,v),re(he,he,v),re(Ae,Ae,v),re(we,we,v),re(Ce,Ce,v),re(ke,ke,v),re(be,be,v),re(ye,ye,v),re(xe,xe,v),re(ge,ge,v),re(Ee,Ee,v),re(bt,g,v),re(yt,b,v)],Mc=[Lt(x,kt),Lt(b,kt),Lt(g,kt)],xr=new Ge.ChainRoutes({chain:h,routes:[..._c,...wc,...kc,...Ec,...Mc,...Rc,...Xc,...Ic,...Hc,...Lc,...Vc,...vc,...Bc,...Cc,...Tc,...Pc,...Dc,...Sc,...Fc]});var ss=require("@galacticcouncil/xc-core");function on(t,e){return new ss.AssetRoute({source:{asset:t,fee:{asset:H}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var Nc=[new ss.AssetRoute({source:{asset:H},destination:{chain:h,asset:H,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:f().xTokens().transfer()}),new ss.AssetRoute({source:{asset:I,fee:{asset:H}},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:f().xTokens().transfer()}),new ss.AssetRoute({source:{asset:J,fee:{asset:H}},destination:{chain:h,asset:J,fee:{amount:.5,asset:J}},extrinsic:f().xTokens().transfer()}),on(M,L),on(b,k),on(g,k),on(x,k)],Ar=new ss.ChainRoutes({chain:We,routes:[...Nc]});var Ps=require("@galacticcouncil/xc-core");var oo=require("@galacticcouncil/xc-core");function Oc(t,e,s){return new oo.AssetRoute({source:{asset:t,fee:{asset:F}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:q().PolkadotXcm().transferAssetsToPara32()})}function Gc(t,e,s){return new oo.AssetRoute({source:{asset:t,fee:{asset:F}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:q().PolkadotXcm().transferAssetsToPara32()})}function Vt(t,e){return Oc(t,h,e)}function an(t,e){return Gc(t,h,e)}var Uc=[new Ps.AssetRoute({source:{asset:F},destination:{chain:h,asset:F,fee:{amount:.05,asset:F}},contract:q().PolkadotXcm().transferAssetsToPara32()}),an(J,.6),an(b,.3),an(g,.3),Vt(_e,.004),Vt(Re,.004),Vt(He,.004),Vt(Le,.004),Vt(Ve,1e-7),Vt(Fe,2e-6),Vt($,2e-5)],Wc=[new Ps.AssetRoute({source:{asset:b,fee:{asset:F}},destination:{chain:k,asset:b,fee:{amount:.18,asset:b}},contract:q().PolkadotXcm().transferAssetsToPara32()}),new Ps.AssetRoute({source:{asset:g,fee:{asset:F}},destination:{chain:k,asset:g,fee:{amount:.18,asset:g}},contract:q().PolkadotXcm().transferAssetsToPara32()})],gr=new Ps.ChainRoutes({chain:U,routes:[...Uc,...Wc]});var Rs=require("@galacticcouncil/xc-core");var Kc=[new Rs.AssetRoute({source:{asset:N},destination:{chain:h,asset:N,fee:{amount:.01,asset:N}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],qc=[new Rs.AssetRoute({source:{asset:N},destination:{chain:k,asset:N,fee:{amount:.1,asset:N}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],wr=new Rs.ChainRoutes({chain:Pt,routes:[...Kc,...qc]});var rn=require("@galacticcouncil/xc-core");var jc=[new rn.AssetRoute({source:{asset:et},destination:{chain:h,asset:et,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:et}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Cr=new rn.ChainRoutes({chain:bs,routes:[...jc]});var cn=require("@galacticcouncil/xc-core");var zc=[new cn.AssetRoute({source:{asset:De},destination:{chain:h,asset:De,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:De}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],kr=new cn.ChainRoutes({chain:us,routes:[...zc]});var mn=require("@galacticcouncil/xc-core");var Jc=[new mn.AssetRoute({source:{asset:Ie},destination:{chain:h,asset:Ie,fee:{amount:.2,asset:Ie}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Er=new mn.ChainRoutes({chain:ps,routes:[...Jc]});var un=require("@galacticcouncil/xc-core");var $c=[new un.AssetRoute({source:{asset:$e},destination:{chain:h,asset:$e,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:$e}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],vr=new un.ChainRoutes({chain:ms,routes:[...$c]});var dn=require("@galacticcouncil/xc-core");var Yc=[new dn.AssetRoute({source:{asset:Te,fee:{asset:Te,extra:.030555}},destination:{chain:h,asset:Te,fee:{amount:.03,asset:Te}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Tr=new dn.ChainRoutes({chain:xs,routes:[...Yc]});var ln=require("@galacticcouncil/xc-core");var Qc=[new ln.AssetRoute({source:{asset:Qe},destination:{chain:h,asset:Qe,fee:{amount:.205,asset:Qe}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Pr=new ln.ChainRoutes({chain:fs,routes:[...Qc]});var Fr=[vr,hr,pr,yr,br,xr,Ar,gr,wr,Pr,Cr,kr,Er,Tr];var fn=require("@galacticcouncil/xc-core");function ao(t){return new fn.AssetRoute({source:{asset:t,fee:{asset:$}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:Zn().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Zc=[ao($),ao(ve),ao(Pe)],Xr=new fn.ChainRoutes({chain:Bt,routes:[...Zc]});var Br=[Xr];var Sr=require("@galacticcouncil/xc-core");var e0=[],Dr=new Sr.ChainRoutes({chain:Ns,routes:[...e0]});var _r=[Dr];var ns=require("@galacticcouncil/xc-core");var t0=require("@galacticcouncil/xc-core");var Ls=.0015;var s0=new ns.AssetRoute({source:{asset:T,fee:{asset:T,extra:Ls}},destination:{chain:k,asset:T,fee:{amount:.002,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),n0=new ns.AssetRoute({source:{asset:T,fee:{asset:T,extra:Ls}},destination:{chain:ws,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),o0=[new ns.AssetRoute({source:{asset:T,fee:{asset:T,extra:Ls}},destination:{chain:h,asset:T,fee:{amount:.04,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new ns.AssetRoute({source:{asset:x,fee:{asset:T,extra:Ls}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ir=new ns.ChainRoutes({chain:st,routes:[n0,s0,...o0]});var Hs=require("@galacticcouncil/xc-core");var ro=()=>({asset:_s().multiTransactionPayment().accountCurrencyMap()});var a0=[new Hs.AssetRoute({source:{asset:b,fee:ro()},destination:{chain:st,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],r0=[new Hs.AssetRoute({source:{asset:T,fee:ro()},destination:{chain:st,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Rr=new Hs.ChainRoutes({chain:ws,routes:[...a0,...r0]});var Lr=[Ir,Rr];var i0=[...lr,...Fr,...Br,..._r,...Lr],Hr=new Map(i0.map(t=>[t.chain.key,t]));var io=require("@galacticcouncil/xc-core");var Mt=require("@galacticcouncil/xc-core"),pn=class extends Mt.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Mt.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},hn=class extends Mt.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=n,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new Mt.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Mt.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var Fs=require("@galacticcouncil/xc-core");var yn=class extends Fs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new Xe(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new Xe(a).getSystemAccountBalance(n)===0n)throw new Fs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},bn=class extends Fs.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new Xe(a).checkIfFrozen(n,s))throw new Fs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var ct=require("@galacticcouncil/xc-core");var c0=12,m0=1,u0=18,xn=class extends ct.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ce(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new ce(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||m0,p=i.decimals||c0,d=m*Math.pow(10,p),y=await r.getAssetBalance(n,c);if(BigInt(d*1.1)>y)throw new ct.TransferValidationError("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},An=class extends ct.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ce(a).getAssetDepositLimit(n);if(c.locked)throw new ct.TransferValidationError("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new ct.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},gn=class extends ct.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new ce(n).getGlobalWithdrawLimit();if(a.lockdown)throw new ct.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},wn=class extends ct.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,r=new ce(a),c=a.getBalanceAssetId(F),i=a.getAssetDecimals(F)||u0,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new ct.TransferValidationError("Insufficient_Ed",{amount:1,asset:F.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var de={isAny:()=>!0,isHydration:t=>t instanceof io.Parachain&&t.parachainId===2034,isHub:t=>t instanceof io.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Vr=[new pn(de.isAny,de.isAny),new hn(de.isAny,de.isAny),new yn(de.isAny,de.isHub),new bn(de.isHub,de.isAny),new xn(de.isAny,de.isHydration),new wn(de.isHydration,de.isAny),new An(de.isAny,de.isHydration),new gn(de.isHydration,de.isAny)];var lo={};as(lo,{AssethubDex:()=>uo,HydrationDex:()=>co});var Xs=require("@galacticcouncil/sdk-next"),Nr=require("@galacticcouncil/common"),Or=require("polkadot-api");var Mr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:Cn}=Xs.pool,{TradeRouteBuilder:d0,TradeRouter:l0}=Xs.sor,{TxBuilderFactory:f0}=Xs.tx,co=class{chain;client;poolCtx;txBuilder;getCtx=Mr(async e=>{console.log("init swap router",e,"\u2705");let s=new l0(this.poolCtx);return s.withFilter({useOnly:[Cn.Aave,Cn.Omni,Cn.Stable,Cn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ce(this.chain),this.txBuilder=new f0(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,m=await this.getCtx(1),p=await m.getMostLiquidRoute(r,c),d=await m.getBuy(r,c,i,p),C=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Or.Binary.toHex(C)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),p=await i.getBuy(a,r,c,m);return{amount:p.amountIn,route:d0.build(p.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw m}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,Nr.RUNTIME_DECIMALS);return a/BigInt(r)}};var mo=require("@galacticcouncil/common"),uo=class{chain;client;constructor(e){this.chain=e,this.client=new Xe(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,mo.encodeLocation)(o),(0,mo.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var Kr=require("@galacticcouncil/xc-core");var Gr=require("@galacticcouncil/xc-core");function kn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Gr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function Ur(t){let{decimals:e,id:s}=t;return{asset:kn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Wr(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:kn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var En=class extends Kr.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=kn(a),c=Ur(a),i=Wr(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,en(r)),this.updateChainRoute(s,nn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var $a=Object.defineProperty;var Qt=(t,e)=>{for(var s in e)$a(t,s,{get:e[s],enumerable:!0})};import{Asset as A}from"@galacticcouncil/xc-core";var de=new A({key:"aave",originSymbol:"AAVE"}),We=new A({key:"ajun",originSymbol:"AJUN"}),le=new A({key:"apyusd",originSymbol:"apyUSD"}),_=new A({key:"astr",originSymbol:"ASTR"}),F=new A({key:"bnc",originSymbol:"BNC"}),Ms=new A({key:"bsx",originSymbol:"BSX"}),fe=new A({key:"cfg_new",originSymbol:"CFG"}),Pe=new A({key:"cru",originSymbol:"CRU"}),ct=new A({key:"dai",originSymbol:"DAI"}),Fe=new A({...ct,key:"dai_mwh"}),y=new A({key:"dot",originSymbol:"DOT"}),P=new A({key:"eth",originSymbol:"ETH"}),pe=new A({key:"ena",originSymbol:"ENA"}),st=new A({key:"eurc",originSymbol:"EURC"}),Ke=new A({...st,key:"eurc_mwh"}),v=new A({key:"glmr",originSymbol:"GLMR"}),j=new A({key:"hdx",originSymbol:"HDX"}),S=new A({key:"ibtc",originSymbol:"IBTC"}),R=new A({key:"intr",originSymbol:"INTR"}),Le=new A({key:"jitoSol",originSymbol:"jitoSOL"}),E=new A({key:"ksm",originSymbol:"KSM"}),he=new A({key:"ldo",originSymbol:"LDO"}),ye=new A({key:"lbtc",originSymbol:"LBTC"}),ve=new A({key:"ewt",originSymbol:"EWT"}),be=new A({key:"link",originSymbol:"LINK"}),V=new A({key:"myth",originSymbol:"MYTH"}),qe=new A({key:"neuro",originSymbol:"NEURO"}),Xe=new A({key:"pen",originSymbol:"PEN"}),xe=new A({key:"paxg",originSymbol:"PAXG"}),He=new A({key:"prime",originSymbol:"PRIME"}),Ae=new A({key:"sky",originSymbol:"SKY"}),se=new A({key:"sol",originSymbol:"SOL"}),Xt=new A({key:"sui",originSymbol:"SUI"}),ge=new A({key:"susde",originSymbol:"sUSDe"}),je=new A({key:"susds",originSymbol:"sUSDS"}),Be=new A({...je,key:"susds_mwh"}),we=new A({key:"tbtc",originSymbol:"tBTC"}),Ce=new A({key:"trac",originSymbol:"TRAC"}),ze=new A({key:"unq",originSymbol:"UNQ"}),h=new A({key:"usdt",originSymbol:"USDT"}),Se=new A({...h,key:"usdt_mwh"}),mt=new A({...h,key:"usdt_eth"}),b=new A({key:"usdc",originSymbol:"USDC"}),De=new A({...b,key:"usdc_mwh"}),ut=new A({...b,key:"usdc_eth"}),J=new A({key:"vastr",originSymbol:"vASTR"}),L=new A({key:"vdot",originSymbol:"vDOT"}),Je=new A({key:"weth",originSymbol:"WETH"}),_e=new A({...Je,key:"weth_mwh"}),$e=new A({key:"wbtc",originSymbol:"WBTC"}),Ie=new A({...$e,key:"wbtc_mwh"}),ke=new A({key:"wsteth",originSymbol:"wstETH"}),dt=new A({key:"wud",originSymbol:"WUD"}),Qa=[de,We,le,_,Ms,fe,Pe,F,ct,Fe,y,pe,st,Ke,P,v,j,S,R,E,he,ye,ve,Le,be,V,qe,xe,Xe,He,Ae,se,Xt,ge,je,Be,Ce,we,ze,b,De,ut,h,Se,mt,J,L,$e,Ie,Je,_e,ke,dt],Ya=new Map(Qa.map(t=>[t.key,t]));import{ChainEcosystem as Za,EvmChain as er,EvmBalanceType as tr}from"@galacticcouncil/xc-core";import{base as sr}from"viem/chains";var Vt=new er({id:8453,key:"base",name:"Base",assetsData:[{asset:P,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:st,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:b,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:tr.Erc20,ecosystem:Za.Ethereum,evmChain:sr,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[st.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as nr,EvmChain as or,EvmBalanceType as Pn}from"@galacticcouncil/xc-core";import{mainnet as ar}from"viem/chains";var k=new or({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:P,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:de,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:le,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:fe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Je,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:ct,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ge,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:we,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:$e,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ye,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:b,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:he,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:be,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:xe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ae,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ce,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ke,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Pn.Erc20,balanceOverrides:{[P.key]:Pn.Native},ecosystem:nr.Ethereum,evmChain:ar,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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[ct.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[je.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[b.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[h.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[$e.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[Je.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Fn=[Vt,k];import{ChainEcosystem as rr,Parachain as ir,SubstrateBalanceType as cr}from"@galacticcouncil/xc-core";var Mt=new ir({assetsData:[{asset:We,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:cr.System,ecosystem:rr.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as mr,Parachain as Xn,SubstrateBalanceType as os,SubstrateMinType as ur}from"@galacticcouncil/xc-core";var Bn={assetsData:[{asset:y,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:dt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:V,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:E,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:os.Assets,balanceOverrides:{[y.key]:os.System,[E.key]:os.ForeignAssets,[V.key]:os.ForeignAssets},min:ur.Assets,ecosystem:mr.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},w=new Xn({...Bn,key:"assethub",name:"AssetHub Polkadot"}),ht=new Xn({...Bn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as dr,Parachain as lr,SubstrateBalanceType as Sn}from"@galacticcouncil/xc-core";var Z=new lr({assetsData:[{asset:_,xcmLocation:{parents:0,interior:"Here"}},{asset:y,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:F,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:S,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Sn.Assets,balanceOverrides:{[_.key]:Sn.System},ecosystem:dr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as fr,Parachain as pr,SubstrateBalanceType as Dn}from"@galacticcouncil/xc-core";var hr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],I=new pr({assetsData:[{asset:F,id:{Native:F.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:_,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:S,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Dn.Tokens,balanceOverrides:{[F.key]:Dn.System},ecosystem:fr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:hr});import{ChainEcosystem as yr,Parachain as br,XcmVersion as xr,SubstrateBalanceType as Ar}from"@galacticcouncil/xc-core";var Nt=new br({assetsData:[{asset:Pe,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Ar.System,ecosystem:yr.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:xr.v3});import{ChainEcosystem as kr,EvmParachain as Er,SubstrateBalanceType as In}from"@galacticcouncil/xc-core";import{defineChain as vr}from"viem";import{h160 as gr}from"@galacticcouncil/common";import{AccountId as wr}from"polkadot-api";var{isEvmAccount:Cr,H160:_n}=gr,as=class{async toH160(e,s){if(Cr(e))return _n.fromAccount(e);let n=_n.fromSS58(e);if(s&&await this.isBound(s,n,e))return n;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,s,n){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(s);if(!a)return!1;let r=wr().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Tr=new as,Ns=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Os=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],Pr=vr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Ns,webSocket:Os},default:{http:Ns,webSocket:Os}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new Er({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:de,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:We,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:fe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Pe,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:y,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Fe,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:P,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:le,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:pe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:S,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,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:ve,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:he,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:E,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:ye,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:be,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:xe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:V,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:qe,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Xe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ae,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:se,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Xt,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ge,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:je,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Be,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ce,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:ze,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:b,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:De,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ke,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:ut,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Se,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:mt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:J,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$e,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ie,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Je,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:_e,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:dt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:In.Tokens,balanceOverrides:{[j.key]:In.System},ecosystem:kr.Polkadot,evmChain:Pr,evmResolver:Tr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Fe.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ke.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Le.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[He.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[se.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Be.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[De.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Se.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ie.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[_e.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Os,rpcs:Ns});import{ChainEcosystem as Fr,Parachain as Xr,XcmVersion as Br,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var Ve=new Xr({assetsData:[{asset:R,decimals:10,id:{Token:R.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:S,decimals:8,id:{Token:S.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:y,decimals:10,id:{Token:y.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:b,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:j,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:L,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Sr.Tokens,ecosystem:Fr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Br.v3});import{ChainEcosystem as Dr,EvmParachain as _r,EvmBalanceType as Ir,SubstrateBalanceType as Rr}from"@galacticcouncil/xc-core";import{defineChain as Lr}from"viem";var Hr=Lr({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}),O=new _r({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Fe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ke,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:se,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:Be,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Xt,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:De,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Se,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Ie,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:_e,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:y,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:b,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ir.Erc20,balanceOverrides:{[v.key]:Rr.System},ecosystem:Dr.Polkadot,evmChain:Hr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as Vr,Parachain as Mr,SubstrateBalanceType as Nr}from"@galacticcouncil/xc-core";var yt=new Mr({assetsData:[{asset:V,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Nr.System,ecosystem:Vr.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as Or,Parachain as Gr,SubstrateBalanceType as Ur}from"@galacticcouncil/xc-core";var Ot=new Gr({assetsData:[{asset:qe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Ur.System,ecosystem:Or.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Wr,Parachain as Kr,XcmVersion as qr,SubstrateBalanceType as jr}from"@galacticcouncil/xc-core";var Gt=new Kr({assetsData:[{asset:Xe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:jr.System,ecosystem:Wr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:qr.v3});import{ChainEcosystem as zr,Parachain as Jr,SubstrateBalanceType as $r}from"@galacticcouncil/xc-core";var Qr={assetsData:[{asset:y,xcmLocation:{parents:0,interior:"Here"}}],balance:$r.System,ecosystem:zr.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"},Rn=new Jr({...Qr,key:"polkadot"});import{ChainEcosystem as Yr,Parachain as Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Ut=new Zr({assetsData:[{asset:ze,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ei.System,ecosystem:Yr.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as ti,Parachain as si,XcmVersion as ni,SubstrateBalanceType as oi}from"@galacticcouncil/xc-core";var Wt=new si({assetsData:[{asset:ve,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:oi.System,ecosystem:ti.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:ni.v3});var Ln=[Mt,w,ht,Z,I,Nt,f,Ot,Ve,O,yt,Gt,Rn,Ut,Wt];import{ChainEcosystem as ai,SolanaChain as ri,SolanaBalanceType as Hn}from"@galacticcouncil/xc-core";var bt=new ri({id:101,key:"solana",name:"Solana",assetsData:[{asset:se,decimals:9},{asset:Le,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:He,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Hn.Token,balanceOverrides:{[se.key]:Hn.Native},ecosystem:ai.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",ntt:{[se.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"}},[Le.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"}},[He.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"}}},platformAddressFormat:"base58"}});var Vn=[bt];import{ChainEcosystem as ii,SuiChain as ci,SuiBalanceType as mi}from"@galacticcouncil/xc-core";var rs=new ci({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Xt,decimals:9}],balance:mi.Native,ecosystem:ii.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var Mn=[rs];import{ChainEcosystem as ui,Parachain as di,SubstrateBalanceType as Nn,SubstrateMinType as li}from"@galacticcouncil/xc-core";var Qe=new di({assetsData:[{asset:E,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Nn.Assets,balanceOverrides:{[E.key]:Nn.System},min:li.Assets,ecosystem:ui.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as fi,Parachain as pi,SubstrateBalanceType as hi}from"@galacticcouncil/xc-core";var Kt=new pi({assetsData:[{asset:Ms,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:E,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:hi.Tokens,ecosystem:fi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var On=[Qe,Kt];var yi=[...Fn,...Ln,...Vn,...Mn,...On],bi=new Map(yi.map(t=>[t.key,t]));import{ChainRoutes as S0}from"@galacticcouncil/xc-core";import{AssetRoute as oa}from"@galacticcouncil/xc-core";var sa={};Qt(sa,{ContractBuilder:()=>K,ExtrinsicBuilder:()=>d,ExtrinsicDecorator:()=>lt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>es,XcmTransferType:()=>Re,XcmVersion:()=>at});import{Abi as Gn,ContractConfig as xi,Precompile as Ai}from"@galacticcouncil/xc-core";import{encodeFunctionData as gi}from"viem";var wi=t=>({build:async e=>{let s=await Promise.all(t.map(r=>r.build(e))),n=s.map(r=>r.address),o=[0,0],a=s.map(r=>gi({abi:Gn[r.module],functionName:r.func,args:r.args}));return new xi({abi:Gn.Batch,address:Ai.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Un=()=>({batchAll:wi});import{Abi as Ci,ContractConfig as ki,Wormhole as Ei}from"@galacticcouncil/xc-core";function $(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Bt(t){return typeof t=="object"?Object.values(t)[0]:t}function Wn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Ei.fromChain(r),i=r.getAssetId(n);return new ki({abi:Ci.Erc20,address:Bt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as vi,Basejump as Ti,ContractConfig as Pi}from"@galacticcouncil/xc-core";import{h160 as Fi}from"@galacticcouncil/common";import{AccountId as Xi}from"polkadot-api";import{toHex as Bi}from"@polkadot-api/utils";var{H160:Si,isEvmAddress:Di}=Fi;function _i(t){let e=Di(t)?Si.toAccount(t):t;return Bi(Xi().enc(e))}var Ii=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Ti.fromChain(a),c=a.getAssetId(n);return new Pi({abi:vi.Basejump,address:r.getAddress(),args:[Bt(c),s,_i(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Kn=()=>({bridgeViaWormhole:Ii});import{addr as Ri,Abi as qn,ContractConfig as jn,Precompile as zn}from"@galacticcouncil/xc-core";import{big as Li}from"@galacticcouncil/common";var{Ss58Addr:Jn}=Ri;function Hi(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 Gs(t,e){let s=t.getAssetId(e);return typeof s=="string"?Hi(s):s}function $n(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Gs(o.chain,s);return new jn({abi:qn.PolkadotXcm,address:zn.PolkadotXcm,args:[n.chain.parachainId,Jn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Gs(o.chain,s),r=Gs(o.chain,o.destinationFeeBalance),c=Li.toBigInt(n.fee.amount,n.fee.decimals);return new jn({abi:qn.PolkadotXcm,address:zn.PolkadotXcm,args:[n.chain.parachainId,Jn.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Wi,Abi as no,ContractConfig as oo,Snowbridge as ao}from"@galacticcouncil/xc-core";import{XcmV5Junctions as Ki,XcmV5Junction as qi,XcmVersionedXcm as ji,XcmVersionedLocation as zi}from"@galacticcouncil/descriptors";import{Blake2256 as Ji}from"@polkadot-api/substrate-bindings";import{toHex as zs}from"@polkadot-api/utils";import{encodeAbiParameters as $i}from"viem";import{codec as Vi}from"@galacticcouncil/xc-core";var is=null;async function Qn(){if(is)return is;let t=await Vi.getHubCodecs();return is={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},is}import{multiloc as Ni}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as Ee,XcmV5AssetFilter as ne,XcmV5Instruction as X,XcmV5Junctions as At,XcmV5Junction as ot,XcmV5NetworkId as Us,XcmV5WildAsset as nt,XcmVersionedXcm as Oi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Gi}from"@polkadot-api/substrate-bindings";import{toHex as Ui}from"@polkadot-api/utils";import{XcmV3Junctions as Mi}from"@galacticcouncil/descriptors";var Q=340282366920938463463374607431768211455n,Ye="0x0000000000000000000000000000000000000000000000000000000000000000",z={parents:1,interior:Mi.Here()},Yn=0,xt=1e3,cs=1002,Me=1,St="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Zn="0x0000000000000000000000000000000000000000000000000000000000000000",eo="0x0000000000000000000000000000000000000000";var Ws="0x0000000000000000000000000000000000000000",qt=t=>({parents:2,interior:At.X1(ot.GlobalConsensus(Us.Ethereum({chain_id:BigInt(t)})))}),Ks=(t,e)=>({parents:2,interior:At.X2([ot.GlobalConsensus(Us.Ethereum({chain_id:BigInt(t)})),ot.AccountKey20({key:e,network:void 0})])});function to(t,e){let s=qt(t),n=Ks(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[X.ReserveAssetDeposited([{id:s,fun:Ee.Fungible(o)},{id:n,fun:Ee.Fungible(o)}]),X.ExchangeAsset({give:ne.Wild(nt.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:Ee.Fungible(a)}],maximal:!1}),X.PayFees({asset:{id:z,fun:Ee.Fungible(a)}})],c=qs({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function qs(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=qt(e),m=n===Ws?i:Ks(e,n),u=o.length===42&&o.startsWith("0x")?ot.AccountKey20({key:o,network:void 0}):ot.AccountId32({id:o,network:void 0}),p={parents:0,interior:At.X1(u)};return[X.SetAppendix([X.RefundSurplus(),X.DepositAsset({assets:ne.Wild(nt.All()),beneficiary:p})]),X.ExchangeAsset({give:ne.Wild(nt.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:Ee.Fungible(r)}],maximal:!1}),X.InitiateTransfer({destination:{parents:1,interior:At.X1(ot.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:ne.Definite([{id:z,fun:Ee.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:ne.Definite([{id:m,fun:Ee.Fungible(a)}])}],remote_xcm:[X.DepositAsset({assets:ne.Wild(nt.AllCounted(3)),beneficiary:p}),X.SetTopic(c)]}),X.RefundSurplus(),X.DepositAsset({assets:ne.Wild(nt.All()),beneficiary:p}),X.SetTopic(c)]}function js(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=qt(Me),u=e===Ws?l:Ks(Me,e),p={parents:0,interior:At.X1(ot.AccountId32({id:s,network:void 0}))},x={parents:0,interior:At.X1(ot.AccountKey20({key:n,network:void 0}))},g={parents:2,interior:At.X1(ot.GlobalConsensus(Us.Ethereum({chain_id:BigInt(Me)})))},T=[X.DepositAsset({assets:ne.Wild(nt.AllCounted(3)),beneficiary:x}),X.SetTopic(m)],B=[X.SetAppendix([X.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),X.RefundSurplus(),X.DepositAsset({assets:ne.Wild(nt.All()),beneficiary:p})])];B.push(X.ExchangeAsset({give:ne.Definite([{id:z,fun:Ee.Fungible(c)}]),want:[{id:l,fun:Ee.Fungible(i)}],maximal:!1}));let D=[{type:"ReserveWithdraw",value:ne.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],W=ne.Definite([{id:l,fun:Ee.Fungible(i)}]);B.push(X.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:W},preserve_origin:!0,assets:D,remote_xcm:T}),X.SetTopic(m));let Y=a+r+c,ue=[{id:z,fun:Ee.Fungible(Y)},{id:u,fun:Ee.Fungible(o)}],Ge=[{id:z,fun:Ee.Fungible(a)}],tt={type:"ReserveWithdraw",value:ne.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},Ue=[{type:"ReserveWithdraw",value:ne.Definite([{id:z,fun:Ee.Fungible(c)}])},tt];return[X.WithdrawAsset(ue),X.PayFees({asset:Ge[0]}),X.SetAppendix([X.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),X.RefundSurplus(),X.DepositAsset({assets:ne.Wild(nt.All()),beneficiary:p})]),X.InitiateTransfer({destination:{parents:1,interior:At.X1(ot.Parachain(xt))},remote_fees:{type:"ReserveWithdraw",value:ne.Definite([{id:z,fun:Ee.Fungible(r)}])},preserve_origin:!0,assets:Ue,remote_xcm:B}),X.SetTopic(m)]}function so(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Gi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=Ui(m.publicKey),u=i.getAssetXcmLocation(n),p=u?Ni.findNestedKey(u,"key"):void 0,x=p?p.key:Ws,g=r.feeBreakdown,T=g.sourceExecutionFee??0n,B=g.dotRemoteFee??0n,D=g.dotToEtherSwapAmount??0n,W=g.etherFeeAmount??0n,ue=js({tokenAddress:x,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:T,dotRemoteFee:B,dotToEtherSwapAmount:D,etherFeeAmount:W,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Oi.V5(ue)}var{Ss58Addr:ro}=Wi,Qi="0x0000000000000000000000000000000000000000",Yi=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=ao.fromChain(c),l=c.getAssetId(n),u=Bt(l),p=n.originSymbol==="ETH",x=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,T=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,D=ro.getPubKey(e),W=new TextEncoder().encode(`${i.parachainId}${o}${u}${D}${s}${Date.now()}`),Y=zs(Ji(W)),ue=qs({ethChainId:Me,destinationParaId:i.parachainId,tokenAddress:p?Qi:u,beneficiaryHex:D,tokenAmount:s,hydrationDotFee:T,topic:Y}),Ge=await Qn(),tt=zs(Ge.message.enc(ji.V5(ue))),Ue=[];p||Ue.push($i([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,s]));let Ht=Ge.location.enc(zi.V5({parents:0,interior:Ki.X1(qi.AccountId32({id:D,network:void 0}))})),Ft=zs(Ht.slice(1));return new oo({abi:no.Snowbridge,address:m.getGateway(),args:[tt,Ue,Ft,x,g],value:p?B+s:B,func:"v2_sendMessage",module:"Snowbridge"})}}),Zi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=ao.fromChain(r),m=r.getAssetId(n),l=Bt(m),u=n.originSymbol==="ETH",p=a.feeBreakdown.bridgeFeeInDot,x=a.fee.amount;return new oo({abi:no.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,ro.getPubKey(e)],p,s],value:u?x+s:x,func:"sendToken",module:"Snowbridge"})}}),io=()=>({v2SendMessage:Yi,sendToken:Zi});import{Abi as co,ContractConfig as ec,EvmBalanceType as tc,EvmParachain as sc,Ntt as nc,Wormhole as oc}from"@galacticcouncil/xc-core";var ac="0x00",mo=8,rc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=nc.fromChain(r,n),m=oc.fromChain(c),l=e;c instanceof sc&&(l=await c.getDerivatedAddress(e));let u=r,p=await u.evmClient.getProvider().readContract({abi:co.NttManager,address:i.manager,args:[m.getWormholeId(),ac],functionName:"quoteDeliveryPrice"}),x=u.getAssetDecimals(n)??0,g=s;if(x>mo){let T=10n**BigInt(x-mo);g=s-s%T}return new ec({abi:co.NttManager,address:i.manager,args:[g,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,wrapNative:u.getBalanceType(n)===tc.Native,value:p[1],func:"transfer",module:"NttManager"})}}),uo=()=>({transfer:rc});function lo(){return{Ntt:uo}}function K(){return{Batch:Un,Erc20:Wn,Basejump:Kn,PolkadotXcm:$n,Snowbridge:io,Wormhole:lo}}import{encodeLocation as fo}from"@galacticcouncil/common";import{ExtrinsicConfig as ic}from"@galacticcouncil/xc-core";var po="AssetConversion",cc=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=fo(i.getAssetXcmLocation(r)),l=fo(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,p=c.amount;return new ic({module:po,func:e,getTx:x=>x.getUnsafeApi().tx[po][e]({path:[m,l],amount_out:p,amount_in_max:u,send_to:s,keep_alive:!0})})}}},ho=()=>({swapTokensForExactTokens:cc});import{hub as mc,MultiAddress as uc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as dc}from"@galacticcouncil/xc-core";var lc="Assets",fc=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:r}=o,c=s>r.amount?s-r.amount:s,i=a.getMetadataAssetId(e);return new dc({module:lc,func:t,getTx:m=>m.getTypedApi(mc).tx.Assets.transfer({id:Number(i),target:uc.Id(n),amount:c})})}}},yo=()=>({transfer:fc});import{ExtrinsicConfig as pc}from"@galacticcouncil/xc-core";var bo="Balances",hc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new pc({module:bo,func:e,getTx:n=>n.getUnsafeApi().tx[bo][e]({dest:s,keep_alive:t})})}},xo=()=>({transferAll:hc});import{hydration as yc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as bc}from"@galacticcouncil/xc-core";var xc="Router",Ac=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,m=i.getMetadataAssetId(a),l=i.getMetadataAssetId(r),u=r.amount,p=a.amount+a.amount*BigInt(t.slippage)/100n;return new bc({module:xc,func:"buy",getTx:x=>x.getTypedApi(yc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:u,max_amount_in:p,route:c})})}}),Ao=()=>({buy:Ac});import{ExtrinsicConfig as gc}from"@galacticcouncil/xc-core";var go="Utility",wc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new gc({module:go,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[go][e]({calls:a})}})}}},wo=()=>({batchAll:wc});import{Abi as Cc,ExtrinsicConfig as kc}from"@galacticcouncil/xc-core";import{Binary as Ec}from"polkadot-api";import{encodeFunctionData as vc}from"viem";var at=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(at||{}),Re=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Re||{});var Co="EthereumXcm",Tc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=vc({abi:Cc[n.module],functionName:n.func,args:n.args});return new kc({module:Co,func:e,getTx:r=>r.getUnsafeApi().tx[Co][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:Ec.fromHex(a),access_list:void 0}}})})}}},Js=()=>({transact:Tc});import{ExtrinsicConfig as Et}from"@galacticcouncil/xc-core";import{big as hs}from"@galacticcouncil/common";import{multiloc as Ro,ChainEcosystem as cn}from"@galacticcouncil/xc-core";import{XcmV3Junctions as oe,XcmV3Junction as Dt,XcmV3JunctionNetworkId as _o,XcmV3MultiassetFungibility as gt,XcmV4Instruction as H,XcmV4AssetAssetFilter as wt,XcmV4AssetWildAsset as Ct,XcmV3WeightLimit as ps,XcmV2MultiassetWildFungibility as $c,XcmV2OriginKind as Qc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Nc,XcmV3MultiassetFungibility as Qs,XcmV3WeightLimit as Oc,XcmV4AssetAssetFilter as Gc,XcmV4AssetWildAsset as Uc,XcmV4Instruction as Yt}from"@galacticcouncil/descriptors";import{acc as Pc}from"@galacticcouncil/common";import{XcmV3Junction as ko}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Fc}from"@polkadot-api/substrate-bindings";import{toHex as Xc}from"@polkadot-api/utils";function q(t){if(t.length===42&&t.startsWith("0x"))return ko.AccountKey20({key:t,network:void 0});let s=Fc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ko.AccountId32({id:Xc(s.publicKey),network:void 0})}function jt(t,e,s){return Pc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as Eo}from"@galacticcouncil/xc-core";function vo(t,e){let s=Eo.findNestedKey(t,"GeneralIndex"),n=Eo.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function M(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ds={};Qt(ds,{ETHER_TOKEN_ADDRESS:()=>$s,erc20Location:()=>Dc,erc20LocationReanchored:()=>_c,ethereumLocation:()=>Po,parachainLocation:()=>Sc});import{XcmV3Junctions as ms,XcmV3Junction as us,XcmV3JunctionNetworkId as Bc}from"@galacticcouncil/descriptors";var $s="0x0000000000000000000000000000000000000000",To=t=>us.GlobalConsensus(Bc.Ethereum({chain_id:BigInt(t)}));function Po(t){return{parents:2,interior:ms.X1(To(t))}}function Sc(t){return{parents:1,interior:ms.X1(us.Parachain(t))}}function Dc(t,e){return e===$s?Po(t):{parents:2,interior:ms.X2([To(t),us.AccountKey20({key:e})])}}function _c(t){return t===$s?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ms.X1(us.AccountKey20({key:t}))}}import{encodeLocation as Fo}from"@galacticcouncil/common";import{multiloc as Ic}from"@galacticcouncil/xc-core";function G(t,e){return Rc(e)>=4?Fo(t):Lc(t)}function Rc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Lc(t){return{type:"Concrete",value:Fo(t)}}var Hc=1e3;function Vc(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function Mc(t){if(t)return Vc(t)?Hc:Ic.findParachain(t)}function Xo(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Mc(o),r=n?.parachainId??s.parachainId;if(a&&r!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function ls(t,e){let s="V4",n=G(M(e,t),s),o=Ye;return[Yt.ReserveAssetDeposited([{id:z,fun:Qs.Fungible(Q)},{id:n,fun:Qs.Fungible(Q)}]),Yt.ClearOrigin(),Yt.BuyExecution({fees:{id:z,fun:Qs.Fungible(Q)},weight_limit:Oc.Unlimited()}),Yt.DepositAsset({assets:Gc.Wild(Uc.AllCounted(2)),beneficiary:{parents:0,interior:Nc.X1(q(St))}}),Yt.SetTopic(o)]}import{XcmV4Instruction as Ys,XcmV3MultiassetFungibility as Zs,XcmV3WeightLimit as Wc}from"@galacticcouncil/descriptors";function en(t,e){let s="V4",n=G(M(e,t),s),o=fs("V4",q(eo),q(St),n,Ye);return[Ys.WithdrawAsset([{id:z,fun:Zs.Fungible(Q)},{id:n,fun:Zs.Fungible(Q)}]),Ys.ClearOrigin(),Ys.BuyExecution({fees:{id:z,fun:Zs.Fungible(Q)},weight_limit:Wc.Unlimited()}),...o.value]}import{XcmV3Junctions as tn,XcmV3Junction as Kc,XcmV3MultiassetFungibility as Zt,XcmV3WeightLimit as sn,XcmV4AssetAssetFilter as nn,XcmV4AssetWildAsset as on,XcmV4Instruction as Ne}from"@galacticcouncil/descriptors";function Bo(t,e){let s="V4",n=G(M(e,t),s),o=Ye;return[Ne.WithdrawAsset([{id:n,fun:Zt.Fungible(Q)}]),Ne.ClearOrigin(),Ne.BuyExecution({fees:{id:n,fun:Zt.Fungible(Q)},weight_limit:sn.Unlimited()}),Ne.DepositAsset({assets:nn.Wild(on.AllCounted(1)),beneficiary:{parents:0,interior:tn.X1(q(St))}}),Ne.SetTopic(o)]}function an(t,e){let s="V4",n=G(M(e,t),s);return[Ne.BuyExecution({fees:{id:n,fun:Zt.Fungible(Q)},weight_limit:sn.Unlimited()}),Ne.DepositAsset({assets:nn.Wild(on.AllCounted(1)),beneficiary:{parents:0,interior:tn.X1(q(St))}})]}function So(t,e,s){let n="V4",o=G(M(e,t),n),a=Ye,r=an(t,s);return[Ne.WithdrawAsset([{id:o,fun:Zt.Fungible(Q)}]),Ne.ClearOrigin(),Ne.BuyExecution({fees:{id:o,fun:Zt.Fungible(Q)},weight_limit:sn.Unlimited()}),Ne.DepositReserveAsset({assets:nn.Wild(on.AllCounted(1)),dest:{parents:1,interior:tn.X1(Kc.Parachain(s.parachainId))},xcm:r}),Ne.SetTopic(a)]}import{XcmV3MultiassetFungibility as rn,XcmV5AssetFilter as qc,XcmV5Instruction as zt,XcmV5Junctions as jc,XcmV5Junction as zc,XcmV5WildAsset as Jc}from"@galacticcouncil/descriptors";function Do(t,e){let s="V5",n=G(M(e,t),s),o={parents:0,interior:jc.X1(zc.AccountId32({id:Zn,network:void 0}))};return[zt.ReserveAssetDeposited([{id:z,fun:rn.Fungible(Q)}]),zt.PayFees({asset:{id:z,fun:rn.Fungible(Q)}}),zt.ReserveAssetDeposited([{id:n,fun:rn.Fungible(Q)}]),zt.ClearOrigin(),zt.DepositAsset({assets:qc.Wild(Jc.AllCounted(3)),beneficiary:o}),zt.SetTopic(Ye)]}var Io=[cn.Polkadot,cn.Kusama],Yc={parents:1,interior:oe.X1(Dt.Parachain(1e3))},Zc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Lo=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Io.includes(t.ecosystem)&&Io.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ho=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},rt=(t,e,s)=>{if(Lo(e,s))return{type:t,value:mn(s.ecosystem,s.parachainId)};if(s.parachainId===Yn)return{type:t,value:{parents:1,interior:oe.Here()}};let n=s.key==="ethereum"?xt:s.parachainId;return{type:t,value:{parents:1,interior:oe.X1(Dt.Parachain(n))}}},e0=t=>t===cn.Kusama?_o.Kusama():_o.Polkadot(),mn=(t,e)=>({parents:2,interior:oe.X2([Dt.GlobalConsensus(e0(t)),Dt.Parachain(e)])}),Vo=(t,e,s,n)=>{if(Lo(e,s)){if(e.parachainId!==xt){let o=Ro.findGlobalConsensus(M(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:oe.X1(Dt.Parachain(xt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==xt)return{dest:{type:t,value:mn(s.ecosystem,xt)},mode:"onward"}}},_t=(t,e)=>({type:t,value:{parents:0,interior:oe.X1(e)}}),un=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Zc(s)?Yc:s}}:{type:e},kt=(t,e)=>({id:t,fun:gt.Fungible(e)}),Mo=(t,e,s)=>({type:t,value:[H.DepositAsset({assets:wt.Wild(Ct.AllCounted(s)),beneficiary:{parents:0,interior:oe.X1(e)}})]}),fs=(t,e,s,n,o)=>{let a=o;return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:wt.Wild(Ct.All()),beneficiary:{parents:0,interior:oe.X1(s)}})]),H.InitiateReserveWithdraw({assets:wt.Wild(Ct.AllOf({id:n,fun:$c.Fungible()})),reserve:ds.ethereumLocation(Me),xcm:[H.BuyExecution({fees:{id:t0(n),fun:gt.Fungible(1n)},weight_limit:ps.Unlimited()}),H.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:oe.X1(e)}}),H.SetTopic(a)]}),H.SetTopic(a)]}},No=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:oe.X1(Dt.Parachain(s.parachainId))}:mn(s.ecosystem,s.parachainId),c={parents:0,interior:oe.X1(e)},i=wt.Wild(Ct.AllCounted(1)),m=[H.BuyExecution({fees:{id:o,fun:gt.Fungible(a)},weight_limit:ps.Unlimited()}),H.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?H.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):H.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:wt.Wild(Ct.All()),beneficiary:c})]),l]}},t0=t=>{let e=Ro.findNestedKey(t,"key");return e?{parents:0,interior:oe.X1(Dt.AccountKey20({key:e.key}))}:{parents:0,interior:oe.Here()}},Oo=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:gt.Fungible(n)}]),H.BuyExecution({fees:{id:s,fun:gt.Fungible(n)},weight_limit:ps.Unlimited()}),H.Transact({origin_kind:Qc.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),H.RefundSurplus(),H.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:oe.X1(e)}})]}),Go=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:gt.Fungible(o)}]),H.BuyExecution({fees:{id:s,fun:gt.Fungible(o)},weight_limit:ps.Unlimited()}),H.TransferAsset({assets:[{id:s,fun:gt.Fungible(n)}],beneficiary:{parents:0,interior:oe.X1(a)}}),H.RefundSurplus(),H.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:oe.X1(e)}})]});var ae="PolkadotXcm",s0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=M(r,s),l=M(r,n.fee),u=G(m,i),p=G(l,i),x=kt(u,e),g=kt(p,n.fee.amount),T="limited_reserve_transfer_assets";return new Et({module:ae,func:T,getTx:B=>{let D=B.getUnsafeApi().tx[ae][T];return s.key===n.fee.key?D({dest:rt(i,r,c),beneficiary:_t(i,a),assets:{type:i,value:[x]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):vo(m,l)?D({dest:rt(i,r,c),beneficiary:_t(i,a),assets:{type:i,value:[g,x]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):D({dest:rt(i,r,c),beneficiary:_t(i,a),assets:{type:i,value:[x,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),n0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=G(M(r,s),i),l=kt(m,e),u=rt(i,r,c),p=_t(i,a),x={type:i,value:[l]},g="limited_teleport_assets";return new Et({module:ae,func:g,getTx:T=>T.getUnsafeApi().tx[ae][g]({dest:u,beneficiary:p,assets:x,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),o0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=G(M(r,s),i),l=kt(m,e),u=rt(i,r,c),p=_t(i,a),x={type:i,value:[l]},g="reserve_transfer_assets";return new Et({module:ae,func:g,getTx:T=>T.getUnsafeApi().tx[ae][g]({dest:u,beneficiary:p,assets:x,fee_asset_item:0})})}}),a0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=G(M(r,s),i),l=kt(m,e),u=rt(i,r,c),p=_t(i,a),x={type:i,value:[l]},g="transfer_assets";return new Et({module:ae,func:g,getTx:T=>T.getUnsafeApi().tx[ae][g]({dest:u,beneficiary:p,assets:x,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),r0=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",l=c.chain,u=o.chain,p=o.fee.amount,x=o.fee;i&&(u=i.chain,p=hs.toBigInt(i.fee.amount,i.fee.decimals),x=i.fee);let g=q(r),T=i||u.usesCexForwarding?jt(l,r,u):e,B=q(T),{transferType:D}=t,W=G(M(l,s),m),Y=G(M(l,x),m),ue=kt(W,n),Ge=kt(Y,p),tt=s.isEqual(x),Ue=Vo(m,l,u,s),Ht=Ue?.dest??rt(m,l,u),Ft={type:m,value:tt?[ue]:[Ge,ue]},vn=un(m,D,W),ja={type:m,value:tt?W:Y},za=un(m,D,Y),ns;if(Ho(W)&&o.chain.isEvmChain())ns=fs(m,B,g,W,a);else if(Ue){let Vs=hs.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Ja=G(M(u,s),m);ns=No(m,B,u,Ue.mode,Ja,Vs)}else ns=Mo(m,B,Ft.value.length);let Tn="transfer_assets_using_type_and_then";return new Et({module:ae,func:Tn,getTx:Vs=>Vs.getUnsafeApi().tx[ae][Tn]({dest:Ht,assets:Ft,assets_transfer_type:vn,remote_fees_id:ja,fees_transfer_type:za,custom_xcm_on_dest:ns,weight_limit:{type:"Unlimited"}})})}}),i0=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=jt(c,n,i),l=q(m),{fee:u}=a,p=G(M(i,u),r),x=hs.toBigInt(e.fee,u.decimals);return new Et({module:ae,func:t,getTx:g=>g.getUnsafeApi().tx[ae][t]({dest:rt(r,c,i),message:Oo(r,l,p,x,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,m="V4",l=c.chain,u=i.chain,p=jt(l,r,u),x=q(p),g=q(o),T=G(M(u,a),m),{fee:B}=i,D=hs.toBigInt(e.fee,B.decimals),W=n>B.amount?n-(B.amount+D):n;return new Et({module:ae,func:t,getTx:Y=>Y.getUnsafeApi().tx[ae][t]({dest:rt(m,l,u),message:Go(m,x,T,W,D,g)})})}})}};function c0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Et({module:ae,func:a,getTx:r=>r.getUnsafeApi().tx[ae][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(so)}}var dn=()=>({limitedReserveTransferAssets:s0,limitedTeleportAssets:n0,reserveTransferAssets:o0,transferAssets:a0,transferAssetsUsingTypeAndThen:r0,execute:c0,send:i0});import{ExtrinsicConfig as u0}from"@galacticcouncil/xc-core";import{encodeAssetId as d0}from"@galacticcouncil/common";import{XcmV3Junctions as Uo,XcmV3Junction as m0}from"@galacticcouncil/descriptors";var Wo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Uo.X1(s)}}:{type:t,value:{parents:1,interior:Uo.X2([m0.Parachain(e.parachainId),s])}};var Ko="XTokens",l0=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",m=c.usesCexForwarding?jt(r,o,c):t,l=q(m),u=r.getAssetId(s),p=d0(u),x="transfer";return new u0({module:Ko,func:x,getTx:g=>g.getUnsafeApi().tx[Ko][x]({currency_id:p,amount:e,dest:Wo(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),ln=()=>({transfer:l0});function d(){return{assetConversion:ho,assets:yo,balances:xo,ethereumXcm:Js,polkadotXcm:dn,router:Ao,utility:wo,xTokens:ln}}function lt(t,e){return{prior:function(s){return{build:async n=>t(n)?d().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?d().utility().batchAll([e,...s]).build(n):d().utility().batchAll([...s]).build(n)}}}}import{Abi as ta,Snowbridge as k0,Basejump as E0}from"@galacticcouncil/xc-core";var qo=80000n,jo=120000n,zo=100000n,Jo=2000000n,fn=15000000000000n;var ea={};Qt(ea,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Yo,AssethubClient:()=>Te,BaseClient:()=>Oe,HydrationClient:()=>re,getAllAssetDepositLimits:()=>hn,getAssetDepositLimit:()=>pn,getGlobalWithdrawLimit:()=>yn});import{encodeLocation as $o}from"@galacticcouncil/common";import{hub as f0,XcmVersionedAssetId as Qo}from"@galacticcouncil/descriptors";var Oe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??f0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=$o(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Qo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!n.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=$o(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Qo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as ys,XcmV5Junction as p0,XcmVersionedLocation as h0,XcmVersionedXcm as y0,XcmVersionedAssetId as b0}from"@galacticcouncil/descriptors";import{encodeLocation as x0}from"@galacticcouncil/common";import{Twox128 as A0,u128 as g0}from"@polkadot-api/substrate-bindings";import{toHex as w0}from"@polkadot-api/utils";var Te=class extends Oe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=x0(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,s){let n=new TextEncoder().encode(e),o=w0(A0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=g0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=h0.V5({parents:1,interior:ys.X1(p0.Parachain(s))}),o=b0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,y0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,n,s,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as C0}from"@galacticcouncil/descriptors";var Yo=14400;function Zo(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,l,u,p;s&&(s.type==="Locked"?(l=s.value,m=o<s.value):(u=s.value[0],p=s.value[1]));let x=n?.type==="Local"?"Local":"External",g=!m&&u!==void 0&&u+Yo<=o,T=null;if(r!==null)if(m)T=0n;else if(g)T=r;else{let B=p??a,D=a>B?a-B:0n;T=r>D?r-D:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:u,baselineIssuance:p,currentIssuance:a,headroom:T,category:x,periodExpired:g}}async function pn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return Zo(e,n,o,a,r,c)}async function hn(t){let[e,s,n,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(s.map(u=>[u.keyArgs[0],u.value])),i=new Map(n.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),l=new Map;for(let u of e){let p=u.keyArgs[0],x=u.value;if(x?.xcm_rate_limit==null)continue;let g=p===0?a:m.get(p)??0n,T=Zo(p,x,c.get(p),i.get(p),o,g);l.set(p.toString(),T)}return l}async function yn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:l}=e,u=c;if(!r&&l>0n){let x=o>i?o-i:0n;if(x>0n){let g=x>l?l:x,T=c*g/l;u=c>T?c-T:0n}}let p=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:l,used:u,lastUpdateMs:i,headroom:p,lockdown:r,lockdownUntilMs:a}}var re=class extends Oe{constructor(e){super(e,C0)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return pn(this.api(),s)}getAllAssetDepositLimits(){return hn(this.api())}getGlobalWithdrawLimit(){return yn(this.api())}};function v0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new re(n),a=new Te(t.hub),r=ls(e,n),c=Do(e,n),i=qt(Me),m=250000000n,l=to(Me,n.parachainId),[u,p,x,g]=await Promise.all([o.calculateDestinationFeeV5(c,y),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,cs),a.calculateDestinationFeeV5(l,y)]),T=$(u,33n),B=$(p,33n),D=$(x,33n),Y=$(g,33n)+B,ue=T,Ge=await a.quoteEtherForDot(i,Y),tt=$(Ge,30n),Ue=tt<fn*2n?fn*2n:tt,Ht=$(await a.quoteEtherForDot(i,ue),100n),Ft=$(await a.quoteDotToEther(i,m+D),30n);return{amount:Ue+Ft+Ht,breakdown:{executionFee:Ue,relayerFee:Ft,remoteEtherFee:Ht,hydrationDotFee:ue}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new Te(t.hub),i=qt(Me),m=en(e,a),[l,u,p]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,cs),c.calculateDestinationFee(m,s)]),x=await r.evmClient.getProvider().getGasPrice(),g=Jo+jo+qo+zo,T=x*g,B=$(T,10n),D=l+$(u,33n)+$(p,33n),W=$(await c.quoteDotForExactEther(i,B),20n),Y=new re(a),ue=js({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Ye}),Ge=$(await Y.calculateDestinationFeeV5(ue,y),33n);return{amount:D+W+Ge,breakdown:{dotRemoteFee:D,dotToEtherSwapAmount:W,etherFeeAmount:B,sourceExecutionFee:Ge}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=k0.fromChain(o),c=new Oe(a),i=new Te(t.hub),m=ls(e,a),[l,u]=await Promise.all([c.calculateDestinationFee(m,y),i.calculateDeliveryFee(m,a.parachainId)]),p=u+$(l,25n),x=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:ta.Snowbridge,address:r.getGateway(),args:[x,a.parachainId,p],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:p}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new Te(t.hub),r=en(e,o),c=ls(e,o),[i,m,l,u,p]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,cs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+$(l,25n)+u+$(p,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:p}}}})}}function T0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Xo(e,o,a,r),r){let p=new Oe(a),x=new Oe(r),g=an(e,a),T=So(e,r,a),[B,D]=await Promise.all([p.calculateDestinationFee(g,e),x.calculateDestinationFee(T,e)]),W=D+B,Y=$(W,20n),ue=Y-W;return{amount:Y,breakdown:{reserveFee:D,destinationFee:B,margin:ue}}}let c=new Oe(a),i=Bo(e,a),m=await c.calculateDestinationFee(i,e),l=$(m,20n),u=l-m;return{amount:l,breakdown:{totalFee:m,margin:u}}}})}}function P0(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=E0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:ta.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:P0,XcmPaymentApi:T0,Snowbridge:v0}}var F0="0";function X0(){return{build:async({address:t,chain:e})=>{let n=await new re(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():F0,a=e.findAssetById(o);return a?a.asset:j}}}var B0=()=>({accountCurrencyMap:X0});function es(){return{multiTransactionPayment:B0}}var na={};Qt(na,{Tag:()=>Jt});var Jt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Jt||{});function aa(t,e){return new oa({source:{asset:t,fee:{asset:P}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ra(t,e){return new oa({source:{asset:t,fee:{asset:P},destinationFee:t},destination:{chain:f,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:K().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var D0=[ra(st,Ke)],_0=[aa(st,Ke)],ia=new S0({chain:Vt,routes:[..._0,...D0]});import{AssetRoute as ca,ChainRoutes as I0}from"@galacticcouncil/xc-core";import{AssetRoute as bn}from"@galacticcouncil/xc-core";function It(t,e){return new bn({source:{asset:t,fee:{asset:P}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ie(t,e){return new bn({source:{asset:t,fee:{asset:P}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:P}},contract:K().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ce(t,e){return new bn({source:{asset:t,fee:{asset:P}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:P}},contract:K().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var R0=[It(ct,Fe),It(je,Be),It(b,De),It(h,Se),It($e,Ie),It(Je,_e)],L0=[new ca({source:{asset:P,fee:{asset:P}},destination:{chain:f,asset:P,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:P}},contract:K().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ie(de,de),ie(le,le),ie(fe,fe),ie(pe,pe),ie(xe,xe),ie(ge,ge),ie(we,we),ie(ye,ye),ie(he,he),ie(be,be),ie(Ae,Ae),ie(Ce,Ce),ie(ke,ke),ie(b,ut),ie(h,mt)],H0=[new ca({source:{asset:P,fee:{asset:P}},destination:{chain:f,asset:P,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:P}},contract:K().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ce(de,de),ce(le,le),ce(fe,fe),ce(pe,pe),ce(xe,xe),ce(ge,ge),ce(we,we),ce(ye,ye),ce(he,he),ce(be,be),ce(Ae,Ae),ce(Ce,Ce),ce(ke,ke),ce(b,ut),ce(h,mt)],ma=new I0({chain:k,routes:[...R0,...L0,...H0]});var ua=[ia,ma];import{AssetRoute as As,ChainRoutes as la}from"@galacticcouncil/xc-core";import{AssetRoute as xn}from"@galacticcouncil/xc-core";var Rt=0,V0=t=>{let{source:e}=t;return!!e.feeSwap},M0=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},da=d().assetConversion().swapTokensForExactTokens({slippage:30});function N0(t,e,s){return new xn({source:{asset:t,fee:{asset:y,extra:Rt}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:lt(M0,da).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function bs(t,e,s){return new xn({source:{asset:t,fee:{asset:t,swap:!t.isEqual(y)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:lt(V0,da).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Lt(t,e,s){return new xn({source:{asset:t,fee:{asset:y,extra:Rt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function xs(t){return N0(t,f,.02)}var O0=[new As({source:{asset:y,fee:{asset:y,extra:Rt}},destination:{chain:f,asset:y,fee:{amount:.001,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new As({source:{asset:E,fee:{asset:y,extra:Rt}},destination:{chain:f,asset:E,fee:{amount:1e-4,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lt(h,f,.02),Lt(b,f,.02),xs(dt)],G0=[new As({source:{asset:E,fee:{asset:y,extra:Rt}},destination:{chain:Qe,asset:E,fee:{amount:.001,asset:E}},extrinsic:d().polkadotXcm().transferAssets()})],U0=[Lt(h,O,.25),Lt(b,O,.25)],W0=[Lt(h,I,.03),Lt(b,I,.03)],K0=[new As({source:{asset:V,fee:{asset:y,extra:Rt}},destination:{chain:yt,asset:V,fee:{amount:2.5,asset:V}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],fa=new la({chain:ht,routes:[bs(h,f,.02),bs(b,f,.02),bs(y,f,.001)]}),pa=new la({chain:w,routes:[...O0,...G0,...U0,...W0,...K0]});import{AssetRoute as ft,ChainRoutes as q0}from"@galacticcouncil/xc-core";var j0=[new ft({source:{asset:_},destination:{chain:f,asset:_,fee:{amount:.044306118,asset:_}},extrinsic:d().polkadotXcm().reserveTransferAssets()}),new ft({source:{asset:F,fee:{asset:_}},destination:{chain:f,asset:F,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:F}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:v,fee:{asset:_}},destination:{chain:f,asset:v,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:O}),asset:v}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:S,fee:{asset:_}},destination:{chain:f,asset:S,fee:{amount:2e-6,asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:R,fee:{asset:_}},destination:{chain:f,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:L,fee:{asset:_}},destination:{chain:f,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:L}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:J,fee:{asset:_}},destination:{chain:f,asset:J,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:J}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:h,fee:{asset:_}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:b,fee:{asset:_}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],ha=new q0({chain:Z,routes:[...j0]});import{AssetRoute as Ze,ChainRoutes as z0}from"@galacticcouncil/xc-core";var J0=[new Ze({source:{asset:F},destination:{chain:f,asset:F,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:L,fee:{asset:F}},destination:{chain:f,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:J,fee:{asset:F}},destination:{chain:f,asset:J,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:y,fee:{asset:F}},destination:{chain:f,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ze({source:{asset:_,fee:{asset:F}},destination:{chain:f,asset:_,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:v,fee:{asset:F}},destination:{chain:f,asset:v,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:O}),asset:v}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:S,fee:{asset:F}},destination:{chain:f,asset:S,fee:{amount:625e-8,asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:h,fee:{asset:F}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:b,fee:{asset:F}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],$0=[new Ze({source:{asset:h,fee:{asset:F}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ze({source:{asset:b,fee:{asset:F}},destination:{chain:w,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],ya=new z0({chain:I,routes:[...J0,...$0]});import{AssetRoute as it,ChainRoutes as em}from"@galacticcouncil/xc-core";var U=()=>({asset:es().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as pt}from"@galacticcouncil/xc-core";var Q0=1,Y0=.02,gs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ws=d().router().buy({slippage:30});function N(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function $t(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function vt(t,e){return new pt({source:{asset:t,fee:U()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function Cs(t){return new pt({source:{asset:t,fee:U()},destination:{chain:w,asset:t,fee:{amount:Y0,asset:h}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function An(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:Qe,asset:t,fee:{amount:e,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Z0(t,e,s="LocalReserve"){return new pt({source:{asset:t,fee:U()},destination:{chain:e,asset:t,fee:{amount:Q0,asset:v}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Tt(t){return Z0(t,O,"DestinationReserve")}function et(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ee(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:y}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function te(t,e,s){return new pt({source:{asset:t,fee:U()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:y}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var tm=[vt(y,w),vt(E,w),vt(h,w),vt(b,w),Cs(dt)],sm=[An(E,.05,.005),An(y,.2,.02)],nm=[N(_,Z),N(F,Z,I),N(v,Z,O),new it({source:{asset:S,fee:U()},destination:{chain:Z,asset:S,fee:{amount:2e-6,asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:R,fee:U()},destination:{chain:Z,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),N(L,Z,I),N(J,Z,I),N(h,Z,w),N(b,Z,w)],om=[N(F,I),N(L,I),N(J,I),N(_,I,Z),N(v,I,O),new it({source:{asset:S,fee:U()},destination:{chain:I,asset:S,fee:{amount:5e-6,asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),N(h,I,w),N(b,I,w),new it({source:{asset:y,fee:U()},destination:{chain:I,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],am=[$t(S,Ve,62e-8),$t(R,Ve,.0019213457),$t(j,Ve,.5),$t(h,Ve,.3),$t(b,Ve,.3),new it({source:{asset:L,fee:U()},destination:{chain:Ve,asset:L,fee:{amount:.01,asset:y}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:y,fee:U()},destination:{chain:Ve,asset:y,fee:{amount:.05,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],rm=[N(j,O),N(v,O),N(h,O,w),N(b,O,w),Tt(Fe),Tt(Be),Tt(De),Tt(Se),Tt(Ie),Tt(_e),Tt(se)],im=[new it({source:{asset:V,fee:U()},destination:{chain:yt,asset:V,fee:{amount:2.5,asset:V}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],cm=[N(ze,Ut)],mm=[new it({source:{asset:Pe,fee:U()},destination:{chain:Nt,asset:Pe,fee:{amount:.04,asset:Pe}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],um=[new it({source:{asset:ve,fee:U()},destination:{chain:Wt,asset:ve,fee:{amount:.02,asset:ve}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],dm=[new it({source:{asset:Xe,fee:U()},destination:{chain:Gt,asset:Xe,fee:{amount:1.1,asset:Xe}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],lm=[N(qe,Ot)],fm=[N(We,Mt)],pm=[et(Fe,ct,k),et(Be,je,k),et(De,b,k),et(Se,h,k),et(Ie,$e,k),et(_e,Je,k)],hm=[et(Ke,st,Vt)],ym=[et(se,se,bt),et(Le,Le,bt),et(He,He,bt)],bm=[ee(P,P,k),ee(de,de,k),ee(le,le,k),ee(fe,fe,k),ee(pe,pe,k),ee(xe,xe,k),ee(ge,ge,k),ee(we,we,k),ee(Ce,Ce,k),ee(ye,ye,k),ee(he,he,k),ee(be,be,k),ee(Ae,Ae,k),ee(ke,ke,k),ee(ut,b,k),ee(mt,h,k)],xm=[te(P,P,k),te(de,de,k),te(le,le,k),te(fe,fe,k),te(pe,pe,k),te(xe,xe,k),te(ge,ge,k),te(we,we,k),te(Ce,Ce,k),te(ye,ye,k),te(he,he,k),te(be,be,k),te(Ae,Ae,k),te(ke,ke,k),te(ut,b,k),te(mt,h,k)],Am=[vt(y,ht),vt(h,ht),vt(b,ht)],ba=new em({chain:f,routes:[...fm,...tm,...nm,...om,...Am,...hm,...mm,...pm,...bm,...ym,...xm,...am,...um,...sm,...rm,...im,...lm,...dm,...cm]});import{AssetRoute as Es,ChainRoutes as gm}from"@galacticcouncil/xc-core";function ks(t,e){return new Es({source:{asset:t,fee:{asset:R}},destination:{chain:f,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:d().xTokens().transfer()})}var wm=[new Es({source:{asset:R},destination:{chain:f,asset:R,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Es({source:{asset:S,fee:{asset:R}},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Es({source:{asset:j,fee:{asset:R}},destination:{chain:f,asset:j,fee:{amount:.5,asset:j}},extrinsic:d().xTokens().transfer()}),ks(L,I),ks(h,w),ks(b,w),ks(y,w)],xa=new gm({chain:Ve,routes:[...wm]});import{AssetRoute as gn,ChainRoutes as Em}from"@galacticcouncil/xc-core";import{AssetRoute as Aa}from"@galacticcouncil/xc-core";function Cm(t,e,s){return new Aa({source:{asset:t,fee:{asset:v}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:K().PolkadotXcm().transferAssetsToPara32()})}function km(t,e,s){return new Aa({source:{asset:t,fee:{asset:v}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:K().PolkadotXcm().transferAssetsToPara32()})}function Pt(t,e){return Cm(t,f,e)}function vs(t,e){return km(t,f,e)}var vm=[new gn({source:{asset:v},destination:{chain:f,asset:v,fee:{amount:.05,asset:v}},contract:K().PolkadotXcm().transferAssetsToPara32()}),vs(j,.6),vs(h,.3),vs(b,.3),Pt(Fe,.004),Pt(Be,.004),Pt(De,.004),Pt(Se,.004),Pt(Ie,1e-7),Pt(_e,2e-6),Pt(se,2e-5)],Tm=[new gn({source:{asset:h,fee:{asset:v}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:K().PolkadotXcm().transferAssetsToPara32()}),new gn({source:{asset:b,fee:{asset:v}},destination:{chain:w,asset:b,fee:{amount:.18,asset:b}},contract:K().PolkadotXcm().transferAssetsToPara32()})],ga=new Em({chain:O,routes:[...vm,...Tm]});import{AssetRoute as wa,ChainRoutes as Pm}from"@galacticcouncil/xc-core";var Fm=[new wa({source:{asset:V},destination:{chain:f,asset:V,fee:{amount:.01,asset:V}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Xm=[new wa({source:{asset:V},destination:{chain:w,asset:V,fee:{amount:.1,asset:V}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Ca=new Pm({chain:yt,routes:[...Fm,...Xm]});import{AssetRoute as Bm,ChainRoutes as Sm}from"@galacticcouncil/xc-core";var Dm=[new Bm({source:{asset:ze},destination:{chain:f,asset:ze,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:ze}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],ka=new Sm({chain:Ut,routes:[...Dm]});import{AssetRoute as _m,ChainRoutes as Im}from"@galacticcouncil/xc-core";var Rm=[new _m({source:{asset:Pe},destination:{chain:f,asset:Pe,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Pe}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ea=new Im({chain:Nt,routes:[...Rm]});import{AssetRoute as Lm,ChainRoutes as Hm}from"@galacticcouncil/xc-core";var Vm=[new Lm({source:{asset:Xe},destination:{chain:f,asset:Xe,fee:{amount:.2,asset:Xe}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],va=new Hm({chain:Gt,routes:[...Vm]});import{AssetRoute as Mm,ChainRoutes as Nm}from"@galacticcouncil/xc-core";var Om=[new Mm({source:{asset:We},destination:{chain:f,asset:We,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:We}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ta=new Nm({chain:Mt,routes:[...Om]});import{AssetRoute as Gm,ChainRoutes as Um}from"@galacticcouncil/xc-core";var Wm=[new Gm({source:{asset:ve,fee:{asset:ve,extra:.030555}},destination:{chain:f,asset:ve,fee:{amount:.03,asset:ve}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Pa=new Um({chain:Wt,routes:[...Wm]});import{AssetRoute as Km,ChainRoutes as qm}from"@galacticcouncil/xc-core";var jm=[new Km({source:{asset:qe},destination:{chain:f,asset:qe,fee:{amount:.205,asset:qe}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Fa=new qm({chain:Ot,routes:[...jm]});var Xa=[Ta,pa,fa,ha,ya,ba,xa,ga,Ca,Fa,ka,Ea,va,Pa];import{ChainRoutes as zm}from"@galacticcouncil/xc-core";var Jm=[],Ba=new zm({chain:bt,routes:[...Jm]});var Sa=[Ba];import{ChainRoutes as $m}from"@galacticcouncil/xc-core";var Qm=[],Da=new $m({chain:rs,routes:[...Qm]});var _a=[Da];import{AssetRoute as Ts,ChainRoutes as Ym}from"@galacticcouncil/xc-core";import{AssetRoute as YA}from"@galacticcouncil/xc-core";var ts=.0015;var Zm=new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:w,asset:E,fee:{amount:.002,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),eu=new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:Kt,asset:E,fee:{amount:.0012,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),tu=[new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:f,asset:E,fee:{amount:.04,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Ts({source:{asset:y,fee:{asset:E,extra:ts}},destination:{chain:f,asset:y,fee:{amount:.15,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ia=new Ym({chain:Qe,routes:[eu,Zm,...tu]});import{AssetRoute as Ra,ChainRoutes as su}from"@galacticcouncil/xc-core";var wn=()=>({asset:es().multiTransactionPayment().accountCurrencyMap()});var nu=[new Ra({source:{asset:h,fee:wn()},destination:{chain:Qe,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],ou=[new Ra({source:{asset:E,fee:wn()},destination:{chain:Qe,asset:E,fee:{amount:.0012,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],La=new su({chain:Kt,routes:[...nu,...ou]});var Ha=[Ia,La];var au=[...ua,...Xa,...Sa,..._a,...Ha],ru=new Map(au.map(t=>[t.chain.key,t]));import{Parachain as Ga}from"@galacticcouncil/xc-core";import{Parachain as iu,TransferValidation as Va,TransferValidationError as Ma}from"@galacticcouncil/xc-core";var Ps=class extends Va{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Ma("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Fs=class extends Va{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=n,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new Ma("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof iu)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as Na,TransferValidationError as Oa}from"@galacticcouncil/xc-core";var Xs=class extends Na{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new Te(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new Te(a).getSystemAccountBalance(n)===0n)throw new Oa("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Bs=class extends Na{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new Te(a).checkIfFrozen(n,s))throw new Oa("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Rs,TransferValidationError as ss}from"@galacticcouncil/xc-core";var cu=12,mu=1,uu=18,Ss=class extends Rs{async skipFor(e){let{destination:s}=e,n=s.chain,o=new re(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new re(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||mu,l=i.decimals||cu,u=m*Math.pow(10,l),p=await r.getAssetBalance(n,c);if(BigInt(u*1.1)>p)throw new ss("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Ds=class extends Rs{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new re(a).getAssetDepositLimit(n);if(c.locked)throw new ss("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new ss("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},_s=class extends Rs{async validate(e){let{source:s}=e,n=s.chain,a=await new re(n).getGlobalWithdrawLimit();if(a.lockdown)throw new ss("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Is=class extends Rs{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,r=new re(a),c=a.getBalanceAssetId(v),i=a.getAssetDecimals(v)||uu,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new ss("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var me={isAny:()=>!0,isHydration:t=>t instanceof Ga&&t.parachainId===2034,isHub:t=>t instanceof Ga&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},du=[new Ps(me.isAny,me.isAny),new Fs(me.isAny,me.isAny),new Xs(me.isAny,me.isHub),new Bs(me.isHub,me.isAny),new Ss(me.isAny,me.isHydration),new Is(me.isHydration,me.isAny),new Ds(me.isAny,me.isHydration),new _s(me.isHydration,me.isAny)];var Wa={};Qt(Wa,{AssethubDex:()=>kn,HydrationDex:()=>Cn});import{pool as lu,sor as fu,tx as pu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as hu}from"@galacticcouncil/common";import{Binary as yu}from"polkadot-api";import{memoize1 as bu}from"@thi.ng/memoize";var{PoolType:Ls}=lu,{TradeRouteBuilder:xu,TradeRouter:Au}=fu,{TxBuilderFactory:gu}=pu,Cn=class{chain;client;poolCtx;txBuilder;getCtx=bu(async e=>{console.log("init swap router",e,"\u2705");let s=new Au(this.poolCtx);return s.withFilter({useOnly:[Ls.Aave,Ls.Omni,Ls.Stable,Ls.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new re(this.chain),this.txBuilder=new gu(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,m=await this.getCtx(1),l=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,l),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return yu.toHex(g)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),l=await i.getBuy(a,r,c,m);return{amount:l.amountIn,route:xu.build(l.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw m}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,hu);return a/BigInt(r)}};import{encodeLocation as Ua}from"@galacticcouncil/common";var kn=class{chain;client;constructor(e){this.chain=e,this.client=new Te(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ua(o),Ua(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as Cu}from"@galacticcouncil/xc-core";import{Asset as wu}from"@galacticcouncil/xc-core";function Hs(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new wu({key:[o,s,e].join("_"),originSymbol:n})}function Ka(t){let{decimals:e,id:s}=t;return{asset:Hs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function qa(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Hs(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var En=class extends Cu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Hs(a),c=Ka(a),i=qa(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,xs(r)),this.updateChainRoute(s,Cs(r))})}};export{En as HydrationConfigService,Ya as assetsMap,sa as builders,bi as chainsMap,ea as clients,Wa as dex,ru as routesMap,na as tags,du as validations};
|
|
1
|
+
var tr=Object.defineProperty;var Yt=(t,e)=>{for(var s in e)tr(t,s,{get:e[s],enumerable:!0})};import{Asset as A}from"@galacticcouncil/xc-core";var de=new A({key:"aave",originSymbol:"AAVE"}),We=new A({key:"ajun",originSymbol:"AJUN"}),le=new A({key:"apyusd",originSymbol:"apyUSD"}),_=new A({key:"astr",originSymbol:"ASTR"}),B=new A({key:"bnc",originSymbol:"BNC"}),Ms=new A({key:"bsx",originSymbol:"BSX"}),fe=new A({key:"cfg_new",originSymbol:"CFG"}),Se=new A({key:"cru",originSymbol:"CRU"}),it=new A({key:"dai",originSymbol:"DAI"}),De=new A({...it,key:"dai_mwh"}),y=new A({key:"dot",originSymbol:"DOT"}),F=new A({key:"eth",originSymbol:"ETH"}),pe=new A({key:"ena",originSymbol:"ENA"}),tt=new A({key:"eurc",originSymbol:"EURC"}),Ke=new A({...tt,key:"eurc_mwh"}),T=new A({key:"glmr",originSymbol:"GLMR"}),z=new A({key:"hdx",originSymbol:"HDX"}),D=new A({key:"ibtc",originSymbol:"IBTC"}),R=new A({key:"intr",originSymbol:"INTR"}),ve=new A({key:"jitoSol",originSymbol:"jitoSOL"}),E=new A({key:"ksm",originSymbol:"KSM"}),he=new A({key:"ldo",originSymbol:"LDO"}),ye=new A({key:"lbtc",originSymbol:"LBTC"}),Te=new A({key:"ewt",originSymbol:"EWT"}),be=new A({key:"link",originSymbol:"LINK"}),M=new A({key:"myth",originSymbol:"MYTH"}),qe=new A({key:"neuro",originSymbol:"NEURO"}),_e=new A({key:"pen",originSymbol:"PEN"}),xe=new A({key:"paxg",originSymbol:"PAXG"}),Pe=new A({key:"prime",originSymbol:"PRIME"}),Ae=new A({key:"sky",originSymbol:"SKY"}),J=new A({key:"sol",originSymbol:"SOL"}),Bt=new A({key:"sui",originSymbol:"SUI"}),ge=new A({key:"susde",originSymbol:"sUSDe"}),je=new A({key:"susds",originSymbol:"sUSDS"}),Ie=new A({...je,key:"susds_mwh"}),we=new A({key:"tbtc",originSymbol:"tBTC"}),Ce=new A({key:"trac",originSymbol:"TRAC"}),ze=new A({key:"unq",originSymbol:"UNQ"}),h=new A({key:"usdt",originSymbol:"USDT"}),Re=new A({...h,key:"usdt_mwh"}),ct=new A({...h,key:"usdt_eth"}),x=new A({key:"usdc",originSymbol:"USDC"}),Le=new A({...x,key:"usdc_mwh"}),mt=new A({...x,key:"usdc_eth"}),Y=new A({key:"vastr",originSymbol:"vASTR"}),H=new A({key:"vdot",originSymbol:"vDOT"}),ut=new A({key:"weth",originSymbol:"WETH"}),Fe=new A({...ut,key:"weth_mwh"}),Je=new A({key:"wbtc",originSymbol:"WBTC"}),He=new A({...Je,key:"wbtc_mwh"}),ke=new A({key:"wsteth",originSymbol:"wstETH"}),dt=new A({key:"wud",originSymbol:"WUD"}),sr=[de,We,le,_,Ms,fe,Se,B,it,De,y,pe,tt,Ke,F,T,z,D,R,E,he,ye,Te,ve,be,M,qe,xe,_e,Pe,Ae,J,Bt,ge,je,Ie,Ce,we,ze,x,Le,mt,h,Re,ct,Y,H,Je,He,ut,Fe,ke,dt],nr=new Map(sr.map(t=>[t.key,t]));import{ChainEcosystem as or,EvmChain as ar,EvmBalanceType as rr}from"@galacticcouncil/xc-core";import{base as ir}from"viem/chains";var Mt=new ar({id:8453,key:"base",name:"Base",assetsData:[{asset:F,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:tt,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:rr.Erc20,ecosystem:or.Ethereum,evmChain:ir,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{[tt.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as cr,EvmChain as mr,EvmBalanceType as Xn}from"@galacticcouncil/xc-core";import{mainnet as ur}from"viem/chains";var k=new mr({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:F,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:de,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:le,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:fe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:ut,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:it,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ge,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:we,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Je,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ye,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:he,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:be,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:xe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ae,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ce,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ke,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Xn.Erc20,balanceOverrides:{[F.key]:Xn.Native},ecosystem:cr.Ethereum,evmChain:ur,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",executor:"0x84EEe8dBa37C36947397E1E11251cA9A06Fc6F8a",ntt:{[it.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[je.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[x.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[h.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Je.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[ut.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[F.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Bn=[Mt,k];import{ChainEcosystem as dr,Parachain as lr,SubstrateBalanceType as fr}from"@galacticcouncil/xc-core";var Nt=new lr({assetsData:[{asset:We,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:fr.System,ecosystem:dr.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as pr,Parachain as Sn,SubstrateBalanceType as os,SubstrateMinType as hr}from"@galacticcouncil/xc-core";var Dn={assetsData:[{asset:y,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:dt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:M,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:E,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:os.Assets,balanceOverrides:{[y.key]:os.System,[E.key]:os.ForeignAssets,[M.key]:os.ForeignAssets},min:hr.Assets,ecosystem:pr.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},w=new Sn({...Dn,key:"assethub",name:"AssetHub Polkadot"}),ht=new Sn({...Dn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as yr,Parachain as br,SubstrateBalanceType as _n}from"@galacticcouncil/xc-core";var te=new br({assetsData:[{asset:_,xcmLocation:{parents:0,interior:"Here"}},{asset:y,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:B,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:D,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:_n.Assets,balanceOverrides:{[_.key]:_n.System},ecosystem:yr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as xr,Parachain as Ar,SubstrateBalanceType as In}from"@galacticcouncil/xc-core";var gr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],I=new Ar({assetsData:[{asset:B,id:{Native:B.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:_,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:T,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:D,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:In.Tokens,balanceOverrides:{[B.key]:In.System},ecosystem:xr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:gr});import{ChainEcosystem as wr,Parachain as Cr,XcmVersion as kr,SubstrateBalanceType as Er}from"@galacticcouncil/xc-core";var Ot=new Cr({assetsData:[{asset:Se,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Er.System,ecosystem:wr.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:kr.v3});import{ChainEcosystem as Fr,EvmParachain as Xr,SubstrateBalanceType as Ln}from"@galacticcouncil/xc-core";import{defineChain as Br}from"viem";import{h160 as vr}from"@galacticcouncil/common";import{AccountId as Tr}from"polkadot-api";var{isEvmAccount:Pr,H160:Rn}=vr,as=class{async toH160(e,s){if(Pr(e))return Rn.fromAccount(e);let n=Rn.fromSS58(e);if(s&&await this.isBound(s,n,e))return n;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,s,n){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(s);if(!a)return!1;let r=Tr().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(Buffer.from(r.subarray(20)))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Sr=new as,Ns=["https://hydration-rpc.n.dwellir.com","https://rpc.kril.hydration.cloud","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Os=["wss://hydration-rpc.n.dwellir.com","wss://rpc.kril.hydration.cloud","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],Dr=Br({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Ns,webSocket:Os},default:{http:Ns,webSocket:Os}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new Xr({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:de,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:We,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:B,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:fe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Se,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:y,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:De,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:F,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:le,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:pe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:D,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Pe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Te,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:he,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:E,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:ye,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:be,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:xe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:M,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:qe,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:_e,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ae,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:J,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Bt,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ge,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:je,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ie,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ce,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:ze,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:x,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Le,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ke,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:mt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Re,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:ct,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Y,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Je,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:He,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:ut,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Fe,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:dt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Ln.Tokens,balanceOverrides:{[z.key]:Ln.System},ecosystem:Fr.Polkadot,evmChain:Dr,evmResolver:Sr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[De.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Ke.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[ve.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Pe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[J.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Ie.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Le.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Re.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[He.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Os,rpcs:Ns});import{ChainEcosystem as _r,Parachain as Ir,XcmVersion as Rr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var Me=new Ir({assetsData:[{asset:R,decimals:10,id:{Token:R.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:D,decimals:8,id:{Token:D.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:y,decimals:10,id:{Token:y.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:z,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:H,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Lr.Tokens,ecosystem:_r.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Rr.v3});import{ChainEcosystem as Hr,EvmParachain as Vr,EvmBalanceType as Mr,SubstrateBalanceType as Nr}from"@galacticcouncil/xc-core";import{defineChain as Or}from"viem";var Gr=Or({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}),G=new Vr({assetsData:[{asset:T,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:De,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ke,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:J,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ve,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Pe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ie,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Bt,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Le,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Re,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:He,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Fe,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:y,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:z,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Mr.Erc20,balanceOverrides:{[T.key]:Nr.System},ecosystem:Hr.Polkadot,evmChain:Gr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as Ur,Parachain as Wr,SubstrateBalanceType as Kr}from"@galacticcouncil/xc-core";var yt=new Wr({assetsData:[{asset:M,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Kr.System,ecosystem:Ur.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as qr,Parachain as jr,SubstrateBalanceType as zr}from"@galacticcouncil/xc-core";var Gt=new jr({assetsData:[{asset:qe,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:zr.System,ecosystem:qr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as Jr,Parachain as $r,XcmVersion as Yr,SubstrateBalanceType as Qr}from"@galacticcouncil/xc-core";var Ut=new $r({assetsData:[{asset:_e,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Qr.System,ecosystem:Jr.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Yr.v3});import{ChainEcosystem as Zr,Parachain as ei,SubstrateBalanceType as ti}from"@galacticcouncil/xc-core";var si={assetsData:[{asset:y,xcmLocation:{parents:0,interior:"Here"}}],balance:ti.System,ecosystem:Zr.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"},Hn=new ei({...si,key:"polkadot"});import{ChainEcosystem as ni,Parachain as oi,SubstrateBalanceType as ai}from"@galacticcouncil/xc-core";var Wt=new oi({assetsData:[{asset:ze,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ai.System,ecosystem:ni.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as ri,Parachain as ii,XcmVersion as ci,SubstrateBalanceType as mi}from"@galacticcouncil/xc-core";var Kt=new ii({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:mi.System,ecosystem:ri.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:ci.v3});var Vn=[Nt,w,ht,te,I,Ot,f,Gt,Me,G,yt,Ut,Hn,Wt,Kt];import{ChainEcosystem as ui,SolanaChain as di,SolanaBalanceType as Mn}from"@galacticcouncil/xc-core";var bt=new di({id:101,key:"solana",name:"Solana",assetsData:[{asset:J,decimals:9},{asset:ve,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Pe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Mn.Token,balanceOverrides:{[J.key]:Mn.Native},ecosystem:ui.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",ntt:{[J.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[ve.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Pe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Nn=[bt];import{ChainEcosystem as li,SuiChain as fi,SuiBalanceType as pi}from"@galacticcouncil/xc-core";var rs=new fi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Bt,decimals:9}],balance:pi.Native,ecosystem:li.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var On=[rs];import{ChainEcosystem as hi,Parachain as yi,SubstrateBalanceType as Gn,SubstrateMinType as bi}from"@galacticcouncil/xc-core";var $e=new yi({assetsData:[{asset:E,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Gn.Assets,balanceOverrides:{[E.key]:Gn.System},min:bi.Assets,ecosystem:hi.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as xi,Parachain as Ai,SubstrateBalanceType as gi}from"@galacticcouncil/xc-core";var qt=new Ai({assetsData:[{asset:Ms,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:E,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:gi.Tokens,ecosystem:xi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Un=[$e,qt];var wi=[...Bn,...Vn,...Nn,...On,...Un],Ci=new Map(wi.map(t=>[t.key,t]));import{ChainRoutes as $0}from"@galacticcouncil/xc-core";import{AssetRoute as ma}from"@galacticcouncil/xc-core";var ia={};Yt(ia,{ContractBuilder:()=>K,ExtrinsicBuilder:()=>d,ExtrinsicDecorator:()=>lt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>es,ProgramBuilder:()=>bn,XcmTransferType:()=>Ve,XcmVersion:()=>ot});import{Abi as Wn,ContractConfig as ki,Precompile as Ei}from"@galacticcouncil/xc-core";import{encodeFunctionData as vi}from"viem";var Ti=t=>({build:async e=>{let s=await Promise.all(t.map(r=>r.build(e))),n=s.map(r=>r.address),o=[0,0],a=s.map(r=>vi({abi:Wn[r.module],functionName:r.func,args:r.args}));return new ki({abi:Wn.Batch,address:Ei.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Kn=()=>({batchAll:Ti});import{Abi as Pi,ContractConfig as Fi,Wormhole as Xi}from"@galacticcouncil/xc-core";function Q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function St(t){return typeof t=="object"?Object.values(t)[0]:t}function qn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Xi.fromChain(r),i=r.getAssetId(n);return new Fi({abi:Pi.Erc20,address:St(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as Bi,Basejump as Si,ContractConfig as Di}from"@galacticcouncil/xc-core";import{h160 as _i}from"@galacticcouncil/common";import{AccountId as Ii}from"polkadot-api";import{toHex as Ri}from"@polkadot-api/utils";var{H160:Li,isEvmAddress:Hi}=_i;function Vi(t){let e=Hi(t)?Li.toAccount(t):t;return Ri(Ii().enc(e))}var Mi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Si.fromChain(a),c=a.getAssetId(n);return new Di({abi:Bi.Basejump,address:r.getAddress(),args:[St(c),s,Vi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),jn=()=>({bridgeViaWormhole:Mi});import{addr as Ni,Abi as zn,ContractConfig as Jn,Precompile as $n}from"@galacticcouncil/xc-core";import{big as Oi}from"@galacticcouncil/common";var{Ss58Addr:Yn}=Ni;function Gi(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 Gs(t,e){let s=t.getAssetId(e);return typeof s=="string"?Gi(s):s}function Qn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Gs(o.chain,s);return new Jn({abi:zn.PolkadotXcm,address:$n.PolkadotXcm,args:[n.chain.parachainId,Yn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Gs(o.chain,s),r=Gs(o.chain,o.destinationFeeBalance),c=Oi.toBigInt(n.fee.amount,n.fee.decimals);return new Jn({abi:zn.PolkadotXcm,address:$n.PolkadotXcm,args:[n.chain.parachainId,Yn.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ji,Abi as ao,ContractConfig as ro,Snowbridge as io}from"@galacticcouncil/xc-core";import{XcmV5Junctions as $i,XcmV5Junction as Yi,XcmVersionedXcm as Qi,XcmVersionedLocation as Zi}from"@galacticcouncil/descriptors";import{Blake2256 as ec}from"@polkadot-api/substrate-bindings";import{toHex as zs}from"@polkadot-api/utils";import{encodeAbiParameters as tc}from"viem";import{codec as Ui}from"@galacticcouncil/xc-core";var is=null;async function Zn(){if(is)return is;let t=await Ui.getHubCodecs();return is={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},is}import{multiloc as Ki}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as Ee,XcmV5AssetFilter as oe,XcmV5Instruction as S,XcmV5Junctions as At,XcmV5Junction as nt,XcmV5NetworkId as Us,XcmV5WildAsset as st,XcmVersionedXcm as qi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as ji}from"@polkadot-api/substrate-bindings";import{toHex as zi}from"@polkadot-api/utils";import{XcmV3Junctions as Wi}from"@galacticcouncil/descriptors";var Z=340282366920938463463374607431768211455n,Ye="0x0000000000000000000000000000000000000000000000000000000000000000",$={parents:1,interior:Wi.Here()},eo=0,xt=1e3,cs=1002,Ne=1,Dt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",to="0x0000000000000000000000000000000000000000000000000000000000000000",so="0x0000000000000000000000000000000000000000";var Ws="0x0000000000000000000000000000000000000000",jt=t=>({parents:2,interior:At.X1(nt.GlobalConsensus(Us.Ethereum({chain_id:BigInt(t)})))}),Ks=(t,e)=>({parents:2,interior:At.X2([nt.GlobalConsensus(Us.Ethereum({chain_id:BigInt(t)})),nt.AccountKey20({key:e,network:void 0})])});function no(t,e){let s=jt(t),n=Ks(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[S.ReserveAssetDeposited([{id:s,fun:Ee.Fungible(o)},{id:n,fun:Ee.Fungible(o)}]),S.ExchangeAsset({give:oe.Wild(st.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:$,fun:Ee.Fungible(a)}],maximal:!1}),S.PayFees({asset:{id:$,fun:Ee.Fungible(a)}})],c=qs({ethChainId:t,destinationParaId:e,tokenAddress:"0x"+"00".repeat(20),beneficiaryHex:"0x"+"00".repeat(32),tokenAmount:o,hydrationDotFee:a,topic:"0x"+"00".repeat(32)});return[...r,...c]}function qs(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=jt(e),m=n===Ws?i:Ks(e,n),u=o.length===42&&o.startsWith("0x")?nt.AccountKey20({key:o,network:void 0}):nt.AccountId32({id:o,network:void 0}),p={parents:0,interior:At.X1(u)};return[S.SetAppendix([S.RefundSurplus(),S.DepositAsset({assets:oe.Wild(st.All()),beneficiary:p})]),S.ExchangeAsset({give:oe.Wild(st.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:$,fun:Ee.Fungible(r)}],maximal:!1}),S.InitiateTransfer({destination:{parents:1,interior:At.X1(nt.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:oe.Definite([{id:$,fun:Ee.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:oe.Definite([{id:m,fun:Ee.Fungible(a)}])}],remote_xcm:[S.DepositAsset({assets:oe.Wild(st.AllCounted(3)),beneficiary:p}),S.SetTopic(c)]}),S.RefundSurplus(),S.DepositAsset({assets:oe.Wild(st.All()),beneficiary:p}),S.SetTopic(c)]}function js(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=jt(Ne),u=e===Ws?l:Ks(Ne,e),p={parents:0,interior:At.X1(nt.AccountId32({id:s,network:void 0}))},b={parents:0,interior:At.X1(nt.AccountKey20({key:n,network:void 0}))},g={parents:2,interior:At.X1(nt.GlobalConsensus(Us.Ethereum({chain_id:BigInt(Ne)})))},v=[S.DepositAsset({assets:oe.Wild(st.AllCounted(3)),beneficiary:b}),S.SetTopic(m)],P=[S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),S.RefundSurplus(),S.DepositAsset({assets:oe.Wild(st.All()),beneficiary:p})])];P.push(S.ExchangeAsset({give:oe.Definite([{id:$,fun:Ee.Fungible(c)}]),want:[{id:l,fun:Ee.Fungible(i)}],maximal:!1}));let X=[{type:"ReserveWithdraw",value:oe.Wild(st.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],L=oe.Definite([{id:l,fun:Ee.Fungible(i)}]);P.push(S.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:L},preserve_origin:!0,assets:X,remote_xcm:v}),S.SetTopic(m));let j=a+r+c,ee=[{id:$,fun:Ee.Fungible(j)},{id:u,fun:Ee.Fungible(o)}],Be=[{id:$,fun:Ee.Fungible(a)}],et={type:"ReserveWithdraw",value:oe.Wild(st.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},Ue=[{type:"ReserveWithdraw",value:oe.Definite([{id:$,fun:Ee.Fungible(c)}])},et];return[S.WithdrawAsset(ee),S.PayFees({asset:Be[0]}),S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),S.RefundSurplus(),S.DepositAsset({assets:oe.Wild(st.All()),beneficiary:p})]),S.InitiateTransfer({destination:{parents:1,interior:At.X1(nt.Parachain(xt))},remote_fees:{type:"ReserveWithdraw",value:oe.Definite([{id:$,fun:Ee.Fungible(r)}])},preserve_origin:!0,assets:Ue,remote_xcm:P}),S.SetTopic(m)]}function oo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=ji(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=zi(m.publicKey),u=i.getAssetXcmLocation(n),p=u?Ki.findNestedKey(u,"key"):void 0,b=p?p.key:Ws,g=r.feeBreakdown,v=g.sourceExecutionFee??0n,P=g.dotRemoteFee??0n,X=g.dotToEtherSwapAmount??0n,L=g.etherFeeAmount??0n,ee=js({tokenAddress:b,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:v,dotRemoteFee:P,dotToEtherSwapAmount:X,etherFeeAmount:L,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return qi.V5(ee)}var{Ss58Addr:co}=Ji,sc="0x0000000000000000000000000000000000000000",nc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=io.fromChain(c),l=c.getAssetId(n),u=St(l),p=n.originSymbol==="ETH",b=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,v=r.feeBreakdown.hydrationDotFee,P=r.fee.amount,X=co.getPubKey(e),L=new TextEncoder().encode(`${i.parachainId}${o}${u}${X}${s}${Date.now()}`),j=zs(ec(L)),ee=qs({ethChainId:Ne,destinationParaId:i.parachainId,tokenAddress:p?sc:u,beneficiaryHex:X,tokenAmount:s,hydrationDotFee:v,topic:j}),Be=await Zn(),et=zs(Be.message.enc(Qi.V5(ee))),Ue=[];p||Ue.push(tc([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,s]));let Vt=Be.location.enc(Zi.V5({parents:0,interior:$i.X1(Yi.AccountId32({id:X,network:void 0}))})),Xt=zs(Vt.slice(1));return new ro({abi:ao.Snowbridge,address:m.getGateway(),args:[et,Ue,Xt,b,g],value:p?P+s:P,func:"v2_sendMessage",module:"Snowbridge"})}}),oc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=io.fromChain(r),m=r.getAssetId(n),l=St(m),u=n.originSymbol==="ETH",p=a.feeBreakdown.bridgeFeeInDot,b=a.fee.amount;return new ro({abi:ao.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,co.getPubKey(e)],p,s],value:u?b+s:b,func:"sendToken",module:"Snowbridge"})}}),mo=()=>({v2SendMessage:nc,sendToken:oc});import{Abi as uo,ContractConfig as ac,EvmBalanceType as rc,EvmParachain as ic,Ntt as cc,Wormhole as mc}from"@galacticcouncil/xc-core";var uc="0x00",lo=8,dc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=cc.fromChain(r,n),m=mc.fromChain(c),l=e;c instanceof ic&&(l=await c.getDerivatedAddress(e));let u=r,p=await u.evmClient.getProvider().readContract({abi:uo.NttManager,address:i.manager,args:[m.getWormholeId(),uc],functionName:"quoteDeliveryPrice"}),b=u.getAssetDecimals(n)??0,g=s;if(b>lo){let v=10n**BigInt(b-lo);g=s-s%v}return new ac({abi:uo.NttManager,address:i.manager,args:[g,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,wrapNative:u.getBalanceType(n)===rc.Native,value:p[1],func:"transfer",module:"NttManager"})}}),fo=()=>({transfer:dc});function po(){return{Ntt:fo}}function K(){return{Batch:Kn,Erc20:qn,Basejump:jn,PolkadotXcm:Qn,Snowbridge:mo,Wormhole:po}}import{encodeLocation as ho}from"@galacticcouncil/common";import{ExtrinsicConfig as lc}from"@galacticcouncil/xc-core";var yo="AssetConversion",fc=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,m=ho(i.getAssetXcmLocation(r)),l=ho(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,p=c.amount;return new lc({module:yo,func:e,getTx:b=>b.getUnsafeApi().tx[yo][e]({path:[m,l],amount_out:p,amount_in_max:u,send_to:s,keep_alive:!0})})}}},bo=()=>({swapTokensForExactTokens:fc});import{hub as pc,MultiAddress as hc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as yc}from"@galacticcouncil/xc-core";var bc="Assets",xc=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let a=o.chain,{fee:r}=o,c=s>r.amount?s-r.amount:s,i=a.getMetadataAssetId(e);return new yc({module:bc,func:t,getTx:m=>m.getTypedApi(pc).tx.Assets.transfer({id:Number(i),target:hc.Id(n),amount:c})})}}},xo=()=>({transfer:xc});import{ExtrinsicConfig as Ac}from"@galacticcouncil/xc-core";var Ao="Balances",gc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Ac({module:Ao,func:e,getTx:n=>n.getUnsafeApi().tx[Ao][e]({dest:s,keep_alive:t})})}},go=()=>({transferAll:gc});import{hydration as wc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";var kc="Router",Ec=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,m=i.getMetadataAssetId(a),l=i.getMetadataAssetId(r),u=r.amount,p=a.amount+a.amount*BigInt(t.slippage)/100n;return new Cc({module:kc,func:"buy",getTx:b=>b.getTypedApi(wc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:u,max_amount_in:p,route:c})})}}),wo=()=>({buy:Ec});import{ExtrinsicConfig as vc}from"@galacticcouncil/xc-core";var Co="Utility",Tc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new vc({module:Co,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[Co][e]({calls:a})}})}}},ko=()=>({batchAll:Tc});import{Abi as Pc,ExtrinsicConfig as Fc}from"@galacticcouncil/xc-core";import{Binary as Xc}from"polkadot-api";import{encodeFunctionData as Bc}from"viem";var ot=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(ot||{}),Ve=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Ve||{});var Eo="EthereumXcm",Sc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=Bc({abi:Pc[n.module],functionName:n.func,args:n.args});return new Fc({module:Eo,func:e,getTx:r=>r.getUnsafeApi().tx[Eo][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:n.address},value:[0n,0n,0n,0n],input:Xc.fromHex(a),access_list:void 0}}})})}}},Js=()=>({transact:Sc});import{ExtrinsicConfig as Et}from"@galacticcouncil/xc-core";import{big as hs}from"@galacticcouncil/common";import{multiloc as Ho,ChainEcosystem as cn}from"@galacticcouncil/xc-core";import{XcmV3Junctions as ae,XcmV3Junction as _t,XcmV3JunctionNetworkId as Ro,XcmV3MultiassetFungibility as gt,XcmV4Instruction as V,XcmV4AssetAssetFilter as wt,XcmV4AssetWildAsset as Ct,XcmV3WeightLimit as ps,XcmV2MultiassetWildFungibility as t0,XcmV2OriginKind as s0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Kc,XcmV3MultiassetFungibility as Ys,XcmV3WeightLimit as qc,XcmV4AssetAssetFilter as jc,XcmV4AssetWildAsset as zc,XcmV4Instruction as Qt}from"@galacticcouncil/descriptors";import{acc as Dc}from"@galacticcouncil/common";import{XcmV3Junction as vo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as _c}from"@polkadot-api/substrate-bindings";import{toHex as Ic}from"@polkadot-api/utils";function q(t){if(t.length===42&&t.startsWith("0x"))return vo.AccountKey20({key:t,network:void 0});let s=_c(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return vo.AccountId32({id:Ic(s.publicKey),network:void 0})}function zt(t,e,s){return Dc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as To}from"@galacticcouncil/xc-core";function Po(t,e){let s=To.findNestedKey(t,"GeneralIndex"),n=To.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ds={};Yt(ds,{ETHER_TOKEN_ADDRESS:()=>$s,erc20Location:()=>Hc,erc20LocationReanchored:()=>Vc,ethereumLocation:()=>Xo,parachainLocation:()=>Lc});import{XcmV3Junctions as ms,XcmV3Junction as us,XcmV3JunctionNetworkId as Rc}from"@galacticcouncil/descriptors";var $s="0x0000000000000000000000000000000000000000",Fo=t=>us.GlobalConsensus(Rc.Ethereum({chain_id:BigInt(t)}));function Xo(t){return{parents:2,interior:ms.X1(Fo(t))}}function Lc(t){return{parents:1,interior:ms.X1(us.Parachain(t))}}function Hc(t,e){return e===$s?Xo(t):{parents:2,interior:ms.X2([Fo(t),us.AccountKey20({key:e})])}}function Vc(t){return t===$s?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ms.X1(us.AccountKey20({key:t}))}}import{encodeLocation as Bo}from"@galacticcouncil/common";import{multiloc as Mc}from"@galacticcouncil/xc-core";function U(t,e){return Nc(e)>=4?Bo(t):Oc(t)}function Nc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Oc(t){return{type:"Concrete",value:Bo(t)}}var Gc=1e3;function Uc(t){let{parents:e,interior:s}=t;return e===1&&s==="Here"?!0:e===2&&s&&s!=="Here"?Object.values(s).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function Wc(t){if(t)return Uc(t)?Gc:Mc.findParachain(t)}function So(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Wc(o),r=n?.parachainId??s.parachainId;if(a&&r!==a)throw new Error(n?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${n.name} (${n.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}function ls(t,e){let s="V4",n=U(N(e,t),s),o=Ye;return[Qt.ReserveAssetDeposited([{id:$,fun:Ys.Fungible(Z)},{id:n,fun:Ys.Fungible(Z)}]),Qt.ClearOrigin(),Qt.BuyExecution({fees:{id:$,fun:Ys.Fungible(Z)},weight_limit:qc.Unlimited()}),Qt.DepositAsset({assets:jc.Wild(zc.AllCounted(2)),beneficiary:{parents:0,interior:Kc.X1(q(Dt))}}),Qt.SetTopic(o)]}import{XcmV4Instruction as Qs,XcmV3MultiassetFungibility as Zs,XcmV3WeightLimit as Jc}from"@galacticcouncil/descriptors";function en(t,e){let s="V4",n=U(N(e,t),s),o=fs("V4",q(so),q(Dt),n,Ye);return[Qs.WithdrawAsset([{id:$,fun:Zs.Fungible(Z)},{id:n,fun:Zs.Fungible(Z)}]),Qs.ClearOrigin(),Qs.BuyExecution({fees:{id:$,fun:Zs.Fungible(Z)},weight_limit:Jc.Unlimited()}),...o.value]}import{XcmV3Junctions as tn,XcmV3Junction as $c,XcmV3MultiassetFungibility as Zt,XcmV3WeightLimit as sn,XcmV4AssetAssetFilter as nn,XcmV4AssetWildAsset as on,XcmV4Instruction as Oe}from"@galacticcouncil/descriptors";function Do(t,e){let s="V4",n=U(N(e,t),s),o=Ye;return[Oe.WithdrawAsset([{id:n,fun:Zt.Fungible(Z)}]),Oe.ClearOrigin(),Oe.BuyExecution({fees:{id:n,fun:Zt.Fungible(Z)},weight_limit:sn.Unlimited()}),Oe.DepositAsset({assets:nn.Wild(on.AllCounted(1)),beneficiary:{parents:0,interior:tn.X1(q(Dt))}}),Oe.SetTopic(o)]}function an(t,e){let s="V4",n=U(N(e,t),s);return[Oe.BuyExecution({fees:{id:n,fun:Zt.Fungible(Z)},weight_limit:sn.Unlimited()}),Oe.DepositAsset({assets:nn.Wild(on.AllCounted(1)),beneficiary:{parents:0,interior:tn.X1(q(Dt))}})]}function _o(t,e,s){let n="V4",o=U(N(e,t),n),a=Ye,r=an(t,s);return[Oe.WithdrawAsset([{id:o,fun:Zt.Fungible(Z)}]),Oe.ClearOrigin(),Oe.BuyExecution({fees:{id:o,fun:Zt.Fungible(Z)},weight_limit:sn.Unlimited()}),Oe.DepositReserveAsset({assets:nn.Wild(on.AllCounted(1)),dest:{parents:1,interior:tn.X1($c.Parachain(s.parachainId))},xcm:r}),Oe.SetTopic(a)]}import{XcmV3MultiassetFungibility as rn,XcmV5AssetFilter as Yc,XcmV5Instruction as Jt,XcmV5Junctions as Qc,XcmV5Junction as Zc,XcmV5WildAsset as e0}from"@galacticcouncil/descriptors";function Io(t,e){let s="V5",n=U(N(e,t),s),o={parents:0,interior:Qc.X1(Zc.AccountId32({id:to,network:void 0}))};return[Jt.ReserveAssetDeposited([{id:$,fun:rn.Fungible(Z)}]),Jt.PayFees({asset:{id:$,fun:rn.Fungible(Z)}}),Jt.ReserveAssetDeposited([{id:n,fun:rn.Fungible(Z)}]),Jt.ClearOrigin(),Jt.DepositAsset({assets:Yc.Wild(e0.AllCounted(3)),beneficiary:o}),Jt.SetTopic(Ye)]}var Lo=[cn.Polkadot,cn.Kusama],n0={parents:1,interior:ae.X1(_t.Parachain(1e3))},o0=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Vo=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Lo.includes(t.ecosystem)&&Lo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Mo=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},at=(t,e,s)=>{if(Vo(e,s))return{type:t,value:mn(s.ecosystem,s.parachainId)};if(s.parachainId===eo)return{type:t,value:{parents:1,interior:ae.Here()}};let n=s.key==="ethereum"?xt:s.parachainId;return{type:t,value:{parents:1,interior:ae.X1(_t.Parachain(n))}}},a0=t=>t===cn.Kusama?Ro.Kusama():Ro.Polkadot(),mn=(t,e)=>({parents:2,interior:ae.X2([_t.GlobalConsensus(a0(t)),_t.Parachain(e)])}),No=(t,e,s,n)=>{if(Vo(e,s)){if(e.parachainId!==xt){let o=Ho.findGlobalConsensus(N(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:ae.X1(_t.Parachain(xt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==xt)return{dest:{type:t,value:mn(s.ecosystem,xt)},mode:"onward"}}},It=(t,e)=>({type:t,value:{parents:0,interior:ae.X1(e)}}),un=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:o0(s)?n0:s}}:{type:e},kt=(t,e)=>({id:t,fun:gt.Fungible(e)}),Oo=(t,e,s)=>({type:t,value:[V.DepositAsset({assets:wt.Wild(Ct.AllCounted(s)),beneficiary:{parents:0,interior:ae.X1(e)}})]}),fs=(t,e,s,n,o)=>{let a=o;return{type:t,value:[V.SetAppendix([V.DepositAsset({assets:wt.Wild(Ct.All()),beneficiary:{parents:0,interior:ae.X1(s)}})]),V.InitiateReserveWithdraw({assets:wt.Wild(Ct.AllOf({id:n,fun:t0.Fungible()})),reserve:ds.ethereumLocation(Ne),xcm:[V.BuyExecution({fees:{id:r0(n),fun:gt.Fungible(1n)},weight_limit:ps.Unlimited()}),V.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:ae.X1(e)}}),V.SetTopic(a)]}),V.SetTopic(a)]}},Go=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:ae.X1(_t.Parachain(s.parachainId))}:mn(s.ecosystem,s.parachainId),c={parents:0,interior:ae.X1(e)},i=wt.Wild(Ct.AllCounted(1)),m=[V.BuyExecution({fees:{id:o,fun:gt.Fungible(a)},weight_limit:ps.Unlimited()}),V.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?V.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):V.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[V.SetAppendix([V.DepositAsset({assets:wt.Wild(Ct.All()),beneficiary:c})]),l]}},r0=t=>{let e=Ho.findNestedKey(t,"key");return e?{parents:0,interior:ae.X1(_t.AccountKey20({key:e.key}))}:{parents:0,interior:ae.Here()}},Uo=(t,e,s,n,o,a)=>({type:t,value:[V.WithdrawAsset([{id:s,fun:gt.Fungible(n)}]),V.BuyExecution({fees:{id:s,fun:gt.Fungible(n)},weight_limit:ps.Unlimited()}),V.Transact({origin_kind:s0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),V.RefundSurplus(),V.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:ae.X1(e)}})]}),Wo=(t,e,s,n,o,a)=>({type:t,value:[V.WithdrawAsset([{id:s,fun:gt.Fungible(o)}]),V.BuyExecution({fees:{id:s,fun:gt.Fungible(o)},weight_limit:ps.Unlimited()}),V.TransferAsset({assets:[{id:s,fun:gt.Fungible(n)}],beneficiary:{parents:0,interior:ae.X1(a)}}),V.RefundSurplus(),V.DepositAsset({assets:wt.Wild(Ct.AllCounted(1)),beneficiary:{parents:0,interior:ae.X1(e)}})]});var re="PolkadotXcm",i0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=N(r,s),l=N(r,n.fee),u=U(m,i),p=U(l,i),b=kt(u,e),g=kt(p,n.fee.amount),v="limited_reserve_transfer_assets";return new Et({module:re,func:v,getTx:P=>{let X=P.getUnsafeApi().tx[re][v];return s.key===n.fee.key?X({dest:at(i,r,c),beneficiary:It(i,a),assets:{type:i,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Po(m,l)?X({dest:at(i,r,c),beneficiary:It(i,a),assets:{type:i,value:[g,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):X({dest:at(i,r,c),beneficiary:It(i,a),assets:{type:i,value:[b,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),c0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=U(N(r,s),i),l=kt(m,e),u=at(i,r,c),p=It(i,a),b={type:i,value:[l]},g="limited_teleport_assets";return new Et({module:re,func:g,getTx:v=>v.getUnsafeApi().tx[re][g]({dest:u,beneficiary:p,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),m0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=U(N(r,s),i),l=kt(m,e),u=at(i,r,c),p=It(i,a),b={type:i,value:[l]},g="reserve_transfer_assets";return new Et({module:re,func:g,getTx:v=>v.getUnsafeApi().tx[re][g]({dest:u,beneficiary:p,assets:b,fee_asset_item:0})})}}),u0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",m=U(N(r,s),i),l=kt(m,e),u=at(i,r,c),p=It(i,a),b={type:i,value:[l]},g="transfer_assets";return new Et({module:re,func:g,getTx:v=>v.getUnsafeApi().tx[re][g]({dest:u,beneficiary:p,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),d0=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let m="V4",l=c.chain,u=o.chain,p=o.fee.amount,b=o.fee;i&&(u=i.chain,p=hs.toBigInt(i.fee.amount,i.fee.decimals),b=i.fee);let g=q(r),v=i||u.usesCexForwarding?zt(l,r,u):e,P=q(v),{transferType:X}=t,L=U(N(l,s),m),j=U(N(l,b),m),ee=kt(L,n),Be=kt(j,p),et=s.isEqual(b),Ue=No(m,l,u,s),Vt=Ue?.dest??at(m,l,u),Xt={type:m,value:et?[ee]:[Be,ee]},Pn=un(m,X,L),Qa={type:m,value:et?L:j},Za=un(m,X,j),ns;if(Mo(L)&&o.chain.isEvmChain())ns=fs(m,P,g,L,a);else if(Ue){let Vs=hs.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),er=U(N(u,s),m);ns=Go(m,P,u,Ue.mode,er,Vs)}else ns=Oo(m,P,Xt.value.length);let Fn="transfer_assets_using_type_and_then";return new Et({module:re,func:Fn,getTx:Vs=>Vs.getUnsafeApi().tx[re][Fn]({dest:Vt,assets:Xt,assets_transfer_type:Pn,remote_fees_id:Qa,fees_transfer_type:Za,custom_xcm_on_dest:ns,weight_limit:{type:"Unlimited"}})})}}),l0=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,m=zt(c,n,i),l=q(m),{fee:u}=a,p=U(N(i,u),r),b=hs.toBigInt(e.fee,u.decimals);return new Et({module:re,func:t,getTx:g=>g.getUnsafeApi().tx[re][t]({dest:at(r,c,i),message:Uo(r,l,p,b,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,m="V4",l=c.chain,u=i.chain,p=zt(l,r,u),b=q(p),g=q(o),v=U(N(u,a),m),{fee:P}=i,X=hs.toBigInt(e.fee,P.decimals),L=n>P.amount?n-(P.amount+X):n;return new Et({module:re,func:t,getTx:j=>j.getUnsafeApi().tx[re][t]({dest:at(m,l,u),message:Wo(m,b,v,L,X,g)})})}})}};function f0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Et({module:re,func:a,getTx:r=>r.getUnsafeApi().tx[re][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(oo)}}var dn=()=>({limitedReserveTransferAssets:i0,limitedTeleportAssets:c0,reserveTransferAssets:m0,transferAssets:u0,transferAssetsUsingTypeAndThen:d0,execute:f0,send:l0});import{ExtrinsicConfig as h0}from"@galacticcouncil/xc-core";import{encodeAssetId as y0}from"@galacticcouncil/common";import{XcmV3Junctions as Ko,XcmV3Junction as p0}from"@galacticcouncil/descriptors";var qo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ko.X1(s)}}:{type:t,value:{parents:1,interior:Ko.X2([p0.Parachain(e.parachainId),s])}};var jo="XTokens",b0=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",m=c.usesCexForwarding?zt(r,o,c):t,l=q(m),u=r.getAssetId(s),p=y0(u),b="transfer";return new h0({module:jo,func:b,getTx:g=>g.getUnsafeApi().tx[jo][b]({currency_id:p,amount:e,dest:qo(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),ln=()=>({transfer:b0});function d(){return{assetConversion:bo,assets:xo,balances:go,ethereumXcm:Js,polkadotXcm:dn,router:wo,utility:ko,xTokens:ln}}function lt(t,e){return{prior:function(s){return{build:async n=>t(n)?d().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?d().utility().batchAll([e,...s]).build(n):d().utility().batchAll([...s]).build(n)}}}}import{Abi as na,Snowbridge as F0,Basejump as X0}from"@galacticcouncil/xc-core";var zo=80000n,Jo=120000n,$o=100000n,Yo=2000000n,fn=15000000000000n;var sa={};Yt(sa,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>ea,AssethubClient:()=>Xe,BaseClient:()=>Ge,HydrationClient:()=>ie,getAllAssetDepositLimits:()=>hn,getAssetDepositLimit:()=>pn,getGlobalWithdrawLimit:()=>yn});import{encodeLocation as Qo}from"@galacticcouncil/common";import{hub as x0,XcmVersionedAssetId as Zo}from"@galacticcouncil/descriptors";var Ge=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??x0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let n=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=Qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Zo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!n.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=Qo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Zo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as ys,XcmV5Junction as A0,XcmVersionedLocation as g0,XcmVersionedXcm as w0,XcmVersionedAssetId as C0}from"@galacticcouncil/descriptors";import{encodeLocation as k0}from"@galacticcouncil/common";import{Twox128 as E0,u128 as v0}from"@polkadot-api/substrate-bindings";import{toHex as T0}from"@polkadot-api/utils";var Xe=class extends Ge{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=k0(n);if(s===0)return!0;let a=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return a&&a.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getBridgeDeliveryFee(e={defaultFee:150000000000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFeeV2:",e.defaultFee)}async getBridgeDeliveryFeeV1(e={defaultFee:2750872500000n}){return this.readBridgeBaseFee(":BridgeHubEthereumBaseFee:",e.defaultFee)}async readBridgeBaseFee(e,s){let n=new TextEncoder().encode(e),o=T0(E0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=v0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=g0.V5({parents:1,interior:ys.X1(A0.Parachain(s))}),o=C0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,w0.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let m=i.id;return m&&m.parents&&m.parents===1&&m.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,n,s,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,s){let n={parents:1,interior:ys.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(n,e,s,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as P0}from"@galacticcouncil/descriptors";var ea=14400;function ta(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,m=!1,l,u,p;s&&(s.type==="Locked"?(l=s.value,m=o<s.value):(u=s.value[0],p=s.value[1]));let b=n?.type==="Local"?"Local":"External",g=!m&&u!==void 0&&u+ea<=o,v=null;if(r!==null)if(m)v=0n;else if(g)v=r;else{let P=p??a,X=a>P?a-P:0n;v=r>X?r-X:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:u,baselineIssuance:p,currentIssuance:a,headroom:v,category:b,periodExpired:g}}async function pn(t,e){let s=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[n,o,a,r,c]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),s]);return ta(e,n,o,a,r,c)}async function hn(t){let[e,s,n,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(s.map(u=>[u.keyArgs[0],u.value])),i=new Map(n.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),l=new Map;for(let u of e){let p=u.keyArgs[0],b=u.value;if(b?.xcm_rate_limit==null)continue;let g=p===0?a:m.get(p)??0n,v=ta(p,b,c.get(p),i.get(p),o,g);l.set(p.toString(),v)}return l}async function yn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:l}=e,u=c;if(!r&&l>0n){let b=o>i?o-i:0n;if(b>0n){let g=b>l?l:b,v=c*g/l;u=c>v?c-v:0n}}let p=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:l,used:u,lastUpdateMs:i,headroom:p,lockdown:r,lockdownUntilMs:a}}var ie=class extends Ge{constructor(e){super(e,P0)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=n;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let s=typeof e=="number"?e:Number(this.chain.getAssetId(e));return pn(this.api(),s)}getAllAssetDepositLimits(){return hn(this.api())}getGlobalWithdrawLimit(){return yn(this.api())}};function B0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ie(n),a=new Xe(t.hub),r=ls(e,n),c=Io(e,n),i=jt(Ne),m=250000000n,l=no(Ne,n.parachainId),[u,p,b,g]=await Promise.all([o.calculateDestinationFeeV5(c,y),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,cs),a.calculateDestinationFeeV5(l,y)]),v=Q(u,33n),P=Q(p,33n),X=Q(b,33n),j=Q(g,33n)+P,ee=v,Be=await a.quoteEtherForDot(i,j),et=Q(Be,30n),Ue=et<fn*2n?fn*2n:et,Vt=Q(await a.quoteEtherForDot(i,ee),100n),Xt=Q(await a.quoteDotToEther(i,m+X),30n);return{amount:Ue+Xt+Vt,breakdown:{executionFee:Ue,relayerFee:Xt,remoteEtherFee:Vt,hydrationDotFee:ee}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new Xe(t.hub),i=jt(Ne),m=en(e,a),[l,u,p]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,cs),c.calculateDestinationFee(m,s)]),b=await r.evmClient.getProvider().getGasPrice(),g=Yo+Jo+zo+$o,v=b*g,P=Q(v,10n),X=l+Q(u,33n)+Q(p,33n),L=Q(await c.quoteDotForExactEther(i,P),20n),j=new ie(a),ee=js({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Ye}),Be=Q(await j.calculateDestinationFeeV5(ee,y),33n);return{amount:X+L+Be,breakdown:{dotRemoteFee:X,dotToEtherSwapAmount:L,etherFeeAmount:P,sourceExecutionFee:Be}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=F0.fromChain(o),c=new Ge(a),i=new Xe(t.hub),m=ls(e,a),[l,u]=await Promise.all([c.calculateDestinationFee(m,y),i.calculateDeliveryFee(m,a.parachainId)]),p=u+Q(l,25n),b=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:na.Snowbridge,address:r.getGateway(),args:[b,a.parachainId,p],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:p}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new Xe(t.hub),r=en(e,o),c=ls(e,o),[i,m,l,u,p]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,cs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+Q(l,25n)+u+Q(p,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:p}}}})}}function S0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(So(e,o,a,r),r){let p=new Ge(a),b=new Ge(r),g=an(e,a),v=_o(e,r,a),[P,X]=await Promise.all([p.calculateDestinationFee(g,e),b.calculateDestinationFee(v,e)]),L=X+P,j=Q(L,20n),ee=j-L;return{amount:j,breakdown:{reserveFee:X,destinationFee:P,margin:ee}}}let c=new Ge(a),i=Do(e,a),m=await c.calculateDestinationFee(i,e),l=Q(m,20n),u=l-m;return{amount:l,breakdown:{totalFee:m,margin:u}}}})}}function D0(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=X0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:na.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:D0,XcmPaymentApi:S0,Snowbridge:B0}}var _0="0";function I0(){return{build:async({address:t,chain:e})=>{let n=await new ie(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():_0,a=e.findAssetById(o);return a?a.asset:z}}}var R0=()=>({accountCurrencyMap:I0});function es(){return{multiTransactionPayment:R0}}import{EvmParachain as L0,Ntt as H0,ProgramConfig as V0,SolanaBalanceType as M0,Wormhole as oa}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as N0}from"@solana/spl-token";import{Keypair as O0,TransactionMessage as G0}from"@solana/web3.js";import{toChain as U0}from"@wormhole-foundation/sdk-base";import{UniversalAddress as W0}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as K0}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as q0}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function j0(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(n=>t.getAddressLookupTable(n.accountKey)))).map(n=>n.value).filter(n=>n!==null)}async function z0(t,e,s){let n=await j0(t,e);return{instructions:"message"in e?G0.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var J0=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=H0.fromChain(c,n),l=oa.fromChain(c),u=oa.fromChain(i),p=e;i instanceof L0&&(p=await i.getDerivatedAddress(e));let b=new q0("Mainnet","Solana",c.connection,{coreBridge:l.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),g=c.getBalanceType(n)===M0.Native,v=O0.generate(),P=[];for await(let j of b.transfer(new K0(o),s,{chain:U0(u.getWormholeId()),address:new W0(u.normalizeAddress(p))},{queue:!1,automatic:!1,wrapNative:g},v)){let{transaction:ee,signers:Be}=j.transaction;P.push(await z0(c.connection,ee,Be??[]))}let X=g?BigInt(await N0(c.connection)):0n,L=P[P.length-1];return new V0({instructions:L.instructions,signers:L.signers,lookupTables:L.lookupTables,prerequisites:P.slice(0,-1),rentReserve:X,func:"transfer",module:"NttManager"})}}),aa=()=>({transfer:J0});function ra(){return{Ntt:aa}}function bn(){return{Wormhole:ra}}var ca={};Yt(ca,{Tag:()=>Rt});var Rt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Rt||{});function ua(t,e){return new ma({source:{asset:t,fee:{asset:F}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function da(t,e){return new ma({source:{asset:t,fee:{asset:F},destinationFee:t},destination:{chain:f,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:K().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Y0=[da(tt,Ke)],Q0=[ua(tt,Ke)],la=new $0({chain:Mt,routes:[...Q0,...Y0]});import{AssetRoute as fa,ChainRoutes as Z0}from"@galacticcouncil/xc-core";import{AssetRoute as xn}from"@galacticcouncil/xc-core";function vt(t,e){return new xn({source:{asset:t,fee:{asset:F}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ce(t,e){return new xn({source:{asset:t,fee:{asset:F}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:F}},contract:K().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function me(t,e){return new xn({source:{asset:t,fee:{asset:F}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:F}},contract:K().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var em=[vt(it,De),vt(je,Ie),vt(x,Le),vt(h,Re),vt(Je,He),vt(ut,Fe),vt(F,Fe)],tm=[new fa({source:{asset:F,fee:{asset:F}},destination:{chain:f,asset:F,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:F}},contract:K().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ce(de,de),ce(le,le),ce(fe,fe),ce(pe,pe),ce(xe,xe),ce(ge,ge),ce(we,we),ce(ye,ye),ce(he,he),ce(be,be),ce(Ae,Ae),ce(Ce,Ce),ce(ke,ke),ce(x,mt),ce(h,ct)],sm=[new fa({source:{asset:F,fee:{asset:F}},destination:{chain:f,asset:F,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:F}},contract:K().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),me(de,de),me(le,le),me(fe,fe),me(pe,pe),me(xe,xe),me(ge,ge),me(we,we),me(ye,ye),me(he,he),me(be,be),me(Ae,Ae),me(Ce,Ce),me(ke,ke),me(x,mt),me(h,ct)],pa=new Z0({chain:k,routes:[...em,...tm,...sm]});var ha=[la,pa];import{AssetRoute as As,ChainRoutes as ba}from"@galacticcouncil/xc-core";import{AssetRoute as An}from"@galacticcouncil/xc-core";var Lt=0,nm=t=>{let{source:e}=t;return!!e.feeSwap},om=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ya=d().assetConversion().swapTokensForExactTokens({slippage:30});function am(t,e,s){return new An({source:{asset:t,fee:{asset:y,extra:Lt}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:lt(om,ya).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function bs(t,e,s){return new An({source:{asset:t,fee:{asset:t,swap:!t.isEqual(y)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:lt(nm,ya).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Ht(t,e,s){return new An({source:{asset:t,fee:{asset:y,extra:Lt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function xs(t){return am(t,f,.02)}var rm=[new As({source:{asset:y,fee:{asset:y,extra:Lt}},destination:{chain:f,asset:y,fee:{amount:.001,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new As({source:{asset:E,fee:{asset:y,extra:Lt}},destination:{chain:f,asset:E,fee:{amount:1e-4,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ht(h,f,.02),Ht(x,f,.02),xs(dt)],im=[new As({source:{asset:E,fee:{asset:y,extra:Lt}},destination:{chain:$e,asset:E,fee:{amount:.001,asset:E}},extrinsic:d().polkadotXcm().transferAssets()})],cm=[Ht(h,G,.25),Ht(x,G,.25)],mm=[Ht(h,I,.03),Ht(x,I,.03)],um=[new As({source:{asset:M,fee:{asset:y,extra:Lt}},destination:{chain:yt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],xa=new ba({chain:ht,routes:[bs(h,f,.02),bs(x,f,.02),bs(y,f,.001)]}),Aa=new ba({chain:w,routes:[...rm,...im,...cm,...mm,...um]});import{AssetRoute as ft,ChainRoutes as dm}from"@galacticcouncil/xc-core";var lm=[new ft({source:{asset:_},destination:{chain:f,asset:_,fee:{amount:.044306118,asset:_}},extrinsic:d().polkadotXcm().reserveTransferAssets()}),new ft({source:{asset:B,fee:{asset:_}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:T,fee:{asset:_}},destination:{chain:f,asset:T,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:G}),asset:T}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:D,fee:{asset:_}},destination:{chain:f,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:R,fee:{asset:_}},destination:{chain:f,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:H,fee:{asset:_}},destination:{chain:f,asset:H,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:H}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:Y,fee:{asset:_}},destination:{chain:f,asset:Y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:I}),asset:Y}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:h,fee:{asset:_}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ft({source:{asset:x,fee:{asset:_}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],ga=new dm({chain:te,routes:[...lm]});import{AssetRoute as Qe,ChainRoutes as fm}from"@galacticcouncil/xc-core";var pm=[new Qe({source:{asset:B},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:H,fee:{asset:B}},destination:{chain:f,asset:H,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:Y,fee:{asset:B}},destination:{chain:f,asset:Y,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Y}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:y,fee:{asset:B}},destination:{chain:f,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Qe({source:{asset:_,fee:{asset:B}},destination:{chain:f,asset:_,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:te}),asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:T,fee:{asset:B}},destination:{chain:f,asset:T,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:G}),asset:T}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:D,fee:{asset:B}},destination:{chain:f,asset:D,fee:{amount:625e-8,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:h,fee:{asset:B}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:x,fee:{asset:B}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],hm=[new Qe({source:{asset:h,fee:{asset:B}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:x,fee:{asset:B}},destination:{chain:w,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],wa=new fm({chain:I,routes:[...pm,...hm]});import{AssetRoute as rt,ChainRoutes as Am}from"@galacticcouncil/xc-core";var W=()=>({asset:es().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as pt}from"@galacticcouncil/xc-core";var ym=1,bm=.02,gs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ws=d().router().buy({slippage:30});function O(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function $t(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function Tt(t,e){return new pt({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function Cs(t){return new pt({source:{asset:t,fee:W()},destination:{chain:w,asset:t,fee:{amount:bm,asset:h}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function gn(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:$e,asset:t,fee:{amount:e,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function xm(t,e,s="LocalReserve"){return new pt({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:ym,asset:T}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Pt(t){return xm(t,G,"DestinationReserve")}function Ze(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:K().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function se(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:y}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function ne(t,e,s){return new pt({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:y}},extrinsic:lt(gs,ws).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var gm=[Tt(y,w),Tt(E,w),Tt(h,w),Tt(x,w),Cs(dt)],wm=[gn(E,.05,.005),gn(y,.2,.02)],Cm=[O(_,te),O(B,te,I),O(T,te,G),new rt({source:{asset:D,fee:W()},destination:{chain:te,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new rt({source:{asset:R,fee:W()},destination:{chain:te,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),O(H,te,I),O(Y,te,I),O(h,te,w),O(x,te,w)],km=[O(B,I),O(H,I),O(Y,I),O(_,I,te),O(T,I,G),new rt({source:{asset:D,fee:W()},destination:{chain:I,asset:D,fee:{amount:5e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),O(h,I,w),O(x,I,w),new rt({source:{asset:y,fee:W()},destination:{chain:I,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Em=[$t(D,Me,62e-8),$t(R,Me,.0019213457),$t(z,Me,.5),$t(h,Me,.3),$t(x,Me,.3),new rt({source:{asset:H,fee:W()},destination:{chain:Me,asset:H,fee:{amount:.01,asset:y}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new rt({source:{asset:y,fee:W()},destination:{chain:Me,asset:y,fee:{amount:.05,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],vm=[O(z,G),O(T,G),O(h,G,w),O(x,G,w),Pt(De),Pt(Ie),Pt(Le),Pt(Re),Pt(He),Pt(Fe),Pt(J)],Tm=[new rt({source:{asset:M,fee:W()},destination:{chain:yt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Pm=[O(ze,Wt)],Fm=[new rt({source:{asset:Se,fee:W()},destination:{chain:Ot,asset:Se,fee:{amount:.04,asset:Se}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Xm=[new rt({source:{asset:Te,fee:W()},destination:{chain:Kt,asset:Te,fee:{amount:.02,asset:Te}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Bm=[new rt({source:{asset:_e,fee:W()},destination:{chain:Ut,asset:_e,fee:{amount:1.1,asset:_e}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Sm=[O(qe,Gt)],Dm=[O(We,Nt)],_m=[Ze(De,it,k),Ze(Ie,je,k),Ze(Le,x,k),Ze(Re,h,k),Ze(He,Je,k),Ze(Fe,F,k)],Im=[Ze(Ke,tt,Mt)],Rm=[Ze(J,J,bt),Ze(ve,ve,bt),Ze(Pe,Pe,bt)],Lm=[se(F,F,k),se(de,de,k),se(le,le,k),se(fe,fe,k),se(pe,pe,k),se(xe,xe,k),se(ge,ge,k),se(we,we,k),se(Ce,Ce,k),se(ye,ye,k),se(he,he,k),se(be,be,k),se(Ae,Ae,k),se(ke,ke,k),se(mt,x,k),se(ct,h,k)],Hm=[ne(F,F,k),ne(de,de,k),ne(le,le,k),ne(fe,fe,k),ne(pe,pe,k),ne(xe,xe,k),ne(ge,ge,k),ne(we,we,k),ne(Ce,Ce,k),ne(ye,ye,k),ne(he,he,k),ne(be,be,k),ne(Ae,Ae,k),ne(ke,ke,k),ne(mt,x,k),ne(ct,h,k)],Vm=[Tt(y,ht),Tt(h,ht),Tt(x,ht)],Ca=new Am({chain:f,routes:[...Dm,...gm,...Cm,...km,...Vm,...Im,...Fm,..._m,...Lm,...Rm,...Hm,...Em,...Xm,...wm,...vm,...Tm,...Sm,...Bm,...Pm]});import{AssetRoute as Es,ChainRoutes as Mm}from"@galacticcouncil/xc-core";function ks(t,e){return new Es({source:{asset:t,fee:{asset:R}},destination:{chain:f,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:d().xTokens().transfer()})}var Nm=[new Es({source:{asset:R},destination:{chain:f,asset:R,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Es({source:{asset:D,fee:{asset:R}},destination:{chain:f,asset:D,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Es({source:{asset:z,fee:{asset:R}},destination:{chain:f,asset:z,fee:{amount:.5,asset:z}},extrinsic:d().xTokens().transfer()}),ks(H,I),ks(h,w),ks(x,w),ks(y,w)],ka=new Mm({chain:Me,routes:[...Nm]});import{AssetRoute as wn,ChainRoutes as Um}from"@galacticcouncil/xc-core";import{AssetRoute as Ea}from"@galacticcouncil/xc-core";function Om(t,e,s){return new Ea({source:{asset:t,fee:{asset:T}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:K().PolkadotXcm().transferAssetsToPara32()})}function Gm(t,e,s){return new Ea({source:{asset:t,fee:{asset:T}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:K().PolkadotXcm().transferAssetsToPara32()})}function Ft(t,e){return Om(t,f,e)}function vs(t,e){return Gm(t,f,e)}var Wm=[new wn({source:{asset:T},destination:{chain:f,asset:T,fee:{amount:.05,asset:T}},contract:K().PolkadotXcm().transferAssetsToPara32()}),vs(z,.6),vs(h,.3),vs(x,.3),Ft(De,.004),Ft(Ie,.004),Ft(Le,.004),Ft(Re,.004),Ft(He,1e-7),Ft(Fe,2e-6),Ft(J,2e-5)],Km=[new wn({source:{asset:h,fee:{asset:T}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:K().PolkadotXcm().transferAssetsToPara32()}),new wn({source:{asset:x,fee:{asset:T}},destination:{chain:w,asset:x,fee:{amount:.18,asset:x}},contract:K().PolkadotXcm().transferAssetsToPara32()})],va=new Um({chain:G,routes:[...Wm,...Km]});import{AssetRoute as Ta,ChainRoutes as qm}from"@galacticcouncil/xc-core";var jm=[new Ta({source:{asset:M},destination:{chain:f,asset:M,fee:{amount:.01,asset:M}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],zm=[new Ta({source:{asset:M},destination:{chain:w,asset:M,fee:{amount:.1,asset:M}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Pa=new qm({chain:yt,routes:[...jm,...zm]});import{AssetRoute as Jm,ChainRoutes as $m}from"@galacticcouncil/xc-core";var Ym=[new Jm({source:{asset:ze},destination:{chain:f,asset:ze,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:ze}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Fa=new $m({chain:Wt,routes:[...Ym]});import{AssetRoute as Qm,ChainRoutes as Zm}from"@galacticcouncil/xc-core";var eu=[new Qm({source:{asset:Se},destination:{chain:f,asset:Se,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Se}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Xa=new Zm({chain:Ot,routes:[...eu]});import{AssetRoute as tu,ChainRoutes as su}from"@galacticcouncil/xc-core";var nu=[new tu({source:{asset:_e},destination:{chain:f,asset:_e,fee:{amount:.2,asset:_e}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ba=new su({chain:Ut,routes:[...nu]});import{AssetRoute as ou,ChainRoutes as au}from"@galacticcouncil/xc-core";var ru=[new ou({source:{asset:We},destination:{chain:f,asset:We,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:We}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Sa=new au({chain:Nt,routes:[...ru]});import{AssetRoute as iu,ChainRoutes as cu}from"@galacticcouncil/xc-core";var mu=[new iu({source:{asset:Te,fee:{asset:Te,extra:.030555}},destination:{chain:f,asset:Te,fee:{amount:.03,asset:Te}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Da=new cu({chain:Kt,routes:[...mu]});import{AssetRoute as uu,ChainRoutes as du}from"@galacticcouncil/xc-core";var lu=[new uu({source:{asset:qe},destination:{chain:f,asset:qe,fee:{amount:.205,asset:qe}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],_a=new du({chain:Gt,routes:[...lu]});var Ia=[Sa,Aa,xa,ga,wa,Ca,ka,va,Pa,_a,Fa,Xa,Ba,Da];import{AssetRoute as fu,ChainRoutes as pu}from"@galacticcouncil/xc-core";function Cn(t){return new fu({source:{asset:t,fee:{asset:J}},destination:{chain:f,asset:t,fee:{amount:0,asset:t}},program:bn().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var hu=[Cn(J),Cn(ve),Cn(Pe)],Ra=new pu({chain:bt,routes:[...hu]});var La=[Ra];import{ChainRoutes as yu}from"@galacticcouncil/xc-core";var bu=[],Ha=new yu({chain:rs,routes:[...bu]});var Va=[Ha];import{AssetRoute as Ts,ChainRoutes as xu}from"@galacticcouncil/xc-core";import{AssetRoute as Gg}from"@galacticcouncil/xc-core";var ts=.0015;var Au=new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:w,asset:E,fee:{amount:.002,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),gu=new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:qt,asset:E,fee:{amount:.0012,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),wu=[new Ts({source:{asset:E,fee:{asset:E,extra:ts}},destination:{chain:f,asset:E,fee:{amount:.04,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Ts({source:{asset:y,fee:{asset:E,extra:ts}},destination:{chain:f,asset:y,fee:{amount:.15,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ma=new xu({chain:$e,routes:[gu,Au,...wu]});import{AssetRoute as Na,ChainRoutes as Cu}from"@galacticcouncil/xc-core";var kn=()=>({asset:es().multiTransactionPayment().accountCurrencyMap()});var ku=[new Na({source:{asset:h,fee:kn()},destination:{chain:$e,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Eu=[new Na({source:{asset:E,fee:kn()},destination:{chain:$e,asset:E,fee:{amount:.0012,asset:E}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Oa=new Cu({chain:qt,routes:[...ku,...Eu]});var Ga=[Ma,Oa];var vu=[...ha,...Ia,...La,...Va,...Ga],Tu=new Map(vu.map(t=>[t.chain.key,t]));import{Parachain as ja}from"@galacticcouncil/xc-core";import{Parachain as Pu,TransferValidation as Ua,TransferValidationError as Wa}from"@galacticcouncil/xc-core";var Ps=class extends Ua{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Wa("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Fs=class extends Ua{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=n,c=await this.getMin(o,a),i=a.copyWith({amount:a.amount+c});if(r.amount<i.amount)throw new Wa("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Pu)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as Ka,TransferValidationError as qa}from"@galacticcouncil/xc-core";var Xs=class extends Ka{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new Xe(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new Xe(a).getSystemAccountBalance(n)===0n)throw new qa("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Bs=class extends Ka{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new Xe(a).checkIfFrozen(n,s))throw new qa("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Rs,TransferValidationError as ss}from"@galacticcouncil/xc-core";var Fu=12,Xu=1,Bu=18,Ss=class extends Rs{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ie(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new ie(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||Xu,l=i.decimals||Fu,u=m*Math.pow(10,l),p=await r.getAssetBalance(n,c);if(BigInt(u*1.1)>p)throw new ss("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Ds=class extends Rs{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ie(a).getAssetDepositLimit(n);if(c.locked)throw new ss("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new ss("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},_s=class extends Rs{async validate(e){let{source:s}=e,n=s.chain,a=await new ie(n).getGlobalWithdrawLimit();if(a.lockdown)throw new ss("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Is=class extends Rs{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,a=o.chain,r=new ie(a),c=a.getBalanceAssetId(T),i=a.getAssetDecimals(T)||Bu,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new ss("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ue={isAny:()=>!0,isHydration:t=>t instanceof ja&&t.parachainId===2034,isHub:t=>t instanceof ja&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Su=[new Ps(ue.isAny,ue.isAny),new Fs(ue.isAny,ue.isAny),new Xs(ue.isAny,ue.isHub),new Bs(ue.isHub,ue.isAny),new Ss(ue.isAny,ue.isHydration),new Is(ue.isHydration,ue.isAny),new Ds(ue.isAny,ue.isHydration),new _s(ue.isHydration,ue.isAny)];var Ja={};Yt(Ja,{AssethubDex:()=>vn,HydrationDex:()=>En});import{pool as Du,sor as _u,tx as Iu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ru}from"@galacticcouncil/common";import{Binary as Lu}from"polkadot-api";import{memoize1 as Hu}from"@thi.ng/memoize";var{PoolType:Ls}=Du,{TradeRouteBuilder:Vu,TradeRouter:Mu}=_u,{TxBuilderFactory:Nu}=Iu,En=class{chain;client;poolCtx;txBuilder;getCtx=Hu(async e=>{console.log("init swap router",e,"\u2705");let s=new Mu(this.poolCtx);return s.withFilter({useOnly:[Ls.Aave,Ls.Omni,Ls.Stable,Ls.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ie(this.chain),this.txBuilder=new Nu(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,m=await this.getCtx(1),l=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,l),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Lu.toHex(g)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),l=await i.getBuy(a,r,c,m);return{amount:l.amountIn,route:Vu.build(l.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw m}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,Ru);return a/BigInt(r)}};import{encodeLocation as za}from"@galacticcouncil/common";var vn=class{chain;client;constructor(e){this.chain=e,this.client=new Xe(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(s),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(za(o),za(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as Gu}from"@galacticcouncil/xc-core";import{Asset as Ou}from"@galacticcouncil/xc-core";function Hs(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Ou({key:[o,s,e].join("_"),originSymbol:n})}function $a(t){let{decimals:e,id:s}=t;return{asset:Hs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Ya(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Hs(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Tn=class extends Gu{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Hs(a),c=$a(a),i=Ya(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,xs(r)),this.updateChainRoute(s,Cs(r))})}};export{Tn as HydrationConfigService,nr as assetsMap,ia as builders,Ci as chainsMap,sa as clients,Ja as dex,Tu as routesMap,ca as tags,Su as validations};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacticcouncil/xc-cfg",
|
|
3
|
-
"version": "2.0.0-pr346-
|
|
3
|
+
"version": "2.0.0-pr346-b2ffa7e",
|
|
4
4
|
"description": "Cross-chain hydradx & basilisk dapp configuration",
|
|
5
5
|
"author": "GalacticCouncil",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"test": "NODE_NO_WARNINGS=1 NODE_OPTIONS=--experimental-vm-modules jest --silent"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@galacticcouncil/xc-core": "2.0.0-pr346-
|
|
34
|
+
"@galacticcouncil/xc-core": "2.0.0-pr346-b2ffa7e",
|
|
35
35
|
"@thi.ng/memoize": "^4.0.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|