@galacticcouncil/xc-cfg 2.0.0-pr346-c27e42e → 2.0.0-pr346-e734407
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/package.json +2 -2
package/build/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Dn=Object.defineProperty;var si=Object.getOwnPropertyDescriptor;var ni=Object.getOwnPropertyNames;var oi=Object.prototype.hasOwnProperty;var is=(t,e)=>{for(var s in e)Dn(t,s,{get:e[s],enumerable:!0})},ai=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ni(e))!oi.call(t,o)&&o!==s&&Dn(t,o,{get:()=>e[o],enumerable:!(n=si(e,o))||n.enumerable});return t};var ri=t=>ai(Dn({},"__esModule",{value:!0}),t);var E0={};is(E0,{HydrationConfigService:()=>Xn,assetsMap:()=>wo,builders:()=>co,chainsMap:()=>Lo,clients:()=>ao,dex:()=>go,routesMap:()=>qr,tags:()=>mo,validations:()=>jr});module.exports=ri(E0);var w=require("@galacticcouncil/xc-core"),pe=new w.Asset({key:"aave",originSymbol:"AAVE"}),et=new w.Asset({key:"ajun",originSymbol:"AJUN"}),he=new w.Asset({key:"apyusd",originSymbol:"apyUSD"}),L=new w.Asset({key:"astr",originSymbol:"ASTR"}),I=new w.Asset({key:"bnc",originSymbol:"BNC"}),In=new w.Asset({key:"bsx",originSymbol:"BSX"}),be=new w.Asset({key:"cfg_new",originSymbol:"CFG"}),Re=new w.Asset({key:"cru",originSymbol:"CRU"}),xt=new w.Asset({key:"dai",originSymbol:"DAI"}),Le=new w.Asset({...xt,key:"dai_mwh"}),x=new w.Asset({key:"dot",originSymbol:"DOT"}),D=new w.Asset({key:"eth",originSymbol:"ETH"}),ye=new w.Asset({key:"ena",originSymbol:"ENA"}),lt=new w.Asset({key:"eurc",originSymbol:"EURC"}),tt=new w.Asset({...lt,key:"eurc_mwh"}),S=new w.Asset({key:"glmr",originSymbol:"GLMR"}),Y=new w.Asset({key:"hdx",originSymbol:"HDX"}),R=new w.Asset({key:"ibtc",originSymbol:"IBTC"}),N=new w.Asset({key:"intr",originSymbol:"INTR"}),Fe=new w.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),F=new w.Asset({key:"ksm",originSymbol:"KSM"}),xe=new w.Asset({key:"ldo",originSymbol:"LDO"}),Ae=new w.Asset({key:"lbtc",originSymbol:"LBTC"}),Be=new w.Asset({key:"ewt",originSymbol:"EWT"}),ge=new w.Asset({key:"link",originSymbol:"LINK"}),W=new w.Asset({key:"myth",originSymbol:"MYTH"}),st=new w.Asset({key:"neuro",originSymbol:"NEURO"}),He=new w.Asset({key:"pen",originSymbol:"PEN"}),we=new w.Asset({key:"paxg",originSymbol:"PAXG"}),Xe=new w.Asset({key:"prime",originSymbol:"PRIME"}),Ce=new w.Asset({key:"sky",originSymbol:"SKY"}),Q=new w.Asset({key:"sol",originSymbol:"SOL"}),ke=new w.Asset({key:"sui",originSymbol:"SUI"}),Ee=new w.Asset({key:"susde",originSymbol:"sUSDe"}),nt=new w.Asset({key:"susds",originSymbol:"sUSDS"}),Ve=new w.Asset({...nt,key:"susds_mwh"}),ve=new w.Asset({key:"tbtc",originSymbol:"tBTC"}),Te=new w.Asset({key:"trac",originSymbol:"TRAC"}),ot=new w.Asset({key:"unq",originSymbol:"UNQ"}),y=new w.Asset({key:"usdt",originSymbol:"USDT"}),Me=new w.Asset({...y,key:"usdt_mwh"}),At=new w.Asset({...y,key:"usdt_eth"}),g=new w.Asset({key:"usdc",originSymbol:"USDC"}),Ne=new w.Asset({...g,key:"usdc_mwh"}),gt=new w.Asset({...g,key:"usdc_eth"}),te=new w.Asset({key:"vastr",originSymbol:"vASTR"}),O=new w.Asset({key:"vdot",originSymbol:"vDOT"}),wt=new w.Asset({key:"weth",originSymbol:"WETH"}),Se=new w.Asset({...wt,key:"weth_mwh"}),at=new w.Asset({key:"wbtc",originSymbol:"WBTC"}),Oe=new w.Asset({...at,key:"wbtc_mwh"}),Pe=new w.Asset({key:"wsteth",originSymbol:"wstETH"}),Ct=new w.Asset({key:"wud",originSymbol:"WUD"}),ii=[pe,et,he,L,In,be,Re,I,xt,Le,x,ye,lt,tt,D,S,Y,R,N,F,xe,Ae,Be,Fe,ge,W,st,we,He,Xe,Ce,Q,ke,Ee,nt,Ve,Te,ve,ot,g,Ne,gt,y,Me,At,te,O,at,Oe,wt,Se,Pe,Ct],wo=new Map(ii.map(t=>[t.key,t]));var cs=require("@galacticcouncil/xc-core");var Co=require("viem/chains"),ms=new cs.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:D,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:lt,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:g,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:cs.EvmBalanceType.Erc20,ecosystem:cs.ChainEcosystem.Ethereum,evmChain:Co.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:{[lt.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Kt=require("@galacticcouncil/xc-core");var ko=require("viem/chains"),P=new Kt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:pe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:he,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:be,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:wt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:ye,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ee,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:nt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ve,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:at,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Ae,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:y,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:xe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:ge,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:we,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ce,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Te,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Pe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Kt.EvmBalanceType.Erc20,balanceOverrides:{[D.key]:Kt.EvmBalanceType.Native},ecosystem:Kt.ChainEcosystem.Ethereum,evmChain:ko.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:{[xt.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[nt.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[g.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[y.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[at.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[wt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[D.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Eo=[ms,P];var us=require("@galacticcouncil/xc-core");var ds=new us.Parachain({assetsData:[{asset:et,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:us.SubstrateBalanceType.System,ecosystem:us.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var je=require("@galacticcouncil/xc-core");var vo={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:Ct,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:W,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:F,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:je.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:je.SubstrateBalanceType.System,[F.key]:je.SubstrateBalanceType.ForeignAssets,[W.key]:je.SubstrateBalanceType.ForeignAssets},min:je.SubstrateMinType.Assets,ecosystem:je.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 je.Parachain({...vo,key:"assethub",name:"AssetHub Polkadot"}),Pt=new je.Parachain({...vo,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var qt=require("@galacticcouncil/xc-core");var re=new qt.Parachain({assetsData:[{asset:L,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:I,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:N,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:te,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:qt.SubstrateBalanceType.Assets,balanceOverrides:{[L.key]:qt.SubstrateBalanceType.System},ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var jt=require("@galacticcouncil/xc-core");var ci=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new jt.Parachain({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:te,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:y,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:L,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:S,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:jt.SubstrateBalanceType.Tokens,balanceOverrides:{[I.key]:jt.SubstrateBalanceType.System},ecosystem:jt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ci});var Ft=require("@galacticcouncil/xc-core");var ls=new Ft.Parachain({assetsData:[{asset:Re,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Ft.SubstrateBalanceType.System,ecosystem:Ft.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:Ft.XcmVersion.v3});var zt=require("@galacticcouncil/xc-core"),Bo=require("viem");var Po=require("@galacticcouncil/common"),Fo=require("polkadot-api"),{isEvmAccount:mi,H160:To}=Po.h160,Gs=class{async toH160(e,s){if(mi(e))return To.fromAccount(e);let n=To.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,Fo.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 ui=new Gs,Rn=["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"],Ln=["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"],di=(0,Bo.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Rn,webSocket:Ln},default:{http:Rn,webSocket:Ln}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new zt.EvmParachain({assetsData:[{asset:Y,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:pe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:et,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:I,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:be,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Re,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:Le,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:he,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:ye,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:S,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:N,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Fe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Be,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:xe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:F,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Ae,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ge,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:we,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:W,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:st,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:He,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ce,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Q,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ke,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ee,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:nt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ve,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ve,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Te,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:ot,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:Ne,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:tt,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:gt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:y,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Me,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:At,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:te,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:at,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Oe,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:wt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Se,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Pe,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Ct,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:zt.SubstrateBalanceType.Tokens,balanceOverrides:{[Y.key]:zt.SubstrateBalanceType.System},ecosystem:zt.ChainEcosystem.Polkadot,evmChain:di,evmResolver:ui,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Le.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[tt.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Xe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Q.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[ke.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[Ve.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Ne.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Me.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Oe.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Se.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Ln,rpcs:Rn});var Bt=require("@galacticcouncil/xc-core");var ze=new Bt.Parachain({assetsData:[{asset:N,decimals:10,id:{Token:N.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:R,decimals:8,id:{Token:R.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:Y,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:O,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Bt.SubstrateBalanceType.Tokens,ecosystem:Bt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Bt.XcmVersion.v3});var Xt=require("@galacticcouncil/xc-core"),Xo=require("viem");var li=(0,Xo.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}),K=new Xt.EvmParachain({assetsData:[{asset:S,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Le,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:tt,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Q,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Fe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ve,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ke,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ne,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Me,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Oe,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:Y,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:y,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Xt.EvmBalanceType.Erc20,balanceOverrides:{[S.key]:Xt.SubstrateBalanceType.System},ecosystem:Xt.ChainEcosystem.Polkadot,evmChain:li,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var fs=require("@galacticcouncil/xc-core");var St=new fs.Parachain({assetsData:[{asset:W,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:fs.SubstrateBalanceType.System,ecosystem:fs.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 ps=require("@galacticcouncil/xc-core");var hs=new ps.Parachain({assetsData:[{asset:st,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ps.SubstrateBalanceType.System,ecosystem:ps.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 _t=require("@galacticcouncil/xc-core");var bs=new _t.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:_t.SubstrateBalanceType.System,ecosystem:_t.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:_t.XcmVersion.v3});var ys=require("@galacticcouncil/xc-core");var fi={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:ys.SubstrateBalanceType.System,ecosystem:ys.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"},So=new ys.Parachain({...fi,key:"polkadot"});var xs=require("@galacticcouncil/xc-core");var As=new xs.Parachain({assetsData:[{asset:ot,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:xs.SubstrateBalanceType.System,ecosystem:xs.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var Dt=require("@galacticcouncil/xc-core");var gs=new Dt.Parachain({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Dt.SubstrateBalanceType.System,ecosystem:Dt.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:Dt.XcmVersion.v3});var _o=[ds,k,Pt,re,M,ls,h,hs,ze,K,St,bs,So,As,gs];var $t=require("@galacticcouncil/xc-core");var It=new $t.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:Q,decimals:9},{asset:Fe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Xe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:$t.SolanaBalanceType.Token,balanceOverrides:{[Q.key]:$t.SolanaBalanceType.Native},ecosystem:$t.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:{[Q.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Fe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Xe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Do=[It];var ws=require("@galacticcouncil/xc-core");var Cs=new ws.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ke,decimals:9}],balance:ws.SuiBalanceType.Native,ecosystem:ws.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",rpc:"https://sui-rpc.publicnode.com",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[ke.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var Io=[Cs];var kt=require("@galacticcouncil/xc-core");var rt=new kt.Parachain({assetsData:[{asset:F,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:y,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:kt.SubstrateBalanceType.Assets,balanceOverrides:{[F.key]:kt.SubstrateBalanceType.System},min:kt.SubstrateMinType.Assets,ecosystem:kt.ChainEcosystem.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});var ks=require("@galacticcouncil/xc-core");var Es=new ks.Parachain({assetsData:[{asset:In,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:F,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:ks.SubstrateBalanceType.Tokens,ecosystem:ks.ChainEcosystem.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Ro=[rt,Es];var pi=[...Eo,..._o,...Do,...Io,...Ro],Lo=new Map(pi.map(t=>[t.key,t]));var Ar=require("@galacticcouncil/xc-core");var uo=require("@galacticcouncil/xc-core");var co={};is(co,{ContractBuilder:()=>$,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>vt,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>Hs,MoveBuilder:()=>ro,ProgramBuilder:()=>io,XcmTransferType:()=>Ue,XcmVersion:()=>ft});var Jt=require("@galacticcouncil/xc-core"),Ho=require("viem"),hi=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,Ho.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"})}}),Vo=()=>({batchAll:hi});var vs=require("@galacticcouncil/xc-core");function se(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Yt(t){return typeof t=="object"?Object.values(t)[0]:t}function Mo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=vs.Wormhole.fromChain(r),i=r.getAssetId(n);return new vs.ContractConfig({abi:vs.Abi.Erc20,address:Yt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var Ts=require("@galacticcouncil/xc-core");var No=require("@galacticcouncil/common"),Oo=require("polkadot-api"),Wo=require("@polkadot-api/utils"),{H160:bi,isEvmAddress:yi}=No.h160;function xi(t){let e=yi(t)?bi.toAccount(t):t;return(0,Wo.toHex)((0,Oo.AccountId)().enc(e))}var Ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Ts.Basejump.fromChain(a),c=a.getAssetId(n);return new Ts.ContractConfig({abi:Ts.Abi.Basejump,address:r.getAddress(),args:[Yt(c),s,xi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Uo=()=>({bridgeViaWormhole:Ai});var it=require("@galacticcouncil/xc-core"),Ko=require("@galacticcouncil/common"),{Ss58Addr:Go}=it.addr;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 Hn(t,e){let s=t.getAssetId(e);return typeof s=="string"?gi(s):s}function qo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Hn(o.chain,s);return new it.ContractConfig({abi:it.Abi.PolkadotXcm,address:it.Precompile.PolkadotXcm,args:[n.chain.parachainId,Go.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=Hn(o.chain,s),r=Hn(o.chain,o.destinationFeeBalance),c=Ko.big.toBigInt(n.fee.amount,n.fee.decimals);return new it.ContractConfig({abi:it.Abi.PolkadotXcm,address:it.Precompile.PolkadotXcm,args:[n.chain.parachainId,Go.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var mt=require("@galacticcouncil/xc-core"),Lt=require("@galacticcouncil/descriptors"),oa=require("@polkadot-api/substrate-bindings"),js=require("@polkadot-api/utils"),aa=require("viem");var jo=require("@galacticcouncil/xc-core"),Ks=null;async function zo(){if(Ks)return Ks;let t=await jo.codec.getHubCodecs();return Ks={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Ks}var Zo=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),ea=require("@polkadot-api/substrate-bindings"),ta=require("@polkadot-api/utils");var $o=require("@galacticcouncil/descriptors"),ne=340282366920938463463374607431768211455n,ct="0x0000000000000000000000000000000000000000000000000000000000000000",Z={parents:1,interior:$o.XcmV3Junctions.Here()},Jo=0,Rt=1e3,qs=1002,$e=1,Qt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Yo="0x0000000000000000000000000000000000000000000000000000000000000000",Qo="0x0000000000000000000000000000000000000000";var Vn="0x0000000000000000000000000000000000000000",Ps=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Mn=(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 sa(t,e){let s=Ps(t),n=Mn(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:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}})],c=Nn({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 Nn(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Ps(e),m=n===Vn?i:Mn(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}),b={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:b})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:Z,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:Z,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:b}),u.XcmV5Instruction.SetTopic(c)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b}),u.XcmV5Instruction.SetTopic(c)]}function On(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,p=Ps($e),d=e===Vn?p:Mn($e,e),b={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($e)})))},v=[u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),u.XcmV5Instruction.SetTopic(m)],X=[u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:b}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b})])];X.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let B=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],H=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}]);X.push(u.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:H},preserve_origin:!0,assets:B,remote_xcm:v}),u.XcmV5Instruction.SetTopic(m));let V=a+r+c,z=[{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(V)},{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],ae=[{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],T={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},Ie=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(c)}])},T];return[u.XcmV5Instruction.WithdrawAsset(z),u.XcmV5Instruction.PayFees({asset:ae[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:b}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(Rt))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Ie,remote_xcm:X}),u.XcmV5Instruction.SetTopic(m)]}function na(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=(0,ea.getSs58AddressInfo)(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,ta.toHex)(m.publicKey),d=i.getAssetXcmLocation(n),b=d?Zo.multiloc.findNestedKey(d,"key"):void 0,A=b?b.key:Vn,C=r.feeBreakdown,v=C.sourceExecutionFee??0n,X=C.dotRemoteFee??0n,B=C.dotToEtherSwapAmount??0n,H=C.etherFeeAmount??0n,z=On({tokenAddress:A,senderPubKey:p,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:v,dotRemoteFee:X,dotToEtherSwapAmount:B,etherFeeAmount:H,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(z)}var{Ss58Addr:ra}=mt.addr,wi="0x0000000000000000000000000000000000000000",Ci=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=mt.Snowbridge.fromChain(c),p=c.getAssetId(n),d=Yt(p),b=n.originSymbol==="ETH",A=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,v=r.feeBreakdown.hydrationDotFee,X=r.fee.amount,B=ra.getPubKey(e),H=new TextEncoder().encode(`${i.parachainId}${o}${d}${B}${s}${Date.now()}`),V=(0,js.toHex)((0,oa.Blake2256)(H)),z=Nn({ethChainId:$e,destinationParaId:i.parachainId,tokenAddress:b?wi:d,beneficiaryHex:B,tokenAmount:s,hydrationDotFee:v,topic:V}),ae=await zo(),T=(0,js.toHex)(ae.message.enc(Lt.XcmVersionedXcm.V5(z))),Ie=[];b||Ie.push((0,aa.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,s]));let Tt=ae.location.enc(Lt.XcmVersionedLocation.V5({parents:0,interior:Lt.XcmV5Junctions.X1(Lt.XcmV5Junction.AccountId32({id:B,network:void 0}))})),yt=(0,js.toHex)(Tt.slice(1));return new mt.ContractConfig({abi:mt.Abi.Snowbridge,address:m.getGateway(),args:[T,Ie,yt,A,C],value:b?X+s:X,func:"v2_sendMessage",module:"Snowbridge"})}}),ki=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=mt.Snowbridge.fromChain(r),m=r.getAssetId(n),p=Yt(m),d=n.originSymbol==="ETH",b=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new mt.ContractConfig({abi:mt.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,ra.getPubKey(e)],b,s],value:d?A+s:A,func:"sendToken",module:"Snowbridge"})}}),ia=()=>({v2SendMessage:Ci,sendToken:ki});var We=require("@galacticcouncil/xc-core"),Ei="0x00",ca=8,vi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=We.Ntt.fromChain(r,n),m=We.Wormhole.fromChain(c),p=e;c instanceof We.EvmParachain&&(p=await c.getDerivatedAddress(e));let d=r,b=await d.evmClient.getProvider().readContract({abi:We.Abi.NttManager,address:i.manager,args:[m.getWormholeId(),Ei],functionName:"quoteDeliveryPrice"}),A=d.getAssetDecimals(n)??0,C=s;if(A>ca){let v=10n**BigInt(A-ca);C=s-s%v}return new We.ContractConfig({abi:We.Abi.NttManager,address:i.manager,args:[C,m.getWormholeId(),m.normalizeAddress(p)],token:i.token,wrapNative:d.getBalanceType(n)===We.EvmBalanceType.Native,value:b[1],func:"transfer",module:"NttManager"})}}),ma=()=>({transfer:vi});function ua(){return{Ntt:ma}}function $(){return{Batch:Vo,Erc20:Mo,Basejump:Uo,PolkadotXcm:qo,Snowbridge:ia,Wormhole:ua}}var Wn=require("@galacticcouncil/common"),la=require("@galacticcouncil/xc-core"),da="AssetConversion",Ti=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,Wn.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,Wn.encodeLocation)(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,b=c.amount;return new la.ExtrinsicConfig({module:da,func:e,getTx:A=>A.getUnsafeApi().tx[da][e]({path:[m,p],amount_out:b,amount_in_max:d,send_to:s,keep_alive:!0})})}}},fa=()=>({swapTokensForExactTokens:Ti});var zs=require("@galacticcouncil/descriptors"),pa=require("@galacticcouncil/xc-core"),Pi="Assets",Fi=()=>{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 pa.ExtrinsicConfig({module:Pi,func:t,getTx:m=>m.getTypedApi(zs.hub).tx.Assets.transfer({id:Number(i),target:zs.MultiAddress.Id(n),amount:c})})}}},ha=()=>({transfer:Fi});var ya=require("@galacticcouncil/xc-core"),ba="Balances",Bi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new ya.ExtrinsicConfig({module:ba,func:e,getTx:n=>n.getUnsafeApi().tx[ba][e]({dest:s,keep_alive:t})})}},xa=()=>({transferAll:Bi});var Aa=require("@galacticcouncil/descriptors"),ga=require("@galacticcouncil/xc-core"),Xi="Router",Si=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,b=a.amount+a.amount*BigInt(t.slippage)/100n;return new ga.ExtrinsicConfig({module:Xi,func:"buy",getTx:A=>A.getTypedApi(Aa.hydration).tx.Router.buy({asset_in:Number(m),asset_out:Number(p),amount_out:d,max_amount_in:b,route:c})})}}),wa=()=>({buy:Si});var ka=require("@galacticcouncil/xc-core"),Ca="Utility",_i=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new ka.ExtrinsicConfig({module:Ca,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[Ca][e]({calls:a})}})}}},Ea=()=>({batchAll:_i});var $s=require("@galacticcouncil/xc-core"),Ta=require("polkadot-api"),Pa=require("viem");var ft=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(ft||{}),Ue=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Ue||{});var va="EthereumXcm",Di=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,Pa.encodeFunctionData)({abi:$s.Abi[n.module],functionName:n.func,args:n.args});return new $s.ExtrinsicConfig({module:va,func:e,getTx:r=>r.getUnsafeApi().tx[va][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:Ta.Binary.fromHex(a),access_list:void 0}}})})}}},Un=()=>({transact:Di});var Et=require("@galacticcouncil/xc-core"),Is=require("@galacticcouncil/common");var Zt=require("@galacticcouncil/xc-core"),l=require("@galacticcouncil/descriptors");var oe=require("@galacticcouncil/descriptors");var Fa=require("@galacticcouncil/common"),Gn=require("@galacticcouncil/descriptors"),Ba=require("@polkadot-api/substrate-bindings"),Xa=require("@polkadot-api/utils");function J(t){if(t.length===42&&t.startsWith("0x"))return Gn.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,Ba.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Gn.XcmV3Junction.AccountId32({id:(0,Xa.toHex)(s.publicKey),network:void 0})}function Fs(t,e,s){return Fa.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Kn=require("@galacticcouncil/xc-core");function Sa(t,e){let s=Kn.multiloc.findNestedKey(t,"GeneralIndex"),n=Kn.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 U(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Js={};is(Js,{ETHER_TOKEN_ADDRESS:()=>qn,erc20Location:()=>Ri,erc20LocationReanchored:()=>Li,ethereumLocation:()=>Da,parachainLocation:()=>Ii});var Je=require("@galacticcouncil/descriptors"),qn="0x0000000000000000000000000000000000000000",_a=t=>Je.XcmV3Junction.GlobalConsensus(Je.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Da(t){return{parents:2,interior:Je.XcmV3Junctions.X1(_a(t))}}function Ii(t){return{parents:1,interior:Je.XcmV3Junctions.X1(Je.XcmV3Junction.Parachain(t))}}function Ri(t,e){return e===qn?Da(t):{parents:2,interior:Je.XcmV3Junctions.X2([_a(t),Je.XcmV3Junction.AccountKey20({key:e})])}}function Li(t){return t===qn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Je.XcmV3Junctions.X1(Je.XcmV3Junction.AccountKey20({key:t}))}}var jn=require("@galacticcouncil/common"),Ia=require("@galacticcouncil/xc-core");function q(t,e){return Hi(e)>=4?(0,jn.encodeLocation)(t):Vi(t)}function Hi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Vi(t){return{type:"Concrete",value:(0,jn.encodeLocation)(t)}}var Mi=1e3;function Ni(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 Oi(t){if(t)return Ni(t)?Mi:Ia.multiloc.findParachain(t)}function Ra(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Oi(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 Ys(t,e){let s="V4",n=q(U(e,t),s),o=ct;return[oe.XcmV4Instruction.ReserveAssetDeposited([{id:Z,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)},{id:n,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)}]),oe.XcmV4Instruction.ClearOrigin(),oe.XcmV4Instruction.BuyExecution({fees:{id:Z,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:oe.XcmV3WeightLimit.Unlimited()}),oe.XcmV4Instruction.DepositAsset({assets:oe.XcmV4AssetAssetFilter.Wild(oe.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:oe.XcmV3Junctions.X1(J(Qt))}}),oe.XcmV4Instruction.SetTopic(o)]}var pt=require("@galacticcouncil/descriptors");function zn(t,e){let s="V4",n=q(U(e,t),s),o=Qs("V4",J(Qo),J(Qt),n,ct);return[pt.XcmV4Instruction.WithdrawAsset([{id:Z,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)},{id:n,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)}]),pt.XcmV4Instruction.ClearOrigin(),pt.XcmV4Instruction.BuyExecution({fees:{id:Z,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:pt.XcmV3WeightLimit.Unlimited()}),...o.value]}var _=require("@galacticcouncil/descriptors");function La(t,e){let s="V4",n=q(U(e,t),s),o=ct;return[_.XcmV4Instruction.WithdrawAsset([{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)}]),_.XcmV4Instruction.ClearOrigin(),_.XcmV4Instruction.BuyExecution({fees:{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:_.XcmV3Junctions.X1(J(Qt))}}),_.XcmV4Instruction.SetTopic(o)]}function $n(t,e){let s="V4",n=q(U(e,t),s);return[_.XcmV4Instruction.BuyExecution({fees:{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:_.XcmV3Junctions.X1(J(Qt))}})]}function Ha(t,e,s){let n="V4",o=q(U(e,t),n),a=ct,r=$n(t,s);return[_.XcmV4Instruction.WithdrawAsset([{id:o,fun:_.XcmV3MultiassetFungibility.Fungible(ne)}]),_.XcmV4Instruction.ClearOrigin(),_.XcmV4Instruction.BuyExecution({fees:{id:o,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositReserveAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:_.XcmV3Junctions.X1(_.XcmV3Junction.Parachain(s.parachainId))},xcm:r}),_.XcmV4Instruction.SetTopic(a)]}var ee=require("@galacticcouncil/descriptors");function Va(t,e){let s="V5",n=q(U(e,t),s),o={parents:0,interior:ee.XcmV5Junctions.X1(ee.XcmV5Junction.AccountId32({id:Yo,network:void 0}))};return[ee.XcmV5Instruction.ReserveAssetDeposited([{id:Z,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}]),ee.XcmV5Instruction.PayFees({asset:{id:Z,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}}),ee.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}]),ee.XcmV5Instruction.ClearOrigin(),ee.XcmV5Instruction.DepositAsset({assets:ee.XcmV5AssetFilter.Wild(ee.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),ee.XcmV5Instruction.SetTopic(ct)]}var Ma=[Zt.ChainEcosystem.Polkadot,Zt.ChainEcosystem.Kusama],Wi={parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(1e3))},Ui=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Na=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Ma.includes(t.ecosystem)&&Ma.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Oa=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},ht=(t,e,s)=>{if(Na(e,s))return{type:t,value:Jn(s.ecosystem,s.parachainId)};if(s.parachainId===Jo)return{type:t,value:{parents:1,interior:l.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Rt:s.parachainId;return{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(n))}}},Gi=t=>t===Zt.ChainEcosystem.Kusama?l.XcmV3JunctionNetworkId.Kusama():l.XcmV3JunctionNetworkId.Polkadot(),Jn=(t,e)=>({parents:2,interior:l.XcmV3Junctions.X2([l.XcmV3Junction.GlobalConsensus(Gi(t)),l.XcmV3Junction.Parachain(e)])}),Wa=(t,e,s,n)=>{if(Na(e,s)){if(e.parachainId!==Rt){let o=Zt.multiloc.findGlobalConsensus(U(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(Rt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==Rt)return{dest:{type:t,value:Jn(s.ecosystem,Rt)},mode:"onward"}}},es=(t,e)=>({type:t,value:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),Yn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Ui(s)?Wi:s}}:{type:e},Ht=(t,e)=>({id:t,fun:l.XcmV3MultiassetFungibility.Fungible(e)}),Ua=(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)}})]}),Qs=(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:Js.ethereumLocation($e),xcm:[l.XcmV4Instruction.BuyExecution({fees:{id:Ki(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)]}},Ga=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(s.parachainId))}:Jn(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]}},Ki=t=>{let e=Zt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:l.XcmV3Junctions.Here()}},Ka=(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)}})]}),qa=(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 me="PolkadotXcm",qi=()=>({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=U(r,s),p=U(r,n.fee),d=q(m,i),b=q(p,i),A=Ht(d,e),C=Ht(b,n.fee.amount),v="limited_reserve_transfer_assets";return new Et.ExtrinsicConfig({module:me,func:v,getTx:X=>{let B=X.getUnsafeApi().tx[me][v];return s.key===n.fee.key?B({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Sa(m,p)?B({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[C,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):B({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[A,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),ji=()=>({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=q(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="limited_teleport_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),zi=()=>({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=q(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="reserve_transfer_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0})})}}),$i=()=>({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=q(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="transfer_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ji=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,b=o.fee.amount,A=o.fee;i&&(d=i.chain,b=Is.big.toBigInt(i.fee.amount,i.fee.decimals),A=i.fee);let C=J(r),v=i||d.usesCexForwarding?Fs(p,r,d):e,X=J(v),{transferType:B}=t,H=q(U(p,s),m),V=q(U(p,A),m),z=Ht(H,n),ae=Ht(V,b),T=s.isEqual(A),Ie=Wa(m,p,d,s),Tt=Ie?.dest??ht(m,p,d),yt={type:m,value:T?[z]:[ae,z]},Ws=Yn(m,B,H),Sn={type:m,value:T?H:V},_n=Yn(m,B,V),rs;if(Oa(H)&&o.chain.isEvmChain())rs=Qs(m,X,C,H,a);else if(Ie){let Ds=Is.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),ti=q(U(d,s),m);rs=Ga(m,X,d,Ie.mode,ti,Ds)}else rs=Ua(m,X,yt.value.length);let Us="transfer_assets_using_type_and_then";return new Et.ExtrinsicConfig({module:me,func:Us,getTx:Ds=>Ds.getUnsafeApi().tx[me][Us]({dest:Tt,assets:yt,assets_transfer_type:Ws,remote_fees_id:Sn,fees_transfer_type:_n,custom_xcm_on_dest:rs,weight_limit:{type:"Unlimited"}})})}}),Yi=()=>{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=Fs(c,n,i),p=J(m),{fee:d}=a,b=q(U(i,d),r),A=Is.big.toBigInt(e.fee,d.decimals);return new Et.ExtrinsicConfig({module:me,func:t,getTx:C=>C.getUnsafeApi().tx[me][t]({dest:ht(r,c,i),message:Ka(r,p,b,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,b=Fs(p,r,d),A=J(b),C=J(o),v=q(U(d,a),m),{fee:X}=i,B=Is.big.toBigInt(e.fee,X.decimals),H=n>X.amount?n-(X.amount+B):n;return new Et.ExtrinsicConfig({module:me,func:t,getTx:V=>V.getUnsafeApi().tx[me][t]({dest:ht(m,p,d),message:qa(m,A,v,H,B,C)})})}})}};function Qi(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Et.ExtrinsicConfig({module:me,func:a,getTx:r=>r.getUnsafeApi().tx[me][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(na)}}var Qn=()=>({limitedReserveTransferAssets:qi,limitedTeleportAssets:ji,reserveTransferAssets:zi,transferAssets:$i,transferAssetsUsingTypeAndThen:Ji,execute:Qi,send:Yi});var $a=require("@galacticcouncil/xc-core"),Ja=require("@galacticcouncil/common");var Rs=require("@galacticcouncil/descriptors"),ja=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Rs.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Rs.XcmV3Junctions.X2([Rs.XcmV3Junction.Parachain(e.parachainId),s])}};var za="XTokens",Zi=()=>({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?Fs(r,o,c):t,p=J(m),d=r.getAssetId(s),b=(0,Ja.encodeAssetId)(d),A="transfer";return new $a.ExtrinsicConfig({module:za,func:A,getTx:C=>C.getUnsafeApi().tx[za][A]({currency_id:b,amount:e,dest:ja(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),Zn=()=>({transfer:Zi});function f(){return{assetConversion:fa,assets:ha,balances:xa,ethereumXcm:Un,polkadotXcm:Qn,router:wa,utility:Ea,xTokens:Zn}}function vt(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 ts=require("@galacticcouncil/xc-core");var Ya=80000n,Qa=120000n,Za=100000n,er=2000000n,eo=15000000000000n;var ao={};is(ao,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>nr,AssethubClient:()=>_e,BaseClient:()=>Ye,HydrationClient:()=>ue,getAllAssetDepositLimits:()=>no,getAssetDepositLimit:()=>so,getGlobalWithdrawLimit:()=>oo});var to=require("@galacticcouncil/common"),Ls=require("@galacticcouncil/descriptors"),Ye=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ls.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,to.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ls.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,to.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ls.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Ge=require("@galacticcouncil/descriptors"),tr=require("@galacticcouncil/common"),Zs=require("@polkadot-api/substrate-bindings"),sr=require("@polkadot-api/utils");var _e=class extends Ye{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,tr.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,sr.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=Ge.XcmVersionedLocation.V5({parents:1,interior:Ge.XcmV5Junctions.X1(Ge.XcmV5Junction.Parachain(s))}),o=Ge.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Ge.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:Ge.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:Ge.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:Ge.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 ar=require("@galacticcouncil/descriptors");var nr=14400;function or(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,b;s&&(s.type==="Locked"?(p=s.value,m=o<s.value):(d=s.value[0],b=s.value[1]));let A=n?.type==="Local"?"Local":"External",C=!m&&d!==void 0&&d+nr<=o,v=null;if(r!==null)if(m)v=0n;else if(C)v=r;else{let X=b??a,B=a>X?a-X:0n;v=r>B?r-B:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:b,currentIssuance:a,headroom:v,category:A,periodExpired:C}}async function so(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 or(e,n,o,a,r,c)}async function no(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 b=d.keyArgs[0],A=d.value;if(A?.xcm_rate_limit==null)continue;let C=b===0?a:m.get(b)??0n,v=or(b,A,c.get(b),i.get(b),o,C);p.set(b.toString(),v)}return p}async function oo(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,v=c*C/p;d=c>v?c-v:0n}}let b=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:p,used:d,lastUpdateMs:i,headroom:b,lockdown:r,lockdownUntilMs:a}}var ue=class extends Ye{constructor(e){super(e,ar.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 so(this.api(),s)}getAllAssetDepositLimits(){return no(this.api())}getGlobalWithdrawLimit(){return oo(this.api())}};function ec(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ue(n),a=new _e(t.hub),r=Ys(e,n),c=Va(e,n),i=Ps($e),m=250000000n,p=sa($e,n.parachainId),[d,b,A,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,qs),a.calculateDestinationFeeV5(p,x)]),v=se(d,33n),X=se(b,33n),B=se(A,33n),V=se(C,33n)+X,z=v,ae=await a.quoteEtherForDot(i,V),T=se(ae,30n),Ie=T<eo*2n?eo*2n:T,Tt=se(await a.quoteEtherForDot(i,z),100n),yt=se(await a.quoteDotToEther(i,m+B),30n);return{amount:Ie+yt+Tt,breakdown:{executionFee:Ie,relayerFee:yt,remoteEtherFee:Tt,hydrationDotFee:z}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new _e(t.hub),i=Ps($e),m=zn(e,a),[p,d,b]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,qs),c.calculateDestinationFee(m,s)]),A=await r.evmClient.getProvider().getGasPrice(),C=er+Qa+Ya+Za,v=A*C,X=se(v,10n),B=p+se(d,33n)+se(b,33n),H=se(await c.quoteDotForExactEther(i,X),20n),V=new ue(a),z=On({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ct}),ae=se(await V.calculateDestinationFeeV5(z,x),33n);return{amount:B+H+ae,breakdown:{dotRemoteFee:B,dotToEtherSwapAmount:H,etherFeeAmount:X,sourceExecutionFee:ae}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=ts.Snowbridge.fromChain(o),c=new Ye(a),i=new _e(t.hub),m=Ys(e,a),[p,d]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),b=d+se(p,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:ts.Abi.Snowbridge,address:r.getGateway(),args:[A,a.parachainId,b],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:b}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new _e(t.hub),r=zn(e,o),c=Ys(e,o),[i,m,p,d,b]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,qs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+se(p,25n)+d+se(b,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:b}}}})}}function tc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Ra(e,o,a,r),r){let b=new Ye(a),A=new Ye(r),C=$n(e,a),v=Ha(e,r,a),[X,B]=await Promise.all([b.calculateDestinationFee(C,e),A.calculateDestinationFee(v,e)]),H=B+X,V=se(H,20n),z=V-H;return{amount:V,breakdown:{reserveFee:B,destinationFee:X,margin:z}}}let c=new Ye(a),i=La(e,a),m=await c.calculateDestinationFee(i,e),p=se(m,20n),d=p-m;return{amount:p,breakdown:{totalFee:m,margin:d}}}})}}function sc(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=ts.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:ts.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:sc,XcmPaymentApi:tc,Snowbridge:ec}}var nc="0";function oc(){return{build:async({address:t,chain:e})=>{let n=await new ue(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():nc,a=e.findAssetById(o);return a?a.asset:Y}}}var ac=()=>({accountCurrencyMap:oc});function Hs(){return{multiTransactionPayment:ac}}var Ke=require("@galacticcouncil/xc-core"),rr=require("@mysten/sui/transactions"),en=require("@mysten/sui/utils"),ir=require("@wormhole-foundation/sdk-base"),rc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Ke.Ntt.fromChain(r,n),m=Ke.Wormhole.fromChain(r),p=Ke.Wormhole.fromChain(c),d=r.client,b=e;c instanceof Ke.EvmParachain&&(b=await c.getDerivatedAddress(e));let A=ir.encoding.hex.decode(p.normalizeAddress(b)),C=m.getCoreBridge(),v=i.manager,X=i.transceiver.wormhole,B=i.token,[H,V,z,ae]=await Promise.all([Ke.suiPkg.getWormholePackageId(d,C),Ke.suiPkg.getCurrentPackageId(d,v),Ke.suiPkg.getCurrentPackageId(d,X),d.getCoinMetadata({coinType:B})]);if(!ae?.id)throw new Error("Unable to fetch coin metadata of "+B);let T=new rr.Transaction,[Ie]=T.splitCoins(T.gas,[T.pure.u64(s)]),[Tt]=T.moveCall({target:`${V}::upgrades::new_version_gated`,arguments:[]}),[yt,Ws]=T.moveCall({target:`${V}::ntt::prepare_transfer`,typeArguments:[B],arguments:[T.object(v),Ie,T.object(ae.id),T.pure.u16(p.getWormholeId()),T.pure.vector("u8",Array.from(A)),T.pure.option("vector<u8>",null),T.pure.bool(!1)]}),[Sn]=T.moveCall({target:`${V}::state::get_next_sequence`,typeArguments:[B],arguments:[T.object(v)]});T.moveCall({target:`${V}::ntt::transfer_tx_sender`,typeArguments:[B],arguments:[T.object(v),Tt,T.object(ae.id),yt,T.object(en.SUI_CLOCK_OBJECT_ID)]});let[_n]=T.moveCall({target:`${V}::state::create_transceiver_message`,typeArguments:[`${z}::wormhole_transceiver::TransceiverAuth`,B],arguments:[T.object(v),Sn,T.object(en.SUI_CLOCK_OBJECT_ID)]}),[rs]=T.moveCall({target:`${z}::wormhole_transceiver::release_outbound`,typeArguments:[`${V}::auth::ManagerAuth`],arguments:[T.object(X),_n]}),[Us]=T.splitCoins(T.gas,[T.pure.u64(0n)]);T.moveCall({target:`${H}::publish_message::publish_message`,arguments:[T.object(C),Us,rs,T.object(en.SUI_CLOCK_OBJECT_ID)]});let[Ds]=T.moveCall({target:"0x2::coin::from_balance",typeArguments:[B],arguments:[Ws]});return T.mergeCoins(T.gas,[Ds]),new Ke.MoveConfig({transaction:T,func:"transfer",module:"NttManager"})}}),cr=()=>({transfer:rc});function mr(){return{Ntt:cr}}function ro(){return{Wormhole:mr}}var ut=require("@galacticcouncil/xc-core"),ur=require("@solana/spl-token"),tn=require("@solana/web3.js"),dr=require("@wormhole-foundation/sdk-base"),lr=require("@wormhole-foundation/sdk-definitions"),fr=require("@wormhole-foundation/sdk-solana"),pr=require("@wormhole-foundation/sdk-solana-ntt"),If=require("@wormhole-foundation/sdk-definitions-ntt");async function ic(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 cc(t,e,s){let n=await ic(t,e);return{instructions:"message"in e?tn.TransactionMessage.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var mc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=ut.Ntt.fromChain(c,n),p=ut.Wormhole.fromChain(c),d=ut.Wormhole.fromChain(i),b=e;i instanceof ut.EvmParachain&&(b=await i.getDerivatedAddress(e));let A=new pr.SolanaNtt("Mainnet","Solana",c.connection,{coreBridge:p.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),C=c.getBalanceType(n)===ut.SolanaBalanceType.Native,v=tn.Keypair.generate(),X=[];for await(let V of A.transfer(new fr.SolanaAddress(o),s,{chain:(0,dr.toChain)(d.getWormholeId()),address:new lr.UniversalAddress(d.normalizeAddress(b))},{queue:!1,automatic:!1,wrapNative:C},v)){let{transaction:z,signers:ae}=V.transaction;X.push(await cc(c.connection,z,ae??[]))}let B=C?BigInt(await(0,ur.getMinimumBalanceForRentExemptAccount)(c.connection)):0n,H=X[X.length-1];return new ut.ProgramConfig({instructions:H.instructions,signers:H.signers,lookupTables:H.lookupTables,prerequisites:X.slice(0,-1),rentReserve:B,func:"transfer",module:"NttManager"})}}),hr=()=>({transfer:mc});function br(){return{Ntt:hr}}function io(){return{Wormhole:br}}var mo={};is(mo,{Tag:()=>Vt});var Vt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Vt||{});function yr(t,e){return new uo.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function xr(t,e){return new uo.AssetRoute({source:{asset:t,fee:{asset:D},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:$().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var uc=[xr(lt,tt)],dc=[yr(lt,tt)],gr=new Ar.ChainRoutes({chain:ms,routes:[...dc,...uc]});var Vs=require("@galacticcouncil/xc-core");var sn=require("@galacticcouncil/xc-core");function Mt(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function de(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:D}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function le(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:D}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var lc=[Mt(xt,Le),Mt(nt,Ve),Mt(g,Ne),Mt(y,Me),Mt(at,Oe),Mt(wt,Se),Mt(D,Se)],fc=[new Vs.AssetRoute({source:{asset:D,fee:{asset:D}},destination:{chain:h,asset:D,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:D}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),de(pe,pe),de(he,he),de(be,be),de(ye,ye),de(we,we),de(Ee,Ee),de(ve,ve),de(Ae,Ae),de(xe,xe),de(ge,ge),de(Ce,Ce),de(Te,Te),de(Pe,Pe),de(g,gt),de(y,At)],pc=[new Vs.AssetRoute({source:{asset:D,fee:{asset:D}},destination:{chain:h,asset:D,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:D}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),le(pe,pe),le(he,he),le(be,be),le(ye,ye),le(we,we),le(Ee,Ee),le(ve,ve),le(Ae,Ae),le(xe,xe),le(ge,ge),le(Ce,Ce),le(Te,Te),le(Pe,Pe),le(g,gt),le(y,At)],wr=new Vs.ChainRoutes({chain:P,routes:[...lc,...fc,...pc]});var Cr=[gr,wr];var Nt=require("@galacticcouncil/xc-core");var nn=require("@galacticcouncil/xc-core");var ss=0,hc=t=>{let{source:e}=t;return!!e.feeSwap},bc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},kr=f().assetConversion().swapTokensForExactTokens({slippage:30});function yc(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:x,extra:ss}},destination:{chain:e,asset:t,fee:{amount:s,asset:y}},extrinsic:vt(bc,kr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function on(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:vt(hc,kr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function ns(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:x,extra:ss}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function an(t){return yc(t,h,.02)}var xc=[new Nt.AssetRoute({source:{asset:x,fee:{asset:x,extra:ss}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Nt.AssetRoute({source:{asset:F,fee:{asset:x,extra:ss}},destination:{chain:h,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),ns(y,h,.02),ns(g,h,.02),an(Ct)],Ac=[new Nt.AssetRoute({source:{asset:F,fee:{asset:x,extra:ss}},destination:{chain:rt,asset:F,fee:{amount:.001,asset:F}},extrinsic:f().polkadotXcm().transferAssets()})],gc=[ns(y,K,.25),ns(g,K,.25)],wc=[ns(y,M,.03),ns(g,M,.03)],Cc=[new Nt.AssetRoute({source:{asset:W,fee:{asset:x,extra:ss}},destination:{chain:St,asset:W,fee:{amount:2.5,asset:W}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Er=new Nt.ChainRoutes({chain:Pt,routes:[on(y,h,.02),on(g,h,.02),on(x,h,.001)]}),vr=new Nt.ChainRoutes({chain:k,routes:[...xc,...Ac,...gc,...wc,...Cc]});var Qe=require("@galacticcouncil/xc-core");var kc=[new Qe.AssetRoute({source:{asset:L},destination:{chain:h,asset:L,fee:{amount:.044306118,asset:L}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new Qe.AssetRoute({source:{asset:I,fee:{asset:L}},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:M}),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:S,fee:{asset:L}},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:K}),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:R,fee:{asset:L}},destination:{chain:h,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:N,fee:{asset:L}},destination:{chain:h,asset:N,fee:{amount:.01,asset:N}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:O,fee:{asset:L}},destination:{chain:h,asset:O,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:M}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:te,fee:{asset:L}},destination:{chain:h,asset:te,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:M}),asset:te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:y,fee:{asset:L}},destination:{chain:h,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:g,fee:{asset:L}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Tr=new Qe.ChainRoutes({chain:re,routes:[...kc]});var De=require("@galacticcouncil/xc-core");var Ec=[new De.AssetRoute({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:O,fee:{asset:I}},destination:{chain:h,asset:O,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:te,fee:{asset:I}},destination:{chain:h,asset:te,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:x,fee:{asset:I}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new De.AssetRoute({source:{asset:L,fee:{asset:I}},destination:{chain:h,asset:L,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:re}),asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:S,fee:{asset:I}},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:K}),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:R,fee:{asset:I}},destination:{chain:h,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:y,fee:{asset:I}},destination:{chain:h,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:g,fee:{asset:I}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],vc=[new De.AssetRoute({source:{asset:y,fee:{asset:I}},destination:{chain:k,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:g,fee:{asset:I}},destination:{chain:k,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Pr=new De.ChainRoutes({chain:M,routes:[...Ec,...vc]});var qe=require("@galacticcouncil/xc-core");var j=()=>({asset:Hs().multiTransactionPayment().accountCurrencyMap()});var bt=require("@galacticcouncil/xc-core");var Tc=1,Pc=.02,rn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},cn=f().router().buy({slippage:30});function G(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Bs(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Ot(t,e){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function mn(t){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:k,asset:t,fee:{amount:Pc,asset:y}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function lo(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:rt,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Fc(t,e,s="LocalReserve"){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:Tc,asset:S}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Wt(t){return Fc(t,K,"DestinationReserve")}function Ze(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ie(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function ce(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Bc=[Ot(x,k),Ot(F,k),Ot(y,k),Ot(g,k),mn(Ct)],Xc=[lo(F,.05,.005),lo(x,.2,.02)],Sc=[G(L,re),G(I,re,M),G(S,re,K),new qe.AssetRoute({source:{asset:R,fee:j()},destination:{chain:re,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:N,fee:j()},destination:{chain:re,asset:N,fee:{amount:.01,asset:N}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(O,re,M),G(te,re,M),G(y,re,k),G(g,re,k)],_c=[G(I,M),G(O,M),G(te,M),G(L,M,re),G(S,M,K),new qe.AssetRoute({source:{asset:R,fee:j()},destination:{chain:M,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(y,M,k),G(g,M,k),new qe.AssetRoute({source:{asset:x,fee:j()},destination:{chain:M,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Dc=[Bs(R,ze,62e-8),Bs(N,ze,.0019213457),Bs(Y,ze,.5),Bs(y,ze,.3),Bs(g,ze,.3),new qe.AssetRoute({source:{asset:O,fee:j()},destination:{chain:ze,asset:O,fee:{amount:.01,asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:x,fee:j()},destination:{chain:ze,asset:x,fee:{amount:.05,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Ic=[G(Y,K),G(S,K),G(y,K,k),G(g,K,k),Wt(Le),Wt(Ve),Wt(Ne),Wt(Me),Wt(Oe),Wt(Se),Wt(Q)],Rc=[new qe.AssetRoute({source:{asset:W,fee:j()},destination:{chain:St,asset:W,fee:{amount:2.5,asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Lc=[G(ot,As)],Hc=[new qe.AssetRoute({source:{asset:Re,fee:j()},destination:{chain:ls,asset:Re,fee:{amount:.04,asset:Re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Vc=[new qe.AssetRoute({source:{asset:Be,fee:j()},destination:{chain:gs,asset:Be,fee:{amount:.02,asset:Be}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Mc=[new qe.AssetRoute({source:{asset:He,fee:j()},destination:{chain:bs,asset:He,fee:{amount:1.1,asset:He}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Nc=[G(st,hs)],Oc=[G(et,ds)],Wc=[Ze(Le,xt,P),Ze(Ve,nt,P),Ze(Ne,g,P),Ze(Me,y,P),Ze(Oe,at,P),Ze(Se,D,P)],Uc=[Ze(tt,lt,ms)],Gc=[Ze(Q,Q,It),Ze(Fe,Fe,It),Ze(Xe,Xe,It)],Kc=[Ze(ke,ke,Cs)],qc=[ie(D,D,P),ie(pe,pe,P),ie(he,he,P),ie(be,be,P),ie(ye,ye,P),ie(we,we,P),ie(Ee,Ee,P),ie(ve,ve,P),ie(Te,Te,P),ie(Ae,Ae,P),ie(xe,xe,P),ie(ge,ge,P),ie(Ce,Ce,P),ie(Pe,Pe,P),ie(gt,g,P),ie(At,y,P)],jc=[ce(D,D,P),ce(pe,pe,P),ce(he,he,P),ce(be,be,P),ce(ye,ye,P),ce(we,we,P),ce(Ee,Ee,P),ce(ve,ve,P),ce(Te,Te,P),ce(Ae,Ae,P),ce(xe,xe,P),ce(ge,ge,P),ce(Ce,Ce,P),ce(Pe,Pe,P),ce(gt,g,P),ce(At,y,P)],zc=[Ot(x,Pt),Ot(y,Pt),Ot(g,Pt)],Fr=new qe.ChainRoutes({chain:h,routes:[...Oc,...Bc,...Sc,..._c,...zc,...Uc,...Hc,...Wc,...qc,...Gc,...Kc,...jc,...Dc,...Vc,...Xc,...Ic,...Rc,...Nc,...Mc,...Lc]});var os=require("@galacticcouncil/xc-core");function un(t,e){return new os.AssetRoute({source:{asset:t,fee:{asset:N}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var $c=[new os.AssetRoute({source:{asset:N},destination:{chain:h,asset:N,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:N}},extrinsic:f().xTokens().transfer()}),new os.AssetRoute({source:{asset:R,fee:{asset:N}},destination:{chain:h,asset:R,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:N}},extrinsic:f().xTokens().transfer()}),new os.AssetRoute({source:{asset:Y,fee:{asset:N}},destination:{chain:h,asset:Y,fee:{amount:.5,asset:Y}},extrinsic:f().xTokens().transfer()}),un(O,M),un(y,k),un(g,k),un(x,k)],Br=new os.ChainRoutes({chain:ze,routes:[...$c]});var Xs=require("@galacticcouncil/xc-core");var fo=require("@galacticcouncil/xc-core");function Jc(t,e,s){return new fo.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Yc(t,e,s){return new fo.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Ut(t,e){return Jc(t,h,e)}function dn(t,e){return Yc(t,h,e)}var Qc=[new Xs.AssetRoute({source:{asset:S},destination:{chain:h,asset:S,fee:{amount:.05,asset:S}},contract:$().PolkadotXcm().transferAssetsToPara32()}),dn(Y,.6),dn(y,.3),dn(g,.3),Ut(Le,.004),Ut(Ve,.004),Ut(Ne,.004),Ut(Me,.004),Ut(Oe,1e-7),Ut(Se,2e-6),Ut(Q,2e-5)],Zc=[new Xs.AssetRoute({source:{asset:y,fee:{asset:S}},destination:{chain:k,asset:y,fee:{amount:.18,asset:y}},contract:$().PolkadotXcm().transferAssetsToPara32()}),new Xs.AssetRoute({source:{asset:g,fee:{asset:S}},destination:{chain:k,asset:g,fee:{amount:.18,asset:g}},contract:$().PolkadotXcm().transferAssetsToPara32()})],Xr=new Xs.ChainRoutes({chain:K,routes:[...Qc,...Zc]});var Ms=require("@galacticcouncil/xc-core");var e0=[new Ms.AssetRoute({source:{asset:W},destination:{chain:h,asset:W,fee:{amount:.01,asset:W}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],t0=[new Ms.AssetRoute({source:{asset:W},destination:{chain:k,asset:W,fee:{amount:.1,asset:W}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Sr=new Ms.ChainRoutes({chain:St,routes:[...e0,...t0]});var ln=require("@galacticcouncil/xc-core");var s0=[new ln.AssetRoute({source:{asset:ot},destination:{chain:h,asset:ot,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:ot}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],_r=new ln.ChainRoutes({chain:As,routes:[...s0]});var fn=require("@galacticcouncil/xc-core");var n0=[new fn.AssetRoute({source:{asset:Re},destination:{chain:h,asset:Re,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Re}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Dr=new fn.ChainRoutes({chain:ls,routes:[...n0]});var pn=require("@galacticcouncil/xc-core");var o0=[new pn.AssetRoute({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.2,asset:He}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Ir=new pn.ChainRoutes({chain:bs,routes:[...o0]});var hn=require("@galacticcouncil/xc-core");var a0=[new hn.AssetRoute({source:{asset:et},destination:{chain:h,asset:et,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:et}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Rr=new hn.ChainRoutes({chain:ds,routes:[...a0]});var bn=require("@galacticcouncil/xc-core");var r0=[new bn.AssetRoute({source:{asset:Be,fee:{asset:Be,extra:.030555}},destination:{chain:h,asset:Be,fee:{amount:.03,asset:Be}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Lr=new bn.ChainRoutes({chain:gs,routes:[...r0]});var yn=require("@galacticcouncil/xc-core");var i0=[new yn.AssetRoute({source:{asset:st},destination:{chain:h,asset:st,fee:{amount:.205,asset:st}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Hr=new yn.ChainRoutes({chain:hs,routes:[...i0]});var Vr=[Rr,vr,Er,Tr,Pr,Fr,Br,Xr,Sr,Hr,_r,Dr,Ir,Lr];var xn=require("@galacticcouncil/xc-core");function po(t){return new xn.AssetRoute({source:{asset:t,fee:{asset:Q}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:io().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var c0=[po(Q),po(Fe),po(Xe)],Mr=new xn.ChainRoutes({chain:It,routes:[...c0]});var Nr=[Mr];var An=require("@galacticcouncil/xc-core");function m0(t){return new An.AssetRoute({source:{asset:t,fee:{asset:ke}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:ro().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var u0=[m0(ke)],Or=new An.ChainRoutes({chain:Cs,routes:[...u0]});var Wr=[Or];var as=require("@galacticcouncil/xc-core");var d0=require("@galacticcouncil/xc-core");var Ns=.0015;var l0=new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),f0=new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:Es,asset:F,fee:{amount:.0012,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),p0=[new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:h,asset:F,fee:{amount:.04,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new as.AssetRoute({source:{asset:x,fee:{asset:F,extra:Ns}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ur=new as.ChainRoutes({chain:rt,routes:[f0,l0,...p0]});var Os=require("@galacticcouncil/xc-core");var ho=()=>({asset:Hs().multiTransactionPayment().accountCurrencyMap()});var h0=[new Os.AssetRoute({source:{asset:y,fee:ho()},destination:{chain:rt,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],b0=[new Os.AssetRoute({source:{asset:F,fee:ho()},destination:{chain:rt,asset:F,fee:{amount:.0012,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Gr=new Os.ChainRoutes({chain:Es,routes:[...h0,...b0]});var Kr=[Ur,Gr];var y0=[...Cr,...Vr,...Nr,...Wr,...Kr],qr=new Map(y0.map(t=>[t.chain.key,t]));var bo=require("@galacticcouncil/xc-core");var Gt=require("@galacticcouncil/xc-core"),gn=class extends Gt.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Gt.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},wn=class extends Gt.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 Gt.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Gt.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var Ss=require("@galacticcouncil/xc-core");var Cn=class extends Ss.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new _e(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new _e(a).getSystemAccountBalance(n)===0n)throw new Ss.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},kn=class extends Ss.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new _e(a).checkIfFrozen(n,s))throw new Ss.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var dt=require("@galacticcouncil/xc-core");var x0=12,A0=1,g0=18,En=class extends dt.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ue(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 ue(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||A0,p=i.decimals||x0,d=m*Math.pow(10,p),b=await r.getAssetBalance(n,c);if(BigInt(d*1.1)>b)throw new dt.TransferValidationError("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},vn=class extends dt.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ue(a).getAssetDepositLimit(n);if(c.locked)throw new dt.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 dt.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},Tn=class extends dt.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new ue(n).getGlobalWithdrawLimit();if(a.lockdown)throw new dt.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Pn=class extends dt.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 ue(a),c=a.getBalanceAssetId(S),i=a.getAssetDecimals(S)||g0,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new dt.TransferValidationError("Insufficient_Ed",{amount:1,asset:S.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var fe={isAny:()=>!0,isHydration:t=>t instanceof bo.Parachain&&t.parachainId===2034,isHub:t=>t instanceof bo.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},jr=[new gn(fe.isAny,fe.isAny),new wn(fe.isAny,fe.isAny),new Cn(fe.isAny,fe.isHub),new kn(fe.isHub,fe.isAny),new En(fe.isAny,fe.isHydration),new Pn(fe.isHydration,fe.isAny),new vn(fe.isAny,fe.isHydration),new Tn(fe.isHydration,fe.isAny)];var go={};is(go,{AssethubDex:()=>Ao,HydrationDex:()=>yo});var _s=require("@galacticcouncil/sdk-next"),$r=require("@galacticcouncil/common"),Jr=require("polkadot-api");var zr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:Fn}=_s.pool,{TradeRouteBuilder:w0,TradeRouter:C0}=_s.sor,{TxBuilderFactory:k0}=_s.tx,yo=class{chain;client;poolCtx;txBuilder;getCtx=zr(async e=>{console.log("init swap router",e,"\u2705");let s=new C0(this.poolCtx);return s.withFilter({useOnly:[Fn.Aave,Fn.Omni,Fn.Stable,Fn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ue(this.chain),this.txBuilder=new k0(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 Jr.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:w0.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,$r.RUNTIME_DECIMALS);return a/BigInt(r)}};var xo=require("@galacticcouncil/common"),Ao=class{chain;client;constructor(e){this.chain=e,this.client=new _e(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,xo.encodeLocation)(o),(0,xo.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var ei=require("@galacticcouncil/xc-core");var Yr=require("@galacticcouncil/xc-core");function Bn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Yr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function Qr(t){let{decimals:e,id:s}=t;return{asset:Bn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Zr(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Bn(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 Xn=class extends ei.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=Bn(a),c=Qr(a),i=Zr(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,an(r)),this.updateChainRoute(s,mn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
|
1
|
+
"use strict";var Dn=Object.defineProperty;var si=Object.getOwnPropertyDescriptor;var ni=Object.getOwnPropertyNames;var oi=Object.prototype.hasOwnProperty;var is=(t,e)=>{for(var s in e)Dn(t,s,{get:e[s],enumerable:!0})},ai=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ni(e))!oi.call(t,o)&&o!==s&&Dn(t,o,{get:()=>e[o],enumerable:!(n=si(e,o))||n.enumerable});return t};var ri=t=>ai(Dn({},"__esModule",{value:!0}),t);var E0={};is(E0,{HydrationConfigService:()=>Xn,assetsMap:()=>wo,builders:()=>co,chainsMap:()=>Lo,clients:()=>ao,dex:()=>go,routesMap:()=>qr,tags:()=>mo,validations:()=>jr});module.exports=ri(E0);var w=require("@galacticcouncil/xc-core"),pe=new w.Asset({key:"aave",originSymbol:"AAVE"}),et=new w.Asset({key:"ajun",originSymbol:"AJUN"}),he=new w.Asset({key:"apyusd",originSymbol:"apyUSD"}),H=new w.Asset({key:"astr",originSymbol:"ASTR"}),I=new w.Asset({key:"bnc",originSymbol:"BNC"}),In=new w.Asset({key:"bsx",originSymbol:"BSX"}),be=new w.Asset({key:"cfg_new",originSymbol:"CFG"}),Re=new w.Asset({key:"cru",originSymbol:"CRU"}),xt=new w.Asset({key:"dai",originSymbol:"DAI"}),Le=new w.Asset({...xt,key:"dai_mwh"}),x=new w.Asset({key:"dot",originSymbol:"DOT"}),D=new w.Asset({key:"eth",originSymbol:"ETH"}),ye=new w.Asset({key:"ena",originSymbol:"ENA"}),lt=new w.Asset({key:"eurc",originSymbol:"EURC"}),tt=new w.Asset({...lt,key:"eurc_mwh"}),S=new w.Asset({key:"glmr",originSymbol:"GLMR"}),Y=new w.Asset({key:"hdx",originSymbol:"HDX"}),R=new w.Asset({key:"ibtc",originSymbol:"IBTC"}),M=new w.Asset({key:"intr",originSymbol:"INTR"}),Fe=new w.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),F=new w.Asset({key:"ksm",originSymbol:"KSM"}),xe=new w.Asset({key:"ldo",originSymbol:"LDO"}),Ae=new w.Asset({key:"lbtc",originSymbol:"LBTC"}),Be=new w.Asset({key:"ewt",originSymbol:"EWT"}),ge=new w.Asset({key:"link",originSymbol:"LINK"}),W=new w.Asset({key:"myth",originSymbol:"MYTH"}),st=new w.Asset({key:"neuro",originSymbol:"NEURO"}),He=new w.Asset({key:"pen",originSymbol:"PEN"}),we=new w.Asset({key:"paxg",originSymbol:"PAXG"}),Xe=new w.Asset({key:"prime",originSymbol:"PRIME"}),Ce=new w.Asset({key:"sky",originSymbol:"SKY"}),Q=new w.Asset({key:"sol",originSymbol:"SOL"}),ke=new w.Asset({key:"sui",originSymbol:"SUI"}),Ee=new w.Asset({key:"susde",originSymbol:"sUSDe"}),nt=new w.Asset({key:"susds",originSymbol:"sUSDS"}),Ve=new w.Asset({...nt,key:"susds_mwh"}),ve=new w.Asset({key:"tbtc",originSymbol:"tBTC"}),Te=new w.Asset({key:"trac",originSymbol:"TRAC"}),ot=new w.Asset({key:"unq",originSymbol:"UNQ"}),y=new w.Asset({key:"usdt",originSymbol:"USDT"}),Me=new w.Asset({...y,key:"usdt_mwh"}),At=new w.Asset({...y,key:"usdt_eth"}),g=new w.Asset({key:"usdc",originSymbol:"USDC"}),Ne=new w.Asset({...g,key:"usdc_mwh"}),gt=new w.Asset({...g,key:"usdc_eth"}),te=new w.Asset({key:"vastr",originSymbol:"vASTR"}),O=new w.Asset({key:"vdot",originSymbol:"vDOT"}),wt=new w.Asset({key:"weth",originSymbol:"WETH"}),Se=new w.Asset({...wt,key:"weth_mwh"}),at=new w.Asset({key:"wbtc",originSymbol:"WBTC"}),Oe=new w.Asset({...at,key:"wbtc_mwh"}),Pe=new w.Asset({key:"wsteth",originSymbol:"wstETH"}),Ct=new w.Asset({key:"wud",originSymbol:"WUD"}),ii=[pe,et,he,H,In,be,Re,I,xt,Le,x,ye,lt,tt,D,S,Y,R,M,F,xe,Ae,Be,Fe,ge,W,st,we,He,Xe,Ce,Q,ke,Ee,nt,Ve,Te,ve,ot,g,Ne,gt,y,Me,At,te,O,at,Oe,wt,Se,Pe,Ct],wo=new Map(ii.map(t=>[t.key,t]));var cs=require("@galacticcouncil/xc-core");var Co=require("viem/chains"),ms=new cs.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:D,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:lt,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:g,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:cs.EvmBalanceType.Erc20,ecosystem:cs.ChainEcosystem.Ethereum,evmChain:Co.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:{[lt.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});var Kt=require("@galacticcouncil/xc-core");var ko=require("viem/chains"),P=new Kt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:pe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:he,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:be,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:wt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:ye,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ee,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:nt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ve,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:at,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Ae,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:y,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:xe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:ge,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:we,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ce,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Te,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Pe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Kt.EvmBalanceType.Erc20,balanceOverrides:{[D.key]:Kt.EvmBalanceType.Native},ecosystem:Kt.ChainEcosystem.Ethereum,evmChain:ko.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:{[xt.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[nt.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[g.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[y.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[at.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[wt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[D.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Eo=[ms,P];var us=require("@galacticcouncil/xc-core");var ds=new us.Parachain({assetsData:[{asset:et,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:us.SubstrateBalanceType.System,ecosystem:us.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var je=require("@galacticcouncil/xc-core");var vo={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:Ct,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:W,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:F,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:je.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:je.SubstrateBalanceType.System,[F.key]:je.SubstrateBalanceType.ForeignAssets,[W.key]:je.SubstrateBalanceType.ForeignAssets},min:je.SubstrateMinType.Assets,ecosystem:je.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 je.Parachain({...vo,key:"assethub",name:"AssetHub Polkadot"}),Pt=new je.Parachain({...vo,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var qt=require("@galacticcouncil/xc-core");var ae=new qt.Parachain({assetsData:[{asset:H,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:I,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:te,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:qt.SubstrateBalanceType.Assets,balanceOverrides:{[H.key]:qt.SubstrateBalanceType.System},ecosystem:qt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var jt=require("@galacticcouncil/xc-core");var ci=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],V=new jt.Parachain({assetsData:[{asset:I,id:{Native:I.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:te,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:y,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:H,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:S,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:jt.SubstrateBalanceType.Tokens,balanceOverrides:{[I.key]:jt.SubstrateBalanceType.System},ecosystem:jt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:ci});var Ft=require("@galacticcouncil/xc-core");var ls=new Ft.Parachain({assetsData:[{asset:Re,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Ft.SubstrateBalanceType.System,ecosystem:Ft.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:Ft.XcmVersion.v3});var zt=require("@galacticcouncil/xc-core"),Bo=require("viem");var Po=require("@galacticcouncil/common"),Fo=require("polkadot-api"),{isEvmAccount:mi,H160:To}=Po.h160,Gs=class{async toH160(e,s){if(mi(e))return To.fromAccount(e);let n=To.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,Fo.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 ui=new Gs,Rn=["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"],Ln=["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"],di=(0,Bo.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Rn,webSocket:Ln},default:{http:Rn,webSocket:Ln}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new zt.EvmParachain({assetsData:[{asset:Y,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:pe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:et,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:I,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:be,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Re,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:Le,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:he,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:ye,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:S,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:R,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Fe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Be,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:xe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:F,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Ae,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ge,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:we,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:W,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:st,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:He,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ce,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Q,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ke,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ee,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:nt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ve,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ve,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Te,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:ot,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:Ne,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:tt,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:gt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:y,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Me,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:At,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:te,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:at,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Oe,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:wt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Se,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Pe,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:Ct,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:zt.SubstrateBalanceType.Tokens,balanceOverrides:{[Y.key]:zt.SubstrateBalanceType.System},ecosystem:zt.ChainEcosystem.Polkadot,evmChain:di,evmResolver:ui,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Le.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[tt.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Xe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Q.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[ke.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[Ve.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Ne.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Me.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Oe.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Se.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Ln,rpcs:Rn});var Bt=require("@galacticcouncil/xc-core");var ze=new Bt.Parachain({assetsData:[{asset:M,decimals:10,id:{Token:M.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:R,decimals:8,id:{Token:R.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:y,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:Y,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:O,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Bt.SubstrateBalanceType.Tokens,ecosystem:Bt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Bt.XcmVersion.v3});var Xt=require("@galacticcouncil/xc-core"),Xo=require("viem");var li=(0,Xo.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}),q=new Xt.EvmParachain({assetsData:[{asset:S,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Le,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:tt,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Q,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Fe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ve,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ke,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ne,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Me,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Oe,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:Y,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:y,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Xt.EvmBalanceType.Erc20,balanceOverrides:{[S.key]:Xt.SubstrateBalanceType.System},ecosystem:Xt.ChainEcosystem.Polkadot,evmChain:li,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var fs=require("@galacticcouncil/xc-core");var St=new fs.Parachain({assetsData:[{asset:W,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:fs.SubstrateBalanceType.System,ecosystem:fs.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 ps=require("@galacticcouncil/xc-core");var hs=new ps.Parachain({assetsData:[{asset:st,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ps.SubstrateBalanceType.System,ecosystem:ps.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 _t=require("@galacticcouncil/xc-core");var bs=new _t.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:_t.SubstrateBalanceType.System,ecosystem:_t.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:_t.XcmVersion.v3});var ys=require("@galacticcouncil/xc-core");var fi={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:ys.SubstrateBalanceType.System,ecosystem:ys.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"},So=new ys.Parachain({...fi,key:"polkadot"});var xs=require("@galacticcouncil/xc-core");var As=new xs.Parachain({assetsData:[{asset:ot,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:xs.SubstrateBalanceType.System,ecosystem:xs.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var Dt=require("@galacticcouncil/xc-core");var gs=new Dt.Parachain({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Dt.SubstrateBalanceType.System,ecosystem:Dt.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:Dt.XcmVersion.v3});var _o=[ds,k,Pt,ae,V,ls,h,hs,ze,q,St,bs,So,As,gs];var $t=require("@galacticcouncil/xc-core");var It=new $t.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:Q,decimals:9},{asset:Fe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Xe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:$t.SolanaBalanceType.Token,balanceOverrides:{[Q.key]:$t.SolanaBalanceType.Native},ecosystem:$t.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:{[Q.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Fe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Xe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Do=[It];var ws=require("@galacticcouncil/xc-core");var Cs=new ws.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ke,decimals:9}],balance:ws.SuiBalanceType.Native,ecosystem:ws.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[ke.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da",coinMetadata:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}}});var Io=[Cs];var kt=require("@galacticcouncil/xc-core");var rt=new kt.Parachain({assetsData:[{asset:F,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:y,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:kt.SubstrateBalanceType.Assets,balanceOverrides:{[F.key]:kt.SubstrateBalanceType.System},min:kt.SubstrateMinType.Assets,ecosystem:kt.ChainEcosystem.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});var ks=require("@galacticcouncil/xc-core");var Es=new ks.Parachain({assetsData:[{asset:In,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:F,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:ks.SubstrateBalanceType.Tokens,ecosystem:ks.ChainEcosystem.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Ro=[rt,Es];var pi=[...Eo,..._o,...Do,...Io,...Ro],Lo=new Map(pi.map(t=>[t.key,t]));var Ar=require("@galacticcouncil/xc-core");var uo=require("@galacticcouncil/xc-core");var co={};is(co,{ContractBuilder:()=>$,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>vt,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>Hs,MoveBuilder:()=>ro,ProgramBuilder:()=>io,XcmTransferType:()=>Ue,XcmVersion:()=>ft});var Jt=require("@galacticcouncil/xc-core"),Ho=require("viem"),hi=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,Ho.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"})}}),Vo=()=>({batchAll:hi});var vs=require("@galacticcouncil/xc-core");function se(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Yt(t){return typeof t=="object"?Object.values(t)[0]:t}function Mo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=vs.Wormhole.fromChain(r),i=r.getAssetId(n);return new vs.ContractConfig({abi:vs.Abi.Erc20,address:Yt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var Ts=require("@galacticcouncil/xc-core");var No=require("@galacticcouncil/common"),Oo=require("polkadot-api"),Wo=require("@polkadot-api/utils"),{H160:bi,isEvmAddress:yi}=No.h160;function xi(t){let e=yi(t)?bi.toAccount(t):t;return(0,Wo.toHex)((0,Oo.AccountId)().enc(e))}var Ai=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Ts.Basejump.fromChain(a),c=a.getAssetId(n);return new Ts.ContractConfig({abi:Ts.Abi.Basejump,address:r.getAddress(),args:[Yt(c),s,xi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Uo=()=>({bridgeViaWormhole:Ai});var it=require("@galacticcouncil/xc-core"),Ko=require("@galacticcouncil/common"),{Ss58Addr:Go}=it.addr;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 Hn(t,e){let s=t.getAssetId(e);return typeof s=="string"?gi(s):s}function qo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Hn(o.chain,s);return new it.ContractConfig({abi:it.Abi.PolkadotXcm,address:it.Precompile.PolkadotXcm,args:[n.chain.parachainId,Go.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=Hn(o.chain,s),r=Hn(o.chain,o.destinationFeeBalance),c=Ko.big.toBigInt(n.fee.amount,n.fee.decimals);return new it.ContractConfig({abi:it.Abi.PolkadotXcm,address:it.Precompile.PolkadotXcm,args:[n.chain.parachainId,Go.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var mt=require("@galacticcouncil/xc-core"),Lt=require("@galacticcouncil/descriptors"),oa=require("@polkadot-api/substrate-bindings"),js=require("@polkadot-api/utils"),aa=require("viem");var jo=require("@galacticcouncil/xc-core"),Ks=null;async function zo(){if(Ks)return Ks;let t=await jo.codec.getHubCodecs();return Ks={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Ks}var Zo=require("@galacticcouncil/xc-core"),u=require("@galacticcouncil/descriptors"),ea=require("@polkadot-api/substrate-bindings"),ta=require("@polkadot-api/utils");var $o=require("@galacticcouncil/descriptors"),ne=340282366920938463463374607431768211455n,ct="0x0000000000000000000000000000000000000000000000000000000000000000",Z={parents:1,interior:$o.XcmV3Junctions.Here()},Jo=0,Rt=1e3,qs=1002,$e=1,Qt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Yo="0x0000000000000000000000000000000000000000000000000000000000000000",Qo="0x0000000000000000000000000000000000000000";var Vn="0x0000000000000000000000000000000000000000",Ps=t=>({parents:2,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.GlobalConsensus(u.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Mn=(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 sa(t,e){let s=Ps(t),n=Mn(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:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),u.XcmV5Instruction.PayFees({asset:{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}})],c=Nn({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 Nn(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Ps(e),m=n===Vn?i:Mn(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}),b={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:b})]),u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:Z,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:Z,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:b}),u.XcmV5Instruction.SetTopic(c)]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b}),u.XcmV5Instruction.SetTopic(c)]}function On(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,p=Ps($e),d=e===Vn?p:Mn($e,e),b={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($e)})))},v=[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:b}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b})])];B.push(u.XcmV5Instruction.ExchangeAsset({give:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let X=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],L=u.XcmV5AssetFilter.Definite([{id:p,fun:u.XcmV3MultiassetFungibility.Fungible(i)}]);B.push(u.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:L},preserve_origin:!0,assets:X,remote_xcm:v}),u.XcmV5Instruction.SetTopic(m));let K=a+r+c,N=[{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(K)},{id:d,fun:u.XcmV3MultiassetFungibility.Fungible(o)}],ce=[{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(a)}],T={type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},Ie=[{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(c)}])},T];return[u.XcmV5Instruction.WithdrawAsset(N),u.XcmV5Instruction.PayFees({asset:ce[0]}),u.XcmV5Instruction.SetAppendix([u.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:b}}]}),u.XcmV5Instruction.RefundSurplus(),u.XcmV5Instruction.DepositAsset({assets:u.XcmV5AssetFilter.Wild(u.XcmV5WildAsset.All()),beneficiary:b})]),u.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:u.XcmV5Junctions.X1(u.XcmV5Junction.Parachain(Rt))},remote_fees:{type:"ReserveWithdraw",value:u.XcmV5AssetFilter.Definite([{id:Z,fun:u.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Ie,remote_xcm:B}),u.XcmV5Instruction.SetTopic(m)]}function na(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=(0,ea.getSs58AddressInfo)(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let p=(0,ta.toHex)(m.publicKey),d=i.getAssetXcmLocation(n),b=d?Zo.multiloc.findNestedKey(d,"key"):void 0,A=b?b.key:Vn,C=r.feeBreakdown,v=C.sourceExecutionFee??0n,B=C.dotRemoteFee??0n,X=C.dotToEtherSwapAmount??0n,L=C.etherFeeAmount??0n,N=On({tokenAddress:A,senderPubKey:p,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:v,dotRemoteFee:B,dotToEtherSwapAmount:X,etherFeeAmount:L,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return u.XcmVersionedXcm.V5(N)}var{Ss58Addr:ra}=mt.addr,wi="0x0000000000000000000000000000000000000000",Ci=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=mt.Snowbridge.fromChain(c),p=c.getAssetId(n),d=Yt(p),b=n.originSymbol==="ETH",A=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,v=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,X=ra.getPubKey(e),L=new TextEncoder().encode(`${i.parachainId}${o}${d}${X}${s}${Date.now()}`),K=(0,js.toHex)((0,oa.Blake2256)(L)),N=Nn({ethChainId:$e,destinationParaId:i.parachainId,tokenAddress:b?wi:d,beneficiaryHex:X,tokenAmount:s,hydrationDotFee:v,topic:K}),ce=await zo(),T=(0,js.toHex)(ce.message.enc(Lt.XcmVersionedXcm.V5(N))),Ie=[];b||Ie.push((0,aa.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,s]));let Tt=ce.location.enc(Lt.XcmVersionedLocation.V5({parents:0,interior:Lt.XcmV5Junctions.X1(Lt.XcmV5Junction.AccountId32({id:X,network:void 0}))})),yt=(0,js.toHex)(Tt.slice(1));return new mt.ContractConfig({abi:mt.Abi.Snowbridge,address:m.getGateway(),args:[T,Ie,yt,A,C],value:b?B+s:B,func:"v2_sendMessage",module:"Snowbridge"})}}),ki=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=mt.Snowbridge.fromChain(r),m=r.getAssetId(n),p=Yt(m),d=n.originSymbol==="ETH",b=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new mt.ContractConfig({abi:mt.Abi.Snowbridge,address:i.getGateway(),args:[p,c.parachainId,[1,ra.getPubKey(e)],b,s],value:d?A+s:A,func:"sendToken",module:"Snowbridge"})}}),ia=()=>({v2SendMessage:Ci,sendToken:ki});var We=require("@galacticcouncil/xc-core"),Ei="0x00",ca=8,vi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=We.Ntt.fromChain(r,n),m=We.Wormhole.fromChain(c),p=e;c instanceof We.EvmParachain&&(p=await c.getDerivatedAddress(e));let d=r,b=await d.evmClient.getProvider().readContract({abi:We.Abi.NttManager,address:i.manager,args:[m.getWormholeId(),Ei],functionName:"quoteDeliveryPrice"}),A=d.getAssetDecimals(n)??0,C=s;if(A>ca){let v=10n**BigInt(A-ca);C=s-s%v}return new We.ContractConfig({abi:We.Abi.NttManager,address:i.manager,args:[C,m.getWormholeId(),m.normalizeAddress(p)],token:i.token,wrapNative:d.getBalanceType(n)===We.EvmBalanceType.Native,value:b[1],func:"transfer",module:"NttManager"})}}),ma=()=>({transfer:vi});function ua(){return{Ntt:ma}}function $(){return{Batch:Vo,Erc20:Mo,Basejump:Uo,PolkadotXcm:qo,Snowbridge:ia,Wormhole:ua}}var Wn=require("@galacticcouncil/common"),la=require("@galacticcouncil/xc-core"),da="AssetConversion",Ti=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,Wn.encodeLocation)(i.getAssetXcmLocation(r)),p=(0,Wn.encodeLocation)(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,b=c.amount;return new la.ExtrinsicConfig({module:da,func:e,getTx:A=>A.getUnsafeApi().tx[da][e]({path:[m,p],amount_out:b,amount_in_max:d,send_to:s,keep_alive:!0})})}}},fa=()=>({swapTokensForExactTokens:Ti});var zs=require("@galacticcouncil/descriptors"),pa=require("@galacticcouncil/xc-core"),Pi="Assets",Fi=()=>{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 pa.ExtrinsicConfig({module:Pi,func:t,getTx:m=>m.getTypedApi(zs.hub).tx.Assets.transfer({id:Number(i),target:zs.MultiAddress.Id(n),amount:c})})}}},ha=()=>({transfer:Fi});var ya=require("@galacticcouncil/xc-core"),ba="Balances",Bi=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new ya.ExtrinsicConfig({module:ba,func:e,getTx:n=>n.getUnsafeApi().tx[ba][e]({dest:s,keep_alive:t})})}},xa=()=>({transferAll:Bi});var Aa=require("@galacticcouncil/descriptors"),ga=require("@galacticcouncil/xc-core"),Xi="Router",Si=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,b=a.amount+a.amount*BigInt(t.slippage)/100n;return new ga.ExtrinsicConfig({module:Xi,func:"buy",getTx:A=>A.getTypedApi(Aa.hydration).tx.Router.buy({asset_in:Number(m),asset_out:Number(p),amount_out:d,max_amount_in:b,route:c})})}}),wa=()=>({buy:Si});var ka=require("@galacticcouncil/xc-core"),Ca="Utility",_i=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new ka.ExtrinsicConfig({module:Ca,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[Ca][e]({calls:a})}})}}},Ea=()=>({batchAll:_i});var $s=require("@galacticcouncil/xc-core"),Ta=require("polkadot-api"),Pa=require("viem");var ft=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(ft||{}),Ue=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Ue||{});var va="EthereumXcm",Di=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,Pa.encodeFunctionData)({abi:$s.Abi[n.module],functionName:n.func,args:n.args});return new $s.ExtrinsicConfig({module:va,func:e,getTx:r=>r.getUnsafeApi().tx[va][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:Ta.Binary.fromHex(a),access_list:void 0}}})})}}},Un=()=>({transact:Di});var Et=require("@galacticcouncil/xc-core"),Is=require("@galacticcouncil/common");var Zt=require("@galacticcouncil/xc-core"),l=require("@galacticcouncil/descriptors");var oe=require("@galacticcouncil/descriptors");var Fa=require("@galacticcouncil/common"),Gn=require("@galacticcouncil/descriptors"),Ba=require("@polkadot-api/substrate-bindings"),Xa=require("@polkadot-api/utils");function J(t){if(t.length===42&&t.startsWith("0x"))return Gn.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,Ba.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Gn.XcmV3Junction.AccountId32({id:(0,Xa.toHex)(s.publicKey),network:void 0})}function Fs(t,e,s){return Fa.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Kn=require("@galacticcouncil/xc-core");function Sa(t,e){let s=Kn.multiloc.findNestedKey(t,"GeneralIndex"),n=Kn.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 U(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Js={};is(Js,{ETHER_TOKEN_ADDRESS:()=>qn,erc20Location:()=>Ri,erc20LocationReanchored:()=>Li,ethereumLocation:()=>Da,parachainLocation:()=>Ii});var Je=require("@galacticcouncil/descriptors"),qn="0x0000000000000000000000000000000000000000",_a=t=>Je.XcmV3Junction.GlobalConsensus(Je.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Da(t){return{parents:2,interior:Je.XcmV3Junctions.X1(_a(t))}}function Ii(t){return{parents:1,interior:Je.XcmV3Junctions.X1(Je.XcmV3Junction.Parachain(t))}}function Ri(t,e){return e===qn?Da(t):{parents:2,interior:Je.XcmV3Junctions.X2([_a(t),Je.XcmV3Junction.AccountKey20({key:e})])}}function Li(t){return t===qn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Je.XcmV3Junctions.X1(Je.XcmV3Junction.AccountKey20({key:t}))}}var jn=require("@galacticcouncil/common"),Ia=require("@galacticcouncil/xc-core");function j(t,e){return Hi(e)>=4?(0,jn.encodeLocation)(t):Vi(t)}function Hi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Vi(t){return{type:"Concrete",value:(0,jn.encodeLocation)(t)}}var Mi=1e3;function Ni(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 Oi(t){if(t)return Ni(t)?Mi:Ia.multiloc.findParachain(t)}function Ra(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Oi(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 Ys(t,e){let s="V4",n=j(U(e,t),s),o=ct;return[oe.XcmV4Instruction.ReserveAssetDeposited([{id:Z,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)},{id:n,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)}]),oe.XcmV4Instruction.ClearOrigin(),oe.XcmV4Instruction.BuyExecution({fees:{id:Z,fun:oe.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:oe.XcmV3WeightLimit.Unlimited()}),oe.XcmV4Instruction.DepositAsset({assets:oe.XcmV4AssetAssetFilter.Wild(oe.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:oe.XcmV3Junctions.X1(J(Qt))}}),oe.XcmV4Instruction.SetTopic(o)]}var pt=require("@galacticcouncil/descriptors");function zn(t,e){let s="V4",n=j(U(e,t),s),o=Qs("V4",J(Qo),J(Qt),n,ct);return[pt.XcmV4Instruction.WithdrawAsset([{id:Z,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)},{id:n,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)}]),pt.XcmV4Instruction.ClearOrigin(),pt.XcmV4Instruction.BuyExecution({fees:{id:Z,fun:pt.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:pt.XcmV3WeightLimit.Unlimited()}),...o.value]}var _=require("@galacticcouncil/descriptors");function La(t,e){let s="V4",n=j(U(e,t),s),o=ct;return[_.XcmV4Instruction.WithdrawAsset([{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)}]),_.XcmV4Instruction.ClearOrigin(),_.XcmV4Instruction.BuyExecution({fees:{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:_.XcmV3Junctions.X1(J(Qt))}}),_.XcmV4Instruction.SetTopic(o)]}function $n(t,e){let s="V4",n=j(U(e,t),s);return[_.XcmV4Instruction.BuyExecution({fees:{id:n,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:_.XcmV3Junctions.X1(J(Qt))}})]}function Ha(t,e,s){let n="V4",o=j(U(e,t),n),a=ct,r=$n(t,s);return[_.XcmV4Instruction.WithdrawAsset([{id:o,fun:_.XcmV3MultiassetFungibility.Fungible(ne)}]),_.XcmV4Instruction.ClearOrigin(),_.XcmV4Instruction.BuyExecution({fees:{id:o,fun:_.XcmV3MultiassetFungibility.Fungible(ne)},weight_limit:_.XcmV3WeightLimit.Unlimited()}),_.XcmV4Instruction.DepositReserveAsset({assets:_.XcmV4AssetAssetFilter.Wild(_.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:_.XcmV3Junctions.X1(_.XcmV3Junction.Parachain(s.parachainId))},xcm:r}),_.XcmV4Instruction.SetTopic(a)]}var ee=require("@galacticcouncil/descriptors");function Va(t,e){let s="V5",n=j(U(e,t),s),o={parents:0,interior:ee.XcmV5Junctions.X1(ee.XcmV5Junction.AccountId32({id:Yo,network:void 0}))};return[ee.XcmV5Instruction.ReserveAssetDeposited([{id:Z,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}]),ee.XcmV5Instruction.PayFees({asset:{id:Z,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}}),ee.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(ne)}]),ee.XcmV5Instruction.ClearOrigin(),ee.XcmV5Instruction.DepositAsset({assets:ee.XcmV5AssetFilter.Wild(ee.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),ee.XcmV5Instruction.SetTopic(ct)]}var Ma=[Zt.ChainEcosystem.Polkadot,Zt.ChainEcosystem.Kusama],Wi={parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(1e3))},Ui=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Na=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Ma.includes(t.ecosystem)&&Ma.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Oa=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},ht=(t,e,s)=>{if(Na(e,s))return{type:t,value:Jn(s.ecosystem,s.parachainId)};if(s.parachainId===Jo)return{type:t,value:{parents:1,interior:l.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Rt:s.parachainId;return{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(n))}}},Gi=t=>t===Zt.ChainEcosystem.Kusama?l.XcmV3JunctionNetworkId.Kusama():l.XcmV3JunctionNetworkId.Polkadot(),Jn=(t,e)=>({parents:2,interior:l.XcmV3Junctions.X2([l.XcmV3Junction.GlobalConsensus(Gi(t)),l.XcmV3Junction.Parachain(e)])}),Wa=(t,e,s,n)=>{if(Na(e,s)){if(e.parachainId!==Rt){let o=Zt.multiloc.findGlobalConsensus(U(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(Rt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==Rt)return{dest:{type:t,value:Jn(s.ecosystem,Rt)},mode:"onward"}}},es=(t,e)=>({type:t,value:{parents:0,interior:l.XcmV3Junctions.X1(e)}}),Yn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Ui(s)?Wi:s}}:{type:e},Ht=(t,e)=>({id:t,fun:l.XcmV3MultiassetFungibility.Fungible(e)}),Ua=(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)}})]}),Qs=(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:Js.ethereumLocation($e),xcm:[l.XcmV4Instruction.BuyExecution({fees:{id:Ki(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)]}},Ga=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.Parachain(s.parachainId))}:Jn(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]}},Ki=t=>{let e=Zt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:l.XcmV3Junctions.X1(l.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:l.XcmV3Junctions.Here()}},Ka=(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)}})]}),qa=(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 me="PolkadotXcm",qi=()=>({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=U(r,s),p=U(r,n.fee),d=j(m,i),b=j(p,i),A=Ht(d,e),C=Ht(b,n.fee.amount),v="limited_reserve_transfer_assets";return new Et.ExtrinsicConfig({module:me,func:v,getTx:B=>{let X=B.getUnsafeApi().tx[me][v];return s.key===n.fee.key?X({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Sa(m,p)?X({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[C,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):X({dest:ht(i,r,c),beneficiary:es(i,a),assets:{type:i,value:[A,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),ji=()=>({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=j(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="limited_teleport_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),zi=()=>({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=j(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="reserve_transfer_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0})})}}),$i=()=>({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=j(U(r,s),i),p=Ht(m,e),d=ht(i,r,c),b=es(i,a),A={type:i,value:[p]},C="transfer_assets";return new Et.ExtrinsicConfig({module:me,func:C,getTx:v=>v.getUnsafeApi().tx[me][C]({dest:d,beneficiary:b,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ji=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,b=o.fee.amount,A=o.fee;i&&(d=i.chain,b=Is.big.toBigInt(i.fee.amount,i.fee.decimals),A=i.fee);let C=J(r),v=i||d.usesCexForwarding?Fs(p,r,d):e,B=J(v),{transferType:X}=t,L=j(U(p,s),m),K=j(U(p,A),m),N=Ht(L,n),ce=Ht(K,b),T=s.isEqual(A),Ie=Wa(m,p,d,s),Tt=Ie?.dest??ht(m,p,d),yt={type:m,value:T?[N]:[ce,N]},Ws=Yn(m,X,L),Sn={type:m,value:T?L:K},_n=Yn(m,X,K),rs;if(Oa(L)&&o.chain.isEvmChain())rs=Qs(m,B,C,L,a);else if(Ie){let Ds=Is.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),ti=j(U(d,s),m);rs=Ga(m,B,d,Ie.mode,ti,Ds)}else rs=Ua(m,B,yt.value.length);let Us="transfer_assets_using_type_and_then";return new Et.ExtrinsicConfig({module:me,func:Us,getTx:Ds=>Ds.getUnsafeApi().tx[me][Us]({dest:Tt,assets:yt,assets_transfer_type:Ws,remote_fees_id:Sn,fees_transfer_type:_n,custom_xcm_on_dest:rs,weight_limit:{type:"Unlimited"}})})}}),Yi=()=>{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=Fs(c,n,i),p=J(m),{fee:d}=a,b=j(U(i,d),r),A=Is.big.toBigInt(e.fee,d.decimals);return new Et.ExtrinsicConfig({module:me,func:t,getTx:C=>C.getUnsafeApi().tx[me][t]({dest:ht(r,c,i),message:Ka(r,p,b,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,b=Fs(p,r,d),A=J(b),C=J(o),v=j(U(d,a),m),{fee:B}=i,X=Is.big.toBigInt(e.fee,B.decimals),L=n>B.amount?n-(B.amount+X):n;return new Et.ExtrinsicConfig({module:me,func:t,getTx:K=>K.getUnsafeApi().tx[me][t]({dest:ht(m,p,d),message:qa(m,A,v,L,X,C)})})}})}};function Qi(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Et.ExtrinsicConfig({module:me,func:a,getTx:r=>r.getUnsafeApi().tx[me][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(na)}}var Qn=()=>({limitedReserveTransferAssets:qi,limitedTeleportAssets:ji,reserveTransferAssets:zi,transferAssets:$i,transferAssetsUsingTypeAndThen:Ji,execute:Qi,send:Yi});var $a=require("@galacticcouncil/xc-core"),Ja=require("@galacticcouncil/common");var Rs=require("@galacticcouncil/descriptors"),ja=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Rs.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Rs.XcmV3Junctions.X2([Rs.XcmV3Junction.Parachain(e.parachainId),s])}};var za="XTokens",Zi=()=>({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?Fs(r,o,c):t,p=J(m),d=r.getAssetId(s),b=(0,Ja.encodeAssetId)(d),A="transfer";return new $a.ExtrinsicConfig({module:za,func:A,getTx:C=>C.getUnsafeApi().tx[za][A]({currency_id:b,amount:e,dest:ja(i,c,p),dest_weight_limit:{type:"Unlimited"}})})}}),Zn=()=>({transfer:Zi});function f(){return{assetConversion:fa,assets:ha,balances:xa,ethereumXcm:Un,polkadotXcm:Qn,router:wa,utility:Ea,xTokens:Zn}}function vt(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 ts=require("@galacticcouncil/xc-core");var Ya=80000n,Qa=120000n,Za=100000n,er=2000000n,eo=15000000000000n;var ao={};is(ao,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>nr,AssethubClient:()=>_e,BaseClient:()=>Ye,HydrationClient:()=>ue,getAllAssetDepositLimits:()=>no,getAssetDepositLimit:()=>so,getGlobalWithdrawLimit:()=>oo});var to=require("@galacticcouncil/common"),Ls=require("@galacticcouncil/descriptors"),Ye=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ls.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,to.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ls.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,to.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ls.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Ge=require("@galacticcouncil/descriptors"),tr=require("@galacticcouncil/common"),Zs=require("@polkadot-api/substrate-bindings"),sr=require("@polkadot-api/utils");var _e=class extends Ye{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,tr.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,sr.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=Ge.XcmVersionedLocation.V5({parents:1,interior:Ge.XcmV5Junctions.X1(Ge.XcmV5Junction.Parachain(s))}),o=Ge.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Ge.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:Ge.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:Ge.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:Ge.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 ar=require("@galacticcouncil/descriptors");var nr=14400;function or(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,b;s&&(s.type==="Locked"?(p=s.value,m=o<s.value):(d=s.value[0],b=s.value[1]));let A=n?.type==="Local"?"Local":"External",C=!m&&d!==void 0&&d+nr<=o,v=null;if(r!==null)if(m)v=0n;else if(C)v=r;else{let B=b??a,X=a>B?a-B:0n;v=r>X?r-X:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:p,lastResetBlock:d,baselineIssuance:b,currentIssuance:a,headroom:v,category:A,periodExpired:C}}async function so(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 or(e,n,o,a,r,c)}async function no(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 b=d.keyArgs[0],A=d.value;if(A?.xcm_rate_limit==null)continue;let C=b===0?a:m.get(b)??0n,v=or(b,A,c.get(b),i.get(b),o,C);p.set(b.toString(),v)}return p}async function oo(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,v=c*C/p;d=c>v?c-v:0n}}let b=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:p,used:d,lastUpdateMs:i,headroom:b,lockdown:r,lockdownUntilMs:a}}var ue=class extends Ye{constructor(e){super(e,ar.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 so(this.api(),s)}getAllAssetDepositLimits(){return no(this.api())}getGlobalWithdrawLimit(){return oo(this.api())}};function ec(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ue(n),a=new _e(t.hub),r=Ys(e,n),c=Va(e,n),i=Ps($e),m=250000000n,p=sa($e,n.parachainId),[d,b,A,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,qs),a.calculateDestinationFeeV5(p,x)]),v=se(d,33n),B=se(b,33n),X=se(A,33n),K=se(C,33n)+B,N=v,ce=await a.quoteEtherForDot(i,K),T=se(ce,30n),Ie=T<eo*2n?eo*2n:T,Tt=se(await a.quoteEtherForDot(i,N),100n),yt=se(await a.quoteDotToEther(i,m+X),30n);return{amount:Ie+yt+Tt,breakdown:{executionFee:Ie,relayerFee:yt,remoteEtherFee:Tt,hydrationDotFee:N}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new _e(t.hub),i=Ps($e),m=zn(e,a),[p,d,b]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,qs),c.calculateDestinationFee(m,s)]),A=await r.evmClient.getProvider().getGasPrice(),C=er+Qa+Ya+Za,v=A*C,B=se(v,10n),X=p+se(d,33n)+se(b,33n),L=se(await c.quoteDotForExactEther(i,B),20n),K=new ue(a),N=On({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ct}),ce=se(await K.calculateDestinationFeeV5(N,x),33n);return{amount:X+L+ce,breakdown:{dotRemoteFee:X,dotToEtherSwapAmount:L,etherFeeAmount:B,sourceExecutionFee:ce}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=ts.Snowbridge.fromChain(o),c=new Ye(a),i=new _e(t.hub),m=Ys(e,a),[p,d]=await Promise.all([c.calculateDestinationFee(m,x),i.calculateDeliveryFee(m,a.parachainId)]),b=d+se(p,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:ts.Abi.Snowbridge,address:r.getGateway(),args:[A,a.parachainId,b],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:b}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new _e(t.hub),r=zn(e,o),c=Ys(e,o),[i,m,p,d,b]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,qs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+se(p,25n)+d+se(b,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:p,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:b}}}})}}function tc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Ra(e,o,a,r),r){let b=new Ye(a),A=new Ye(r),C=$n(e,a),v=Ha(e,r,a),[B,X]=await Promise.all([b.calculateDestinationFee(C,e),A.calculateDestinationFee(v,e)]),L=X+B,K=se(L,20n),N=K-L;return{amount:K,breakdown:{reserveFee:X,destinationFee:B,margin:N}}}let c=new Ye(a),i=La(e,a),m=await c.calculateDestinationFee(i,e),p=se(m,20n),d=p-m;return{amount:p,breakdown:{totalFee:m,margin:d}}}})}}function sc(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=ts.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:ts.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:sc,XcmPaymentApi:tc,Snowbridge:ec}}var nc="0";function oc(){return{build:async({address:t,chain:e})=>{let n=await new ue(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():nc,a=e.findAssetById(o);return a?a.asset:Y}}}var ac=()=>({accountCurrencyMap:oc});function Hs(){return{multiTransactionPayment:ac}}var Ke=require("@galacticcouncil/xc-core"),rr=require("@mysten/sui/transactions"),en=require("@mysten/sui/utils"),ir=require("@wormhole-foundation/sdk-base"),rc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Ke.Ntt.fromChain(r,n),m=Ke.Wormhole.fromChain(r),p=Ke.Wormhole.fromChain(c),d=r.client,b=e;c instanceof Ke.EvmParachain&&(b=await c.getDerivatedAddress(e));let A=ir.encoding.hex.decode(p.normalizeAddress(b)),C=m.getCoreBridge(),v=i.manager,B=i.transceiver.wormhole,X=i.token,L=i.coinMetadata;if(!L)throw new Error("Missing coin metadata object of "+X);let[K,N,ce]=await Promise.all([Ke.suiPkg.getWormholePackageId(d,C),Ke.suiPkg.getCurrentPackageId(d,v),Ke.suiPkg.getCurrentPackageId(d,B)]),T=new rr.Transaction,[Ie]=T.splitCoins(T.gas,[T.pure.u64(s)]),[Tt]=T.moveCall({target:`${N}::upgrades::new_version_gated`,arguments:[]}),[yt,Ws]=T.moveCall({target:`${N}::ntt::prepare_transfer`,typeArguments:[X],arguments:[T.object(v),Ie,T.object(L),T.pure.u16(p.getWormholeId()),T.pure.vector("u8",Array.from(A)),T.pure.option("vector<u8>",null),T.pure.bool(!1)]}),[Sn]=T.moveCall({target:`${N}::state::get_next_sequence`,typeArguments:[X],arguments:[T.object(v)]});T.moveCall({target:`${N}::ntt::transfer_tx_sender`,typeArguments:[X],arguments:[T.object(v),Tt,T.object(L),yt,T.object(en.SUI_CLOCK_OBJECT_ID)]});let[_n]=T.moveCall({target:`${N}::state::create_transceiver_message`,typeArguments:[`${ce}::wormhole_transceiver::TransceiverAuth`,X],arguments:[T.object(v),Sn,T.object(en.SUI_CLOCK_OBJECT_ID)]}),[rs]=T.moveCall({target:`${ce}::wormhole_transceiver::release_outbound`,typeArguments:[`${N}::auth::ManagerAuth`],arguments:[T.object(B),_n]}),[Us]=T.splitCoins(T.gas,[T.pure.u64(0n)]);T.moveCall({target:`${K}::publish_message::publish_message`,arguments:[T.object(C),Us,rs,T.object(en.SUI_CLOCK_OBJECT_ID)]});let[Ds]=T.moveCall({target:"0x2::coin::from_balance",typeArguments:[X],arguments:[Ws]});return T.mergeCoins(T.gas,[Ds]),new Ke.MoveConfig({transaction:T,func:"transfer",module:"NttManager"})}}),cr=()=>({transfer:rc});function mr(){return{Ntt:cr}}function ro(){return{Wormhole:mr}}var ut=require("@galacticcouncil/xc-core"),ur=require("@solana/spl-token"),tn=require("@solana/web3.js"),dr=require("@wormhole-foundation/sdk-base"),lr=require("@wormhole-foundation/sdk-definitions"),fr=require("@wormhole-foundation/sdk-solana"),pr=require("@wormhole-foundation/sdk-solana-ntt"),If=require("@wormhole-foundation/sdk-definitions-ntt");async function ic(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 cc(t,e,s){let n=await ic(t,e);return{instructions:"message"in e?tn.TransactionMessage.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var mc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=ut.Ntt.fromChain(c,n),p=ut.Wormhole.fromChain(c),d=ut.Wormhole.fromChain(i),b=e;i instanceof ut.EvmParachain&&(b=await i.getDerivatedAddress(e));let A=new pr.SolanaNtt("Mainnet","Solana",c.connection,{coreBridge:p.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),C=c.getBalanceType(n)===ut.SolanaBalanceType.Native,v=tn.Keypair.generate(),B=[];for await(let K of A.transfer(new fr.SolanaAddress(o),s,{chain:(0,dr.toChain)(d.getWormholeId()),address:new lr.UniversalAddress(d.normalizeAddress(b))},{queue:!1,automatic:!1,wrapNative:C},v)){let{transaction:N,signers:ce}=K.transaction;B.push(await cc(c.connection,N,ce??[]))}let X=C?BigInt(await(0,ur.getMinimumBalanceForRentExemptAccount)(c.connection)):0n,L=B[B.length-1];return new ut.ProgramConfig({instructions:L.instructions,signers:L.signers,lookupTables:L.lookupTables,prerequisites:B.slice(0,-1),rentReserve:X,func:"transfer",module:"NttManager"})}}),hr=()=>({transfer:mc});function br(){return{Ntt:hr}}function io(){return{Wormhole:br}}var mo={};is(mo,{Tag:()=>Vt});var Vt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Vt||{});function yr(t,e){return new uo.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function xr(t,e){return new uo.AssetRoute({source:{asset:t,fee:{asset:D},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:$().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var uc=[xr(lt,tt)],dc=[yr(lt,tt)],gr=new Ar.ChainRoutes({chain:ms,routes:[...dc,...uc]});var Vs=require("@galacticcouncil/xc-core");var sn=require("@galacticcouncil/xc-core");function Mt(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function de(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:D}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function le(t,e){return new sn.AssetRoute({source:{asset:t,fee:{asset:D}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:D}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var lc=[Mt(xt,Le),Mt(nt,Ve),Mt(g,Ne),Mt(y,Me),Mt(at,Oe),Mt(wt,Se),Mt(D,Se)],fc=[new Vs.AssetRoute({source:{asset:D,fee:{asset:D}},destination:{chain:h,asset:D,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:D}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),de(pe,pe),de(he,he),de(be,be),de(ye,ye),de(we,we),de(Ee,Ee),de(ve,ve),de(Ae,Ae),de(xe,xe),de(ge,ge),de(Ce,Ce),de(Te,Te),de(Pe,Pe),de(g,gt),de(y,At)],pc=[new Vs.AssetRoute({source:{asset:D,fee:{asset:D}},destination:{chain:h,asset:D,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:D}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),le(pe,pe),le(he,he),le(be,be),le(ye,ye),le(we,we),le(Ee,Ee),le(ve,ve),le(Ae,Ae),le(xe,xe),le(ge,ge),le(Ce,Ce),le(Te,Te),le(Pe,Pe),le(g,gt),le(y,At)],wr=new Vs.ChainRoutes({chain:P,routes:[...lc,...fc,...pc]});var Cr=[gr,wr];var Nt=require("@galacticcouncil/xc-core");var nn=require("@galacticcouncil/xc-core");var ss=0,hc=t=>{let{source:e}=t;return!!e.feeSwap},bc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},kr=f().assetConversion().swapTokensForExactTokens({slippage:30});function yc(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:x,extra:ss}},destination:{chain:e,asset:t,fee:{amount:s,asset:y}},extrinsic:vt(bc,kr).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function on(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:vt(hc,kr).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function ns(t,e,s){return new nn.AssetRoute({source:{asset:t,fee:{asset:x,extra:ss}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function an(t){return yc(t,h,.02)}var xc=[new Nt.AssetRoute({source:{asset:x,fee:{asset:x,extra:ss}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Nt.AssetRoute({source:{asset:F,fee:{asset:x,extra:ss}},destination:{chain:h,asset:F,fee:{amount:1e-4,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),ns(y,h,.02),ns(g,h,.02),an(Ct)],Ac=[new Nt.AssetRoute({source:{asset:F,fee:{asset:x,extra:ss}},destination:{chain:rt,asset:F,fee:{amount:.001,asset:F}},extrinsic:f().polkadotXcm().transferAssets()})],gc=[ns(y,q,.25),ns(g,q,.25)],wc=[ns(y,V,.03),ns(g,V,.03)],Cc=[new Nt.AssetRoute({source:{asset:W,fee:{asset:x,extra:ss}},destination:{chain:St,asset:W,fee:{amount:2.5,asset:W}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Er=new Nt.ChainRoutes({chain:Pt,routes:[on(y,h,.02),on(g,h,.02),on(x,h,.001)]}),vr=new Nt.ChainRoutes({chain:k,routes:[...xc,...Ac,...gc,...wc,...Cc]});var Qe=require("@galacticcouncil/xc-core");var kc=[new Qe.AssetRoute({source:{asset:H},destination:{chain:h,asset:H,fee:{amount:.044306118,asset:H}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new Qe.AssetRoute({source:{asset:I,fee:{asset:H}},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:V}),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:S,fee:{asset:H}},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:q}),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:R,fee:{asset:H}},destination:{chain:h,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:M,fee:{asset:H}},destination:{chain:h,asset:M,fee:{amount:.01,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:O,fee:{asset:H}},destination:{chain:h,asset:O,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:V}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:te,fee:{asset:H}},destination:{chain:h,asset:te,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:V}),asset:te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:y,fee:{asset:H}},destination:{chain:h,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Qe.AssetRoute({source:{asset:g,fee:{asset:H}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Tr=new Qe.ChainRoutes({chain:ae,routes:[...kc]});var De=require("@galacticcouncil/xc-core");var Ec=[new De.AssetRoute({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:O,fee:{asset:I}},destination:{chain:h,asset:O,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:te,fee:{asset:I}},destination:{chain:h,asset:te,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:te}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:x,fee:{asset:I}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new De.AssetRoute({source:{asset:H,fee:{asset:I}},destination:{chain:h,asset:H,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:ae}),asset:H}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:S,fee:{asset:I}},destination:{chain:h,asset:S,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:q}),asset:S}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:R,fee:{asset:I}},destination:{chain:h,asset:R,fee:{amount:625e-8,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:y,fee:{asset:I}},destination:{chain:h,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:g,fee:{asset:I}},destination:{chain:h,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],vc=[new De.AssetRoute({source:{asset:y,fee:{asset:I}},destination:{chain:k,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new De.AssetRoute({source:{asset:g,fee:{asset:I}},destination:{chain:k,asset:g,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Pr=new De.ChainRoutes({chain:V,routes:[...Ec,...vc]});var qe=require("@galacticcouncil/xc-core");var z=()=>({asset:Hs().multiTransactionPayment().accountCurrencyMap()});var bt=require("@galacticcouncil/xc-core");var Tc=1,Pc=.02,rn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},cn=f().router().buy({slippage:30});function G(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Bs(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function Ot(t,e){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function mn(t){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:k,asset:t,fee:{amount:Pc,asset:y}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function lo(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:rt,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Fc(t,e,s="LocalReserve"){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:e,asset:t,fee:{amount:Tc,asset:S}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Wt(t){return Fc(t,q,"DestinationReserve")}function Ze(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function re(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function ie(t,e,s){return new bt.AssetRoute({source:{asset:t,fee:z()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:vt(rn,cn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Bc=[Ot(x,k),Ot(F,k),Ot(y,k),Ot(g,k),mn(Ct)],Xc=[lo(F,.05,.005),lo(x,.2,.02)],Sc=[G(H,ae),G(I,ae,V),G(S,ae,q),new qe.AssetRoute({source:{asset:R,fee:z()},destination:{chain:ae,asset:R,fee:{amount:2e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:M,fee:z()},destination:{chain:ae,asset:M,fee:{amount:.01,asset:M}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(O,ae,V),G(te,ae,V),G(y,ae,k),G(g,ae,k)],_c=[G(I,V),G(O,V),G(te,V),G(H,V,ae),G(S,V,q),new qe.AssetRoute({source:{asset:R,fee:z()},destination:{chain:V,asset:R,fee:{amount:5e-6,asset:R}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),G(y,V,k),G(g,V,k),new qe.AssetRoute({source:{asset:x,fee:z()},destination:{chain:V,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Dc=[Bs(R,ze,62e-8),Bs(M,ze,.0019213457),Bs(Y,ze,.5),Bs(y,ze,.3),Bs(g,ze,.3),new qe.AssetRoute({source:{asset:O,fee:z()},destination:{chain:ze,asset:O,fee:{amount:.01,asset:x}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new qe.AssetRoute({source:{asset:x,fee:z()},destination:{chain:ze,asset:x,fee:{amount:.05,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Ic=[G(Y,q),G(S,q),G(y,q,k),G(g,q,k),Wt(Le),Wt(Ve),Wt(Ne),Wt(Me),Wt(Oe),Wt(Se),Wt(Q)],Rc=[new qe.AssetRoute({source:{asset:W,fee:z()},destination:{chain:St,asset:W,fee:{amount:2.5,asset:W}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Lc=[G(ot,As)],Hc=[new qe.AssetRoute({source:{asset:Re,fee:z()},destination:{chain:ls,asset:Re,fee:{amount:.04,asset:Re}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Vc=[new qe.AssetRoute({source:{asset:Be,fee:z()},destination:{chain:gs,asset:Be,fee:{amount:.02,asset:Be}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Mc=[new qe.AssetRoute({source:{asset:He,fee:z()},destination:{chain:bs,asset:He,fee:{amount:1.1,asset:He}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Nc=[G(st,hs)],Oc=[G(et,ds)],Wc=[Ze(Le,xt,P),Ze(Ve,nt,P),Ze(Ne,g,P),Ze(Me,y,P),Ze(Oe,at,P),Ze(Se,D,P)],Uc=[Ze(tt,lt,ms)],Gc=[Ze(Q,Q,It),Ze(Fe,Fe,It),Ze(Xe,Xe,It)],Kc=[Ze(ke,ke,Cs)],qc=[re(D,D,P),re(pe,pe,P),re(he,he,P),re(be,be,P),re(ye,ye,P),re(we,we,P),re(Ee,Ee,P),re(ve,ve,P),re(Te,Te,P),re(Ae,Ae,P),re(xe,xe,P),re(ge,ge,P),re(Ce,Ce,P),re(Pe,Pe,P),re(gt,g,P),re(At,y,P)],jc=[ie(D,D,P),ie(pe,pe,P),ie(he,he,P),ie(be,be,P),ie(ye,ye,P),ie(we,we,P),ie(Ee,Ee,P),ie(ve,ve,P),ie(Te,Te,P),ie(Ae,Ae,P),ie(xe,xe,P),ie(ge,ge,P),ie(Ce,Ce,P),ie(Pe,Pe,P),ie(gt,g,P),ie(At,y,P)],zc=[Ot(x,Pt),Ot(y,Pt),Ot(g,Pt)],Fr=new qe.ChainRoutes({chain:h,routes:[...Oc,...Bc,...Sc,..._c,...zc,...Uc,...Hc,...Wc,...qc,...Gc,...Kc,...jc,...Dc,...Vc,...Xc,...Ic,...Rc,...Nc,...Mc,...Lc]});var os=require("@galacticcouncil/xc-core");function un(t,e){return new os.AssetRoute({source:{asset:t,fee:{asset:M}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:f().xTokens().transfer()})}var $c=[new os.AssetRoute({source:{asset:M},destination:{chain:h,asset:M,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:f().xTokens().transfer()}),new os.AssetRoute({source:{asset:R,fee:{asset:M}},destination:{chain:h,asset:R,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:f().xTokens().transfer()}),new os.AssetRoute({source:{asset:Y,fee:{asset:M}},destination:{chain:h,asset:Y,fee:{amount:.5,asset:Y}},extrinsic:f().xTokens().transfer()}),un(O,V),un(y,k),un(g,k),un(x,k)],Br=new os.ChainRoutes({chain:ze,routes:[...$c]});var Xs=require("@galacticcouncil/xc-core");var fo=require("@galacticcouncil/xc-core");function Jc(t,e,s){return new fo.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Yc(t,e,s){return new fo.AssetRoute({source:{asset:t,fee:{asset:S}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Ut(t,e){return Jc(t,h,e)}function dn(t,e){return Yc(t,h,e)}var Qc=[new Xs.AssetRoute({source:{asset:S},destination:{chain:h,asset:S,fee:{amount:.05,asset:S}},contract:$().PolkadotXcm().transferAssetsToPara32()}),dn(Y,.6),dn(y,.3),dn(g,.3),Ut(Le,.004),Ut(Ve,.004),Ut(Ne,.004),Ut(Me,.004),Ut(Oe,1e-7),Ut(Se,2e-6),Ut(Q,2e-5)],Zc=[new Xs.AssetRoute({source:{asset:y,fee:{asset:S}},destination:{chain:k,asset:y,fee:{amount:.18,asset:y}},contract:$().PolkadotXcm().transferAssetsToPara32()}),new Xs.AssetRoute({source:{asset:g,fee:{asset:S}},destination:{chain:k,asset:g,fee:{amount:.18,asset:g}},contract:$().PolkadotXcm().transferAssetsToPara32()})],Xr=new Xs.ChainRoutes({chain:q,routes:[...Qc,...Zc]});var Ms=require("@galacticcouncil/xc-core");var e0=[new Ms.AssetRoute({source:{asset:W},destination:{chain:h,asset:W,fee:{amount:.01,asset:W}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],t0=[new Ms.AssetRoute({source:{asset:W},destination:{chain:k,asset:W,fee:{amount:.1,asset:W}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Sr=new Ms.ChainRoutes({chain:St,routes:[...e0,...t0]});var ln=require("@galacticcouncil/xc-core");var s0=[new ln.AssetRoute({source:{asset:ot},destination:{chain:h,asset:ot,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:ot}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],_r=new ln.ChainRoutes({chain:As,routes:[...s0]});var fn=require("@galacticcouncil/xc-core");var n0=[new fn.AssetRoute({source:{asset:Re},destination:{chain:h,asset:Re,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Re}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Dr=new fn.ChainRoutes({chain:ls,routes:[...n0]});var pn=require("@galacticcouncil/xc-core");var o0=[new pn.AssetRoute({source:{asset:He},destination:{chain:h,asset:He,fee:{amount:.2,asset:He}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Ir=new pn.ChainRoutes({chain:bs,routes:[...o0]});var hn=require("@galacticcouncil/xc-core");var a0=[new hn.AssetRoute({source:{asset:et},destination:{chain:h,asset:et,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:et}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Rr=new hn.ChainRoutes({chain:ds,routes:[...a0]});var bn=require("@galacticcouncil/xc-core");var r0=[new bn.AssetRoute({source:{asset:Be,fee:{asset:Be,extra:.030555}},destination:{chain:h,asset:Be,fee:{amount:.03,asset:Be}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Lr=new bn.ChainRoutes({chain:gs,routes:[...r0]});var yn=require("@galacticcouncil/xc-core");var i0=[new yn.AssetRoute({source:{asset:st},destination:{chain:h,asset:st,fee:{amount:.205,asset:st}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],Hr=new yn.ChainRoutes({chain:hs,routes:[...i0]});var Vr=[Rr,vr,Er,Tr,Pr,Fr,Br,Xr,Sr,Hr,_r,Dr,Ir,Lr];var xn=require("@galacticcouncil/xc-core");function po(t){return new xn.AssetRoute({source:{asset:t,fee:{asset:Q}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:io().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var c0=[po(Q),po(Fe),po(Xe)],Mr=new xn.ChainRoutes({chain:It,routes:[...c0]});var Nr=[Mr];var An=require("@galacticcouncil/xc-core");function m0(t){return new An.AssetRoute({source:{asset:t,fee:{asset:ke}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:ro().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var u0=[m0(ke)],Or=new An.ChainRoutes({chain:Cs,routes:[...u0]});var Wr=[Or];var as=require("@galacticcouncil/xc-core");var d0=require("@galacticcouncil/xc-core");var Ns=.0015;var l0=new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:k,asset:F,fee:{amount:.002,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),f0=new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:Es,asset:F,fee:{amount:.0012,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),p0=[new as.AssetRoute({source:{asset:F,fee:{asset:F,extra:Ns}},destination:{chain:h,asset:F,fee:{amount:.04,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new as.AssetRoute({source:{asset:x,fee:{asset:F,extra:Ns}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ur=new as.ChainRoutes({chain:rt,routes:[f0,l0,...p0]});var Os=require("@galacticcouncil/xc-core");var ho=()=>({asset:Hs().multiTransactionPayment().accountCurrencyMap()});var h0=[new Os.AssetRoute({source:{asset:y,fee:ho()},destination:{chain:rt,asset:y,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],b0=[new Os.AssetRoute({source:{asset:F,fee:ho()},destination:{chain:rt,asset:F,fee:{amount:.0012,asset:F}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Gr=new Os.ChainRoutes({chain:Es,routes:[...h0,...b0]});var Kr=[Ur,Gr];var y0=[...Cr,...Vr,...Nr,...Wr,...Kr],qr=new Map(y0.map(t=>[t.chain.key,t]));var bo=require("@galacticcouncil/xc-core");var Gt=require("@galacticcouncil/xc-core"),gn=class extends Gt.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Gt.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},wn=class extends Gt.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 Gt.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Gt.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var Ss=require("@galacticcouncil/xc-core");var Cn=class extends Ss.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new _e(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new _e(a).getSystemAccountBalance(n)===0n)throw new Ss.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},kn=class extends Ss.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new _e(a).checkIfFrozen(n,s))throw new Ss.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var dt=require("@galacticcouncil/xc-core");var x0=12,A0=1,g0=18,En=class extends dt.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ue(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 ue(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||A0,p=i.decimals||x0,d=m*Math.pow(10,p),b=await r.getAssetBalance(n,c);if(BigInt(d*1.1)>b)throw new dt.TransferValidationError("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},vn=class extends dt.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ue(a).getAssetDepositLimit(n);if(c.locked)throw new dt.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 dt.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},Tn=class extends dt.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new ue(n).getGlobalWithdrawLimit();if(a.lockdown)throw new dt.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Pn=class extends dt.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 ue(a),c=a.getBalanceAssetId(S),i=a.getAssetDecimals(S)||g0,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new dt.TransferValidationError("Insufficient_Ed",{amount:1,asset:S.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var fe={isAny:()=>!0,isHydration:t=>t instanceof bo.Parachain&&t.parachainId===2034,isHub:t=>t instanceof bo.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},jr=[new gn(fe.isAny,fe.isAny),new wn(fe.isAny,fe.isAny),new Cn(fe.isAny,fe.isHub),new kn(fe.isHub,fe.isAny),new En(fe.isAny,fe.isHydration),new Pn(fe.isHydration,fe.isAny),new vn(fe.isAny,fe.isHydration),new Tn(fe.isHydration,fe.isAny)];var go={};is(go,{AssethubDex:()=>Ao,HydrationDex:()=>yo});var _s=require("@galacticcouncil/sdk-next"),$r=require("@galacticcouncil/common"),Jr=require("polkadot-api");var zr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:Fn}=_s.pool,{TradeRouteBuilder:w0,TradeRouter:C0}=_s.sor,{TxBuilderFactory:k0}=_s.tx,yo=class{chain;client;poolCtx;txBuilder;getCtx=zr(async e=>{console.log("init swap router",e,"\u2705");let s=new C0(this.poolCtx);return s.withFilter({useOnly:[Fn.Aave,Fn.Omni,Fn.Stable,Fn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ue(this.chain),this.txBuilder=new k0(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 Jr.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:w0.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,$r.RUNTIME_DECIMALS);return a/BigInt(r)}};var xo=require("@galacticcouncil/common"),Ao=class{chain;client;constructor(e){this.chain=e,this.client=new _e(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,xo.encodeLocation)(o),(0,xo.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var ei=require("@galacticcouncil/xc-core");var Yr=require("@galacticcouncil/xc-core");function Bn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Yr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function Qr(t){let{decimals:e,id:s}=t;return{asset:Bn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Zr(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Bn(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 Xn=class extends ei.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=Bn(a),c=Qr(a),i=Zr(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,an(r)),this.updateChainRoute(s,mn(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
|
package/build/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var ir=Object.defineProperty;var es=(t,e)=>{for(var s in e)ir(t,s,{get:e[s],enumerable:!0})};import{Asset as g}from"@galacticcouncil/xc-core";var fe=new g({key:"aave",originSymbol:"AAVE"}),je=new g({key:"ajun",originSymbol:"AJUN"}),pe=new g({key:"apyusd",originSymbol:"apyUSD"}),I=new g({key:"astr",originSymbol:"ASTR"}),S=new g({key:"bnc",originSymbol:"BNC"}),Us=new g({key:"bsx",originSymbol:"BSX"}),he=new g({key:"cfg_new",originSymbol:"CFG"}),Ie=new g({key:"cru",originSymbol:"CRU"}),mt=new g({key:"dai",originSymbol:"DAI"}),Re=new g({...mt,key:"dai_mwh"}),b=new g({key:"dot",originSymbol:"DOT"}),X=new g({key:"eth",originSymbol:"ETH"}),be=new g({key:"ena",originSymbol:"ENA"}),st=new g({key:"eurc",originSymbol:"EURC"}),ze=new g({...st,key:"eurc_mwh"}),B=new g({key:"glmr",originSymbol:"GLMR"}),J=new g({key:"hdx",originSymbol:"HDX"}),D=new g({key:"ibtc",originSymbol:"IBTC"}),V=new g({key:"intr",originSymbol:"INTR"}),Fe=new g({key:"jitoSol",originSymbol:"jitoSOL"}),T=new g({key:"ksm",originSymbol:"KSM"}),ye=new g({key:"ldo",originSymbol:"LDO"}),xe=new g({key:"lbtc",originSymbol:"LBTC"}),Be=new g({key:"ewt",originSymbol:"EWT"}),Ae=new g({key:"link",originSymbol:"LINK"}),O=new g({key:"myth",originSymbol:"MYTH"}),$e=new g({key:"neuro",originSymbol:"NEURO"}),Le=new g({key:"pen",originSymbol:"PEN"}),ge=new g({key:"paxg",originSymbol:"PAXG"}),Xe=new g({key:"prime",originSymbol:"PRIME"}),we=new g({key:"sky",originSymbol:"SKY"}),Y=new g({key:"sol",originSymbol:"SOL"}),Ce=new g({key:"sui",originSymbol:"SUI"}),ke=new g({key:"susde",originSymbol:"sUSDe"}),Je=new g({key:"susds",originSymbol:"sUSDS"}),He=new g({...Je,key:"susds_mwh"}),Ee=new g({key:"tbtc",originSymbol:"tBTC"}),ve=new g({key:"trac",originSymbol:"TRAC"}),Ye=new g({key:"unq",originSymbol:"UNQ"}),h=new g({key:"usdt",originSymbol:"USDT"}),Ve=new g({...h,key:"usdt_mwh"}),ut=new g({...h,key:"usdt_eth"}),x=new g({key:"usdc",originSymbol:"USDC"}),Me=new g({...x,key:"usdc_mwh"}),dt=new g({...x,key:"usdc_eth"}),Z=new g({key:"vastr",originSymbol:"vASTR"}),M=new g({key:"vdot",originSymbol:"vDOT"}),lt=new g({key:"weth",originSymbol:"WETH"}),Se=new g({...lt,key:"weth_mwh"}),Qe=new g({key:"wbtc",originSymbol:"WBTC"}),Ne=new g({...Qe,key:"wbtc_mwh"}),Te=new g({key:"wsteth",originSymbol:"wstETH"}),ft=new g({key:"wud",originSymbol:"WUD"}),cr=[fe,je,pe,I,Us,he,Ie,S,mt,Re,b,be,st,ze,X,B,J,D,V,T,ye,xe,Be,Fe,Ae,O,$e,ge,Le,Xe,we,Y,Ce,ke,Je,He,ve,Ee,Ye,x,Me,dt,h,Ve,ut,Z,M,Qe,Ne,lt,Se,Te,ft],mr=new Map(cr.map(t=>[t.key,t]));import{ChainEcosystem as ur,EvmChain as dr,EvmBalanceType as lr}from"@galacticcouncil/xc-core";import{base as fr}from"viem/chains";var Nt=new dr({id:8453,key:"base",name:"Base",assetsData:[{asset:X,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:st,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:lr.Erc20,ecosystem:ur.Ethereum,evmChain:fr,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 pr,EvmChain as hr,EvmBalanceType as In}from"@galacticcouncil/xc-core";import{mainnet as br}from"viem/chains";var v=new hr({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:X,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:fe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:pe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:he,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:lt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:mt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ke,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ee,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Qe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:xe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ye,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ae,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:ge,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:we,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ve,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Te,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:In.Erc20,balanceOverrides:{[X.key]:In.Native},ecosystem:pr.Ethereum,evmChain:br,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:{[mt.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"}},[Qe.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[lt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[X.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Rn=[Nt,v];import{ChainEcosystem as yr,Parachain as xr,SubstrateBalanceType as Ar}from"@galacticcouncil/xc-core";var Ot=new xr({assetsData:[{asset:je,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:Ar.System,ecosystem:yr.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 gr,Parachain as Ln,SubstrateBalanceType as cs,SubstrateMinType as wr}from"@galacticcouncil/xc-core";var Hn={assetsData:[{asset:b,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:ft,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:cs.Assets,balanceOverrides:{[b.key]:cs.System,[T.key]:cs.ForeignAssets,[O.key]:cs.ForeignAssets},min:wr.Assets,ecosystem:gr.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 Ln({...Hn,key:"assethub",name:"AssetHub Polkadot"}),xt=new Ln({...Hn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as Cr,Parachain as kr,SubstrateBalanceType as Vn}from"@galacticcouncil/xc-core";var ne=new kr({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:b,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:S,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:B,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:V,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:Vn.Assets,balanceOverrides:{[I.key]:Vn.System},ecosystem:Cr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Er,Parachain as vr,SubstrateBalanceType as Mn}from"@galacticcouncil/xc-core";var Tr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],H=new vr({assetsData:[{asset:S,id:{Native:S.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:b,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:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:B,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:Mn.Tokens,balanceOverrides:{[S.key]:Mn.System},ecosystem:Er.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Tr});import{ChainEcosystem as Pr,Parachain as Fr,XcmVersion as Br,SubstrateBalanceType as Xr}from"@galacticcouncil/xc-core";var Wt=new Fr({assetsData:[{asset:Ie,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Xr.System,ecosystem:Pr.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:Br.v3});import{ChainEcosystem as Ir,EvmParachain as Rr,SubstrateBalanceType as On}from"@galacticcouncil/xc-core";import{defineChain as Lr}from"viem";import{h160 as Sr}from"@galacticcouncil/common";import{AccountId as _r}from"polkadot-api";var{isEvmAccount:Dr,H160:Nn}=Sr,ms=class{async toH160(e,s){if(Dr(e))return Nn.fromAccount(e);let n=Nn.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=_r().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 Hr=new ms,Gs=["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"],Ks=["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"],Vr=Lr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Gs,webSocket:Ks},default:{http:Gs,webSocket:Ks}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new Rr({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:fe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:je,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:I,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:he,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Ie,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:b,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Re,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:X,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:pe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:be,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:B,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:V,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Fe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Be,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:xe,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Ae,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:ge,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:O,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:$e,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Le,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:we,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Y,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Ce,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ke,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:He,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ee,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ve,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ye,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:Me,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ze,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:dt,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:Ve,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:ut,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:Qe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ne,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:lt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Se,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Te,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ft,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:On.Tokens,balanceOverrides:{[J.key]:On.System},ecosystem:Ir.Polkadot,evmChain:Vr,evmResolver:Hr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Re.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[ze.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Xe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Y.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[He.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Me.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Ve.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ne.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Se.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Ks,rpcs:Gs});import{ChainEcosystem as Mr,Parachain as Nr,XcmVersion as Or,SubstrateBalanceType as Wr}from"@galacticcouncil/xc-core";var We=new Nr({assetsData:[{asset:V,decimals:10,id:{Token:V.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:b,decimals:10,id:{Token:b.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: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:Wr.Tokens,ecosystem:Mr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Or.v3});import{ChainEcosystem as Ur,EvmParachain as Gr,EvmBalanceType as Kr,SubstrateBalanceType as qr}from"@galacticcouncil/xc-core";import{defineChain as jr}from"viem";var zr=jr({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 Gr({assetsData:[{asset:B,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Re,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:ze,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Y,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Fe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:He,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ce,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Me,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Ve,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Ne,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:b,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Kr.Erc20,balanceOverrides:{[B.key]:qr.System},ecosystem:Ur.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"});import{ChainEcosystem as $r,Parachain as Jr,SubstrateBalanceType as Yr}from"@galacticcouncil/xc-core";var At=new Jr({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Yr.System,ecosystem:$r.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 Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Ut=new Zr({assetsData:[{asset:$e,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ei.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 ti,Parachain as si,XcmVersion as ni,SubstrateBalanceType as oi}from"@galacticcouncil/xc-core";var Gt=new si({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:oi.System,ecosystem:ti.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:ni.v3});import{ChainEcosystem as ai,Parachain as ri,SubstrateBalanceType as ii}from"@galacticcouncil/xc-core";var ci={assetsData:[{asset:b,xcmLocation:{parents:0,interior:"Here"}}],balance:ii.System,ecosystem:ai.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"},Wn=new ri({...ci,key:"polkadot"});import{ChainEcosystem as mi,Parachain as ui,SubstrateBalanceType as di}from"@galacticcouncil/xc-core";var Kt=new ui({assetsData:[{asset:Ye,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:di.System,ecosystem:mi.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 li,Parachain as fi,XcmVersion as pi,SubstrateBalanceType as hi}from"@galacticcouncil/xc-core";var qt=new fi({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:hi.System,ecosystem:li.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:pi.v3});var Un=[Ot,w,xt,ne,H,Wt,f,Ut,We,G,At,Gt,Wn,Kt,qt];import{ChainEcosystem as bi,SolanaChain as yi,SolanaBalanceType as Gn}from"@galacticcouncil/xc-core";var gt=new yi({id:101,key:"solana",name:"Solana",assetsData:[{asset:Y,decimals:9},{asset:Fe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Xe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Gn.Token,balanceOverrides:{[Y.key]:Gn.Native},ecosystem:bi.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:{[Y.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Fe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Xe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Kn=[gt];import{ChainEcosystem as xi,SuiChain as Ai,SuiBalanceType as gi}from"@galacticcouncil/xc-core";var jt=new Ai({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Ce,decimals:9}],balance:gi.Native,ecosystem:xi.Sui,explorer:"https://suiscan.xyz/",rpc:"https://sui-rpc.publicnode.com",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Ce.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var qn=[jt];import{ChainEcosystem as wi,Parachain as Ci,SubstrateBalanceType as jn,SubstrateMinType as ki}from"@galacticcouncil/xc-core";var Ze=new Ci({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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:jn.Assets,balanceOverrides:{[T.key]:jn.System},min:ki.Assets,ecosystem:wi.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 Ei,Parachain as vi,SubstrateBalanceType as Ti}from"@galacticcouncil/xc-core";var zt=new vi({assetsData:[{asset:Us,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,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:Ti.Tokens,ecosystem:Ei.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var zn=[Ze,zt];var Pi=[...Rn,...Un,...Kn,...qn,...zn],Fi=new Map(Pi.map(t=>[t.key,t]));import{ChainRoutes as cm}from"@galacticcouncil/xc-core";import{AssetRoute as ya}from"@galacticcouncil/xc-core";var ha={};es(ha,{ContractBuilder:()=>z,ExtrinsicBuilder:()=>d,ExtrinsicDecorator:()=>pt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>ns,MoveBuilder:()=>kn,ProgramBuilder:()=>En,XcmTransferType:()=>Oe,XcmVersion:()=>at});import{Abi as $n,ContractConfig as Bi,Precompile as Xi}from"@galacticcouncil/xc-core";import{encodeFunctionData as Si}from"viem";var _i=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=>Si({abi:$n[r.module],functionName:r.func,args:r.args}));return new Bi({abi:$n.Batch,address:Xi.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Jn=()=>({batchAll:_i});import{Abi as Di,ContractConfig as Ii,Wormhole as Ri}from"@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 Dt(t){return typeof t=="object"?Object.values(t)[0]:t}function Yn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Ri.fromChain(r),i=r.getAssetId(n);return new Ii({abi:Di.Erc20,address:Dt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as Li,Basejump as Hi,ContractConfig as Vi}from"@galacticcouncil/xc-core";import{h160 as Mi}from"@galacticcouncil/common";import{AccountId as Ni}from"polkadot-api";import{toHex as Oi}from"@polkadot-api/utils";var{H160:Wi,isEvmAddress:Ui}=Mi;function Gi(t){let e=Ui(t)?Wi.toAccount(t):t;return Oi(Ni().enc(e))}var Ki=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Hi.fromChain(a),c=a.getAssetId(n);return new Vi({abi:Li.Basejump,address:r.getAddress(),args:[Dt(c),s,Gi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Qn=()=>({bridgeViaWormhole:Ki});import{addr as qi,Abi as Zn,ContractConfig as eo,Precompile as to}from"@galacticcouncil/xc-core";import{big as ji}from"@galacticcouncil/common";var{Ss58Addr:so}=qi;function zi(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 qs(t,e){let s=t.getAssetId(e);return typeof s=="string"?zi(s):s}function no(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=qs(o.chain,s);return new eo({abi:Zn.PolkadotXcm,address:to.PolkadotXcm,args:[n.chain.parachainId,so.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=qs(o.chain,s),r=qs(o.chain,o.destinationFeeBalance),c=ji.toBigInt(n.fee.amount,n.fee.decimals);return new eo({abi:Zn.PolkadotXcm,address:to.PolkadotXcm,args:[n.chain.parachainId,so.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as tc,Abi as uo,ContractConfig as lo,Snowbridge as fo}from"@galacticcouncil/xc-core";import{XcmV5Junctions as sc,XcmV5Junction as nc,XcmVersionedXcm as oc,XcmVersionedLocation as ac}from"@galacticcouncil/descriptors";import{Blake2256 as rc}from"@polkadot-api/substrate-bindings";import{toHex as Qs}from"@polkadot-api/utils";import{encodeAbiParameters as ic}from"viem";import{codec as $i}from"@galacticcouncil/xc-core";var us=null;async function oo(){if(us)return us;let t=await $i.getHubCodecs();return us={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},us}import{multiloc as Yi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as Pe,XcmV5AssetFilter as re,XcmV5Instruction as _,XcmV5Junctions as Ct,XcmV5Junction as ot,XcmV5NetworkId as js,XcmV5WildAsset as nt,XcmVersionedXcm as Qi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Zi}from"@polkadot-api/substrate-bindings";import{toHex as ec}from"@polkadot-api/utils";import{XcmV3Junctions as Ji}from"@galacticcouncil/descriptors";var te=340282366920938463463374607431768211455n,et="0x0000000000000000000000000000000000000000000000000000000000000000",Q={parents:1,interior:Ji.Here()},ao=0,wt=1e3,ds=1002,Ue=1,It="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",ro="0x0000000000000000000000000000000000000000000000000000000000000000",io="0x0000000000000000000000000000000000000000";var zs="0x0000000000000000000000000000000000000000",$t=t=>({parents:2,interior:Ct.X1(ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(t)})))}),$s=(t,e)=>({parents:2,interior:Ct.X2([ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(t)})),ot.AccountKey20({key:e,network:void 0})])});function co(t,e){let s=$t(t),n=$s(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[_.ReserveAssetDeposited([{id:s,fun:Pe.Fungible(o)},{id:n,fun:Pe.Fungible(o)}]),_.ExchangeAsset({give:re.Wild(nt.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:Q,fun:Pe.Fungible(a)}],maximal:!1}),_.PayFees({asset:{id:Q,fun:Pe.Fungible(a)}})],c=Js({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 Js(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=$t(e),m=n===zs?i:$s(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:Ct.X1(u)};return[_.SetAppendix([_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})]),_.ExchangeAsset({give:re.Wild(nt.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:Q,fun:Pe.Fungible(r)}],maximal:!1}),_.InitiateTransfer({destination:{parents:1,interior:Ct.X1(ot.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:re.Definite([{id:Q,fun:Pe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:re.Definite([{id:m,fun:Pe.Fungible(a)}])}],remote_xcm:[_.DepositAsset({assets:re.Wild(nt.AllCounted(3)),beneficiary:p}),_.SetTopic(c)]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p}),_.SetTopic(c)]}function Ys(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=$t(Ue),u=e===zs?l:$s(Ue,e),p={parents:0,interior:Ct.X1(ot.AccountId32({id:s,network:void 0}))},y={parents:0,interior:Ct.X1(ot.AccountKey20({key:n,network:void 0}))},A={parents:2,interior:Ct.X1(ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(Ue)})))},k=[_.DepositAsset({assets:re.Wild(nt.AllCounted(3)),beneficiary:y}),_.SetTopic(m)],F=[_.SetAppendix([_.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})])];F.push(_.ExchangeAsset({give:re.Definite([{id:Q,fun:Pe.Fungible(c)}]),want:[{id:l,fun:Pe.Fungible(i)}],maximal:!1}));let P=[{type:"ReserveWithdraw",value:re.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],R=re.Definite([{id:l,fun:Pe.Fungible(i)}]);F.push(_.InitiateTransfer({destination:A,remote_fees:{type:"ReserveWithdraw",value:R},preserve_origin:!0,assets:P,remote_xcm:k}),_.SetTopic(m));let L=a+r+c,j=[{id:Q,fun:Pe.Fungible(L)},{id:u,fun:Pe.Fungible(o)}],se=[{id:Q,fun:Pe.Fungible(a)}],E={type:"ReserveWithdraw",value:re.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},De=[{type:"ReserveWithdraw",value:re.Definite([{id:Q,fun:Pe.Fungible(c)}])},E];return[_.WithdrawAsset(j),_.PayFees({asset:se[0]}),_.SetAppendix([_.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})]),_.InitiateTransfer({destination:{parents:1,interior:Ct.X1(ot.Parachain(wt))},remote_fees:{type:"ReserveWithdraw",value:re.Definite([{id:Q,fun:Pe.Fungible(r)}])},preserve_origin:!0,assets:De,remote_xcm:F}),_.SetTopic(m)]}function mo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Zi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=ec(m.publicKey),u=i.getAssetXcmLocation(n),p=u?Yi.findNestedKey(u,"key"):void 0,y=p?p.key:zs,A=r.feeBreakdown,k=A.sourceExecutionFee??0n,F=A.dotRemoteFee??0n,P=A.dotToEtherSwapAmount??0n,R=A.etherFeeAmount??0n,j=Ys({tokenAddress:y,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:k,dotRemoteFee:F,dotToEtherSwapAmount:P,etherFeeAmount:R,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Qi.V5(j)}var{Ss58Addr:po}=tc,cc="0x0000000000000000000000000000000000000000",mc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=fo.fromChain(c),l=c.getAssetId(n),u=Dt(l),p=n.originSymbol==="ETH",y=r.feeBreakdown.executionFee,A=r.feeBreakdown.relayerFee,k=r.feeBreakdown.hydrationDotFee,F=r.fee.amount,P=po.getPubKey(e),R=new TextEncoder().encode(`${i.parachainId}${o}${u}${P}${s}${Date.now()}`),L=Qs(rc(R)),j=Js({ethChainId:Ue,destinationParaId:i.parachainId,tokenAddress:p?cc:u,beneficiaryHex:P,tokenAmount:s,hydrationDotFee:k,topic:L}),se=await oo(),E=Qs(se.message.enc(oc.V5(j))),De=[];p||De.push(ic([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,s]));let yt=se.location.enc(ac.V5({parents:0,interior:sc.X1(nc.AccountId32({id:P,network:void 0}))})),ct=Qs(yt.slice(1));return new lo({abi:uo.Snowbridge,address:m.getGateway(),args:[E,De,ct,y,A],value:p?F+s:F,func:"v2_sendMessage",module:"Snowbridge"})}}),uc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=fo.fromChain(r),m=r.getAssetId(n),l=Dt(m),u=n.originSymbol==="ETH",p=a.feeBreakdown.bridgeFeeInDot,y=a.fee.amount;return new lo({abi:uo.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,po.getPubKey(e)],p,s],value:u?y+s:y,func:"sendToken",module:"Snowbridge"})}}),ho=()=>({v2SendMessage:mc,sendToken:uc});import{Abi as bo,ContractConfig as dc,EvmBalanceType as lc,EvmParachain as fc,Ntt as pc,Wormhole as hc}from"@galacticcouncil/xc-core";var bc="0x00",yo=8,yc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=pc.fromChain(r,n),m=hc.fromChain(c),l=e;c instanceof fc&&(l=await c.getDerivatedAddress(e));let u=r,p=await u.evmClient.getProvider().readContract({abi:bo.NttManager,address:i.manager,args:[m.getWormholeId(),bc],functionName:"quoteDeliveryPrice"}),y=u.getAssetDecimals(n)??0,A=s;if(y>yo){let k=10n**BigInt(y-yo);A=s-s%k}return new dc({abi:bo.NttManager,address:i.manager,args:[A,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,wrapNative:u.getBalanceType(n)===lc.Native,value:p[1],func:"transfer",module:"NttManager"})}}),xo=()=>({transfer:yc});function Ao(){return{Ntt:xo}}function z(){return{Batch:Jn,Erc20:Yn,Basejump:Qn,PolkadotXcm:no,Snowbridge:ho,Wormhole:Ao}}import{encodeLocation as go}from"@galacticcouncil/common";import{ExtrinsicConfig as xc}from"@galacticcouncil/xc-core";var wo="AssetConversion",Ac=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=go(i.getAssetXcmLocation(r)),l=go(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,p=c.amount;return new xc({module:wo,func:e,getTx:y=>y.getUnsafeApi().tx[wo][e]({path:[m,l],amount_out:p,amount_in_max:u,send_to:s,keep_alive:!0})})}}},Co=()=>({swapTokensForExactTokens:Ac});import{hub as gc,MultiAddress as wc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";var kc="Assets",Ec=()=>{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 Cc({module:kc,func:t,getTx:m=>m.getTypedApi(gc).tx.Assets.transfer({id:Number(i),target:wc.Id(n),amount:c})})}}},ko=()=>({transfer:Ec});import{ExtrinsicConfig as vc}from"@galacticcouncil/xc-core";var Eo="Balances",Tc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new vc({module:Eo,func:e,getTx:n=>n.getUnsafeApi().tx[Eo][e]({dest:s,keep_alive:t})})}},vo=()=>({transferAll:Tc});import{hydration as Pc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Fc}from"@galacticcouncil/xc-core";var Bc="Router",Xc=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 Fc({module:Bc,func:"buy",getTx:y=>y.getTypedApi(Pc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:u,max_amount_in:p,route:c})})}}),To=()=>({buy:Xc});import{ExtrinsicConfig as Sc}from"@galacticcouncil/xc-core";var Po="Utility",_c=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new Sc({module:Po,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[Po][e]({calls:a})}})}}},Fo=()=>({batchAll:_c});import{Abi as Dc,ExtrinsicConfig as Ic}from"@galacticcouncil/xc-core";import{Binary as Rc}from"polkadot-api";import{encodeFunctionData as Lc}from"viem";var at=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(at||{}),Oe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Oe||{});var Bo="EthereumXcm",Hc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=Lc({abi:Dc[n.module],functionName:n.func,args:n.args});return new Ic({module:Bo,func:e,getTx:r=>r.getUnsafeApi().tx[Bo][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:Rc.fromHex(a),access_list:void 0}}})})}}},Zs=()=>({transact:Hc});import{ExtrinsicConfig as Pt}from"@galacticcouncil/xc-core";import{big as xs}from"@galacticcouncil/common";import{multiloc as Wo,ChainEcosystem as ln}from"@galacticcouncil/xc-core";import{XcmV3Junctions as ie,XcmV3Junction as Rt,XcmV3JunctionNetworkId as No,XcmV3MultiassetFungibility as kt,XcmV4Instruction as N,XcmV4AssetAssetFilter as Et,XcmV4AssetWildAsset as vt,XcmV3WeightLimit as ys,XcmV2MultiassetWildFungibility as i0,XcmV2OriginKind as c0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Yc,XcmV3MultiassetFungibility as tn,XcmV3WeightLimit as Qc,XcmV4AssetAssetFilter as Zc,XcmV4AssetWildAsset as e0,XcmV4Instruction as ts}from"@galacticcouncil/descriptors";import{acc as Vc}from"@galacticcouncil/common";import{XcmV3Junction as Xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Mc}from"@polkadot-api/substrate-bindings";import{toHex as Nc}from"@polkadot-api/utils";function $(t){if(t.length===42&&t.startsWith("0x"))return Xo.AccountKey20({key:t,network:void 0});let s=Mc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Xo.AccountId32({id:Nc(s.publicKey),network:void 0})}function Jt(t,e,s){return Vc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as So}from"@galacticcouncil/xc-core";function _o(t,e){let s=So.findNestedKey(t,"GeneralIndex"),n=So.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function W(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ps={};es(ps,{ETHER_TOKEN_ADDRESS:()=>en,erc20Location:()=>Uc,erc20LocationReanchored:()=>Gc,ethereumLocation:()=>Io,parachainLocation:()=>Wc});import{XcmV3Junctions as ls,XcmV3Junction as fs,XcmV3JunctionNetworkId as Oc}from"@galacticcouncil/descriptors";var en="0x0000000000000000000000000000000000000000",Do=t=>fs.GlobalConsensus(Oc.Ethereum({chain_id:BigInt(t)}));function Io(t){return{parents:2,interior:ls.X1(Do(t))}}function Wc(t){return{parents:1,interior:ls.X1(fs.Parachain(t))}}function Uc(t,e){return e===en?Io(t):{parents:2,interior:ls.X2([Do(t),fs.AccountKey20({key:e})])}}function Gc(t){return t===en?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ls.X1(fs.AccountKey20({key:t}))}}import{encodeLocation as Ro}from"@galacticcouncil/common";import{multiloc as Kc}from"@galacticcouncil/xc-core";function K(t,e){return qc(e)>=4?Ro(t):jc(t)}function qc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function jc(t){return{type:"Concrete",value:Ro(t)}}var zc=1e3;function $c(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 Jc(t){if(t)return $c(t)?zc:Kc.findParachain(t)}function Lo(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Jc(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 hs(t,e){let s="V4",n=K(W(e,t),s),o=et;return[ts.ReserveAssetDeposited([{id:Q,fun:tn.Fungible(te)},{id:n,fun:tn.Fungible(te)}]),ts.ClearOrigin(),ts.BuyExecution({fees:{id:Q,fun:tn.Fungible(te)},weight_limit:Qc.Unlimited()}),ts.DepositAsset({assets:Zc.Wild(e0.AllCounted(2)),beneficiary:{parents:0,interior:Yc.X1($(It))}}),ts.SetTopic(o)]}import{XcmV4Instruction as sn,XcmV3MultiassetFungibility as nn,XcmV3WeightLimit as t0}from"@galacticcouncil/descriptors";function on(t,e){let s="V4",n=K(W(e,t),s),o=bs("V4",$(io),$(It),n,et);return[sn.WithdrawAsset([{id:Q,fun:nn.Fungible(te)},{id:n,fun:nn.Fungible(te)}]),sn.ClearOrigin(),sn.BuyExecution({fees:{id:Q,fun:nn.Fungible(te)},weight_limit:t0.Unlimited()}),...o.value]}import{XcmV3Junctions as an,XcmV3Junction as s0,XcmV3MultiassetFungibility as ss,XcmV3WeightLimit as rn,XcmV4AssetAssetFilter as cn,XcmV4AssetWildAsset as mn,XcmV4Instruction as Ge}from"@galacticcouncil/descriptors";function Ho(t,e){let s="V4",n=K(W(e,t),s),o=et;return[Ge.WithdrawAsset([{id:n,fun:ss.Fungible(te)}]),Ge.ClearOrigin(),Ge.BuyExecution({fees:{id:n,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:an.X1($(It))}}),Ge.SetTopic(o)]}function un(t,e){let s="V4",n=K(W(e,t),s);return[Ge.BuyExecution({fees:{id:n,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:an.X1($(It))}})]}function Vo(t,e,s){let n="V4",o=K(W(e,t),n),a=et,r=un(t,s);return[Ge.WithdrawAsset([{id:o,fun:ss.Fungible(te)}]),Ge.ClearOrigin(),Ge.BuyExecution({fees:{id:o,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositReserveAsset({assets:cn.Wild(mn.AllCounted(1)),dest:{parents:1,interior:an.X1(s0.Parachain(s.parachainId))},xcm:r}),Ge.SetTopic(a)]}import{XcmV3MultiassetFungibility as dn,XcmV5AssetFilter as n0,XcmV5Instruction as Yt,XcmV5Junctions as o0,XcmV5Junction as a0,XcmV5WildAsset as r0}from"@galacticcouncil/descriptors";function Mo(t,e){let s="V5",n=K(W(e,t),s),o={parents:0,interior:o0.X1(a0.AccountId32({id:ro,network:void 0}))};return[Yt.ReserveAssetDeposited([{id:Q,fun:dn.Fungible(te)}]),Yt.PayFees({asset:{id:Q,fun:dn.Fungible(te)}}),Yt.ReserveAssetDeposited([{id:n,fun:dn.Fungible(te)}]),Yt.ClearOrigin(),Yt.DepositAsset({assets:n0.Wild(r0.AllCounted(3)),beneficiary:o}),Yt.SetTopic(et)]}var Oo=[ln.Polkadot,ln.Kusama],m0={parents:1,interior:ie.X1(Rt.Parachain(1e3))},u0=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Uo=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Oo.includes(t.ecosystem)&&Oo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Go=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(Uo(e,s))return{type:t,value:fn(s.ecosystem,s.parachainId)};if(s.parachainId===ao)return{type:t,value:{parents:1,interior:ie.Here()}};let n=s.key==="ethereum"?wt:s.parachainId;return{type:t,value:{parents:1,interior:ie.X1(Rt.Parachain(n))}}},d0=t=>t===ln.Kusama?No.Kusama():No.Polkadot(),fn=(t,e)=>({parents:2,interior:ie.X2([Rt.GlobalConsensus(d0(t)),Rt.Parachain(e)])}),Ko=(t,e,s,n)=>{if(Uo(e,s)){if(e.parachainId!==wt){let o=Wo.findGlobalConsensus(W(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:ie.X1(Rt.Parachain(wt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==wt)return{dest:{type:t,value:fn(s.ecosystem,wt)},mode:"onward"}}},Lt=(t,e)=>({type:t,value:{parents:0,interior:ie.X1(e)}}),pn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:u0(s)?m0:s}}:{type:e},Tt=(t,e)=>({id:t,fun:kt.Fungible(e)}),qo=(t,e,s)=>({type:t,value:[N.DepositAsset({assets:Et.Wild(vt.AllCounted(s)),beneficiary:{parents:0,interior:ie.X1(e)}})]}),bs=(t,e,s,n,o)=>{let a=o;return{type:t,value:[N.SetAppendix([N.DepositAsset({assets:Et.Wild(vt.All()),beneficiary:{parents:0,interior:ie.X1(s)}})]),N.InitiateReserveWithdraw({assets:Et.Wild(vt.AllOf({id:n,fun:i0.Fungible()})),reserve:ps.ethereumLocation(Ue),xcm:[N.BuyExecution({fees:{id:l0(n),fun:kt.Fungible(1n)},weight_limit:ys.Unlimited()}),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}}),N.SetTopic(a)]}),N.SetTopic(a)]}},jo=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:ie.X1(Rt.Parachain(s.parachainId))}:fn(s.ecosystem,s.parachainId),c={parents:0,interior:ie.X1(e)},i=Et.Wild(vt.AllCounted(1)),m=[N.BuyExecution({fees:{id:o,fun:kt.Fungible(a)},weight_limit:ys.Unlimited()}),N.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?N.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):N.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[N.SetAppendix([N.DepositAsset({assets:Et.Wild(vt.All()),beneficiary:c})]),l]}},l0=t=>{let e=Wo.findNestedKey(t,"key");return e?{parents:0,interior:ie.X1(Rt.AccountKey20({key:e.key}))}:{parents:0,interior:ie.Here()}},zo=(t,e,s,n,o,a)=>({type:t,value:[N.WithdrawAsset([{id:s,fun:kt.Fungible(n)}]),N.BuyExecution({fees:{id:s,fun:kt.Fungible(n)},weight_limit:ys.Unlimited()}),N.Transact({origin_kind:c0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),N.RefundSurplus(),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}})]}),$o=(t,e,s,n,o,a)=>({type:t,value:[N.WithdrawAsset([{id:s,fun:kt.Fungible(o)}]),N.BuyExecution({fees:{id:s,fun:kt.Fungible(o)},weight_limit:ys.Unlimited()}),N.TransferAsset({assets:[{id:s,fun:kt.Fungible(n)}],beneficiary:{parents:0,interior:ie.X1(a)}}),N.RefundSurplus(),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}})]});var ce="PolkadotXcm",f0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=W(r,s),l=W(r,n.fee),u=K(m,i),p=K(l,i),y=Tt(u,e),A=Tt(p,n.fee.amount),k="limited_reserve_transfer_assets";return new Pt({module:ce,func:k,getTx:F=>{let P=F.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?P({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):_o(m,l)?P({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[A,y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):P({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[y,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),p0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=K(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="limited_teleport_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),h0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=K(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="reserve_transfer_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0})})}}),b0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=K(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="transfer_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),y0=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,y=o.fee;i&&(u=i.chain,p=xs.toBigInt(i.fee.amount,i.fee.decimals),y=i.fee);let A=$(r),k=i||u.usesCexForwarding?Jt(l,r,u):e,F=$(k),{transferType:P}=t,R=K(W(l,s),m),L=K(W(l,y),m),j=Tt(R,n),se=Tt(L,p),E=s.isEqual(y),De=Ko(m,l,u,s),yt=De?.dest??rt(m,l,u),ct={type:m,value:E?[j]:[se,j]},rs=pn(m,P,R),Os={type:m,value:E?R:L},Ws=pn(m,P,L),Mt;if(Go(R)&&o.chain.isEvmChain())Mt=bs(m,F,A,R,a);else if(De){let Zt=xs.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),rr=K(W(u,s),m);Mt=jo(m,F,u,De.mode,rr,Zt)}else Mt=qo(m,F,ct.value.length);let is="transfer_assets_using_type_and_then";return new Pt({module:ce,func:is,getTx:Zt=>Zt.getUnsafeApi().tx[ce][is]({dest:yt,assets:ct,assets_transfer_type:rs,remote_fees_id:Os,fees_transfer_type:Ws,custom_xcm_on_dest:Mt,weight_limit:{type:"Unlimited"}})})}}),x0=()=>{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=$(m),{fee:u}=a,p=K(W(i,u),r),y=xs.toBigInt(e.fee,u.decimals);return new Pt({module:ce,func:t,getTx:A=>A.getUnsafeApi().tx[ce][t]({dest:rt(r,c,i),message:zo(r,l,p,y,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),y=$(p),A=$(o),k=K(W(u,a),m),{fee:F}=i,P=xs.toBigInt(e.fee,F.decimals),R=n>F.amount?n-(F.amount+P):n;return new Pt({module:ce,func:t,getTx:L=>L.getUnsafeApi().tx[ce][t]({dest:rt(m,l,u),message:$o(m,y,k,R,P,A)})})}})}};function A0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Pt({module:ce,func:a,getTx:r=>r.getUnsafeApi().tx[ce][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(mo)}}var hn=()=>({limitedReserveTransferAssets:f0,limitedTeleportAssets:p0,reserveTransferAssets:h0,transferAssets:b0,transferAssetsUsingTypeAndThen:y0,execute:A0,send:x0});import{ExtrinsicConfig as w0}from"@galacticcouncil/xc-core";import{encodeAssetId as C0}from"@galacticcouncil/common";import{XcmV3Junctions as Jo,XcmV3Junction as g0}from"@galacticcouncil/descriptors";var Yo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Jo.X1(s)}}:{type:t,value:{parents:1,interior:Jo.X2([g0.Parachain(e.parachainId),s])}};var Qo="XTokens",k0=()=>({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=$(m),u=r.getAssetId(s),p=C0(u),y="transfer";return new w0({module:Qo,func:y,getTx:A=>A.getUnsafeApi().tx[Qo][y]({currency_id:p,amount:e,dest:Yo(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),bn=()=>({transfer:k0});function d(){return{assetConversion:Co,assets:ko,balances:vo,ethereumXcm:Zs,polkadotXcm:hn,router:To,utility:Fo,xTokens:bn}}function pt(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 ca,Snowbridge as I0,Basejump as R0}from"@galacticcouncil/xc-core";var Zo=80000n,ea=120000n,ta=100000n,sa=2000000n,yn=15000000000000n;var ia={};es(ia,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>aa,AssethubClient:()=>_e,BaseClient:()=>Ke,HydrationClient:()=>me,getAllAssetDepositLimits:()=>An,getAssetDepositLimit:()=>xn,getGlobalWithdrawLimit:()=>gn});import{encodeLocation as na}from"@galacticcouncil/common";import{hub as E0,XcmVersionedAssetId as oa}from"@galacticcouncil/descriptors";var Ke=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??E0}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=na(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,oa.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=na(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,oa.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as As,XcmV5Junction as v0,XcmVersionedLocation as T0,XcmVersionedXcm as P0,XcmVersionedAssetId as F0}from"@galacticcouncil/descriptors";import{encodeLocation as B0}from"@galacticcouncil/common";import{Twox128 as X0,u128 as S0}from"@polkadot-api/substrate-bindings";import{toHex as _0}from"@polkadot-api/utils";var _e=class extends Ke{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=B0(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(X0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=S0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=T0.V5({parents:1,interior:As.X1(v0.Parachain(s))}),o=F0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,P0.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:As.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:As.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:As.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 D0}from"@galacticcouncil/descriptors";var aa=14400;function ra(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 y=n?.type==="Local"?"Local":"External",A=!m&&u!==void 0&&u+aa<=o,k=null;if(r!==null)if(m)k=0n;else if(A)k=r;else{let F=p??a,P=a>F?a-F:0n;k=r>P?r-P:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:u,baselineIssuance:p,currentIssuance:a,headroom:k,category:y,periodExpired:A}}async function xn(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 ra(e,n,o,a,r,c)}async function An(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],y=u.value;if(y?.xcm_rate_limit==null)continue;let A=p===0?a:m.get(p)??0n,k=ra(p,y,c.get(p),i.get(p),o,A);l.set(p.toString(),k)}return l}async function gn(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 y=o>i?o-i:0n;if(y>0n){let A=y>l?l:y,k=c*A/l;u=c>k?c-k: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 me=class extends Ke{constructor(e){super(e,D0)}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 xn(this.api(),s)}getAllAssetDepositLimits(){return An(this.api())}getGlobalWithdrawLimit(){return gn(this.api())}};function L0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new me(n),a=new _e(t.hub),r=hs(e,n),c=Mo(e,n),i=$t(Ue),m=250000000n,l=co(Ue,n.parachainId),[u,p,y,A]=await Promise.all([o.calculateDestinationFeeV5(c,b),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,ds),a.calculateDestinationFeeV5(l,b)]),k=ee(u,33n),F=ee(p,33n),P=ee(y,33n),L=ee(A,33n)+F,j=k,se=await a.quoteEtherForDot(i,L),E=ee(se,30n),De=E<yn*2n?yn*2n:E,yt=ee(await a.quoteEtherForDot(i,j),100n),ct=ee(await a.quoteDotToEther(i,m+P),30n);return{amount:De+ct+yt,breakdown:{executionFee:De,relayerFee:ct,remoteEtherFee:yt,hydrationDotFee:j}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new _e(t.hub),i=$t(Ue),m=on(e,a),[l,u,p]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,ds),c.calculateDestinationFee(m,s)]),y=await r.evmClient.getProvider().getGasPrice(),A=sa+ea+Zo+ta,k=y*A,F=ee(k,10n),P=l+ee(u,33n)+ee(p,33n),R=ee(await c.quoteDotForExactEther(i,F),20n),L=new me(a),j=Ys({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:et}),se=ee(await L.calculateDestinationFeeV5(j,b),33n);return{amount:P+R+se,breakdown:{dotRemoteFee:P,dotToEtherSwapAmount:R,etherFeeAmount:F,sourceExecutionFee:se}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=I0.fromChain(o),c=new Ke(a),i=new _e(t.hub),m=hs(e,a),[l,u]=await Promise.all([c.calculateDestinationFee(m,b),i.calculateDeliveryFee(m,a.parachainId)]),p=u+ee(l,25n),y=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:ca.Snowbridge,address:r.getGateway(),args:[y,a.parachainId,p],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:p}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new _e(t.hub),r=on(e,o),c=hs(e,o),[i,m,l,u,p]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,ds),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+ee(l,25n)+u+ee(p,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:p}}}})}}function H0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Lo(e,o,a,r),r){let p=new Ke(a),y=new Ke(r),A=un(e,a),k=Vo(e,r,a),[F,P]=await Promise.all([p.calculateDestinationFee(A,e),y.calculateDestinationFee(k,e)]),R=P+F,L=ee(R,20n),j=L-R;return{amount:L,breakdown:{reserveFee:P,destinationFee:F,margin:j}}}let c=new Ke(a),i=Ho(e,a),m=await c.calculateDestinationFee(i,e),l=ee(m,20n),u=l-m;return{amount:l,breakdown:{totalFee:m,margin:u}}}})}}function V0(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=R0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:ca.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:V0,XcmPaymentApi:H0,Snowbridge:L0}}var M0="0";function N0(){return{build:async({address:t,chain:e})=>{let n=await new me(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():M0,a=e.findAssetById(o);return a?a.asset:J}}}var O0=()=>({accountCurrencyMap:N0});function ns(){return{multiTransactionPayment:O0}}import{EvmParachain as W0,MoveConfig as U0,Ntt as G0,suiPkg as wn,Wormhole as ma}from"@galacticcouncil/xc-core";import{Transaction as K0}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Cn}from"@mysten/sui/utils";import{encoding as q0}from"@wormhole-foundation/sdk-base";var j0=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=G0.fromChain(r,n),m=ma.fromChain(r),l=ma.fromChain(c),u=r.client,p=e;c instanceof W0&&(p=await c.getDerivatedAddress(e));let y=q0.hex.decode(l.normalizeAddress(p)),A=m.getCoreBridge(),k=i.manager,F=i.transceiver.wormhole,P=i.token,[R,L,j,se]=await Promise.all([wn.getWormholePackageId(u,A),wn.getCurrentPackageId(u,k),wn.getCurrentPackageId(u,F),u.getCoinMetadata({coinType:P})]);if(!se?.id)throw new Error("Unable to fetch coin metadata of "+P);let E=new K0,[De]=E.splitCoins(E.gas,[E.pure.u64(s)]),[yt]=E.moveCall({target:`${L}::upgrades::new_version_gated`,arguments:[]}),[ct,rs]=E.moveCall({target:`${L}::ntt::prepare_transfer`,typeArguments:[P],arguments:[E.object(k),De,E.object(se.id),E.pure.u16(l.getWormholeId()),E.pure.vector("u8",Array.from(y)),E.pure.option("vector<u8>",null),E.pure.bool(!1)]}),[Os]=E.moveCall({target:`${L}::state::get_next_sequence`,typeArguments:[P],arguments:[E.object(k)]});E.moveCall({target:`${L}::ntt::transfer_tx_sender`,typeArguments:[P],arguments:[E.object(k),yt,E.object(se.id),ct,E.object(Cn)]});let[Ws]=E.moveCall({target:`${L}::state::create_transceiver_message`,typeArguments:[`${j}::wormhole_transceiver::TransceiverAuth`,P],arguments:[E.object(k),Os,E.object(Cn)]}),[Mt]=E.moveCall({target:`${j}::wormhole_transceiver::release_outbound`,typeArguments:[`${L}::auth::ManagerAuth`],arguments:[E.object(F),Ws]}),[is]=E.splitCoins(E.gas,[E.pure.u64(0n)]);E.moveCall({target:`${R}::publish_message::publish_message`,arguments:[E.object(A),is,Mt,E.object(Cn)]});let[Zt]=E.moveCall({target:"0x2::coin::from_balance",typeArguments:[P],arguments:[rs]});return E.mergeCoins(E.gas,[Zt]),new U0({transaction:E,func:"transfer",module:"NttManager"})}}),ua=()=>({transfer:j0});function da(){return{Ntt:ua}}function kn(){return{Wormhole:da}}import{EvmParachain as z0,Ntt as $0,ProgramConfig as J0,SolanaBalanceType as Y0,Wormhole as la}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as Q0}from"@solana/spl-token";import{Keypair as Z0,TransactionMessage as em}from"@solana/web3.js";import{toChain as tm}from"@wormhole-foundation/sdk-base";import{UniversalAddress as sm}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as nm}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as om}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function am(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 rm(t,e,s){let n=await am(t,e);return{instructions:"message"in e?em.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var im=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=$0.fromChain(c,n),l=la.fromChain(c),u=la.fromChain(i),p=e;i instanceof z0&&(p=await i.getDerivatedAddress(e));let y=new om("Mainnet","Solana",c.connection,{coreBridge:l.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),A=c.getBalanceType(n)===Y0.Native,k=Z0.generate(),F=[];for await(let L of y.transfer(new nm(o),s,{chain:tm(u.getWormholeId()),address:new sm(u.normalizeAddress(p))},{queue:!1,automatic:!1,wrapNative:A},k)){let{transaction:j,signers:se}=L.transaction;F.push(await rm(c.connection,j,se??[]))}let P=A?BigInt(await Q0(c.connection)):0n,R=F[F.length-1];return new J0({instructions:R.instructions,signers:R.signers,lookupTables:R.lookupTables,prerequisites:F.slice(0,-1),rentReserve:P,func:"transfer",module:"NttManager"})}}),fa=()=>({transfer:im});function pa(){return{Ntt:fa}}function En(){return{Wormhole:pa}}var ba={};es(ba,{Tag:()=>Ft});var Ft=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Ft||{});function xa(t,e){return new ya({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Aa(t,e){return new ya({source:{asset:t,fee:{asset:X},destinationFee:t},destination:{chain:f,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var mm=[Aa(st,ze)],um=[xa(st,ze)],ga=new cm({chain:Nt,routes:[...um,...mm]});import{AssetRoute as wa,ChainRoutes as dm}from"@galacticcouncil/xc-core";import{AssetRoute as vn}from"@galacticcouncil/xc-core";function Bt(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ue(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function de(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var lm=[Bt(mt,Re),Bt(Je,He),Bt(x,Me),Bt(h,Ve),Bt(Qe,Ne),Bt(lt,Se),Bt(X,Se)],fm=[new wa({source:{asset:X,fee:{asset:X}},destination:{chain:f,asset:X,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ue(fe,fe),ue(pe,pe),ue(he,he),ue(be,be),ue(ge,ge),ue(ke,ke),ue(Ee,Ee),ue(xe,xe),ue(ye,ye),ue(Ae,Ae),ue(we,we),ue(ve,ve),ue(Te,Te),ue(x,dt),ue(h,ut)],pm=[new wa({source:{asset:X,fee:{asset:X}},destination:{chain:f,asset:X,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),de(fe,fe),de(pe,pe),de(he,he),de(be,be),de(ge,ge),de(ke,ke),de(Ee,Ee),de(xe,xe),de(ye,ye),de(Ae,Ae),de(we,we),de(ve,ve),de(Te,Te),de(x,dt),de(h,ut)],Ca=new dm({chain:v,routes:[...lm,...fm,...pm]});var ka=[ga,Ca];import{AssetRoute as Cs,ChainRoutes as va}from"@galacticcouncil/xc-core";import{AssetRoute as Tn}from"@galacticcouncil/xc-core";var Ht=0,hm=t=>{let{source:e}=t;return!!e.feeSwap},bm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Ea=d().assetConversion().swapTokensForExactTokens({slippage:30});function ym(t,e,s){return new Tn({source:{asset:t,fee:{asset:b,extra:Ht}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:pt(bm,Ea).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function gs(t,e,s){return new Tn({source:{asset:t,fee:{asset:t,swap:!t.isEqual(b)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:pt(hm,Ea).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Vt(t,e,s){return new Tn({source:{asset:t,fee:{asset:b,extra:Ht}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ws(t){return ym(t,f,.02)}var xm=[new Cs({source:{asset:b,fee:{asset:b,extra:Ht}},destination:{chain:f,asset:b,fee:{amount:.001,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Cs({source:{asset:T,fee:{asset:b,extra:Ht}},destination:{chain:f,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Vt(h,f,.02),Vt(x,f,.02),ws(ft)],Am=[new Cs({source:{asset:T,fee:{asset:b,extra:Ht}},destination:{chain:Ze,asset:T,fee:{amount:.001,asset:T}},extrinsic:d().polkadotXcm().transferAssets()})],gm=[Vt(h,G,.25),Vt(x,G,.25)],wm=[Vt(h,H,.03),Vt(x,H,.03)],Cm=[new Cs({source:{asset:O,fee:{asset:b,extra:Ht}},destination:{chain:At,asset:O,fee:{amount:2.5,asset:O}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Ta=new va({chain:xt,routes:[gs(h,f,.02),gs(x,f,.02),gs(b,f,.001)]}),Pa=new va({chain:w,routes:[...xm,...Am,...gm,...wm,...Cm]});import{AssetRoute as ht,ChainRoutes as km}from"@galacticcouncil/xc-core";var Em=[new ht({source:{asset:I},destination:{chain:f,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:d().polkadotXcm().reserveTransferAssets()}),new ht({source:{asset:S,fee:{asset:I}},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:H}),asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:B,fee:{asset:I}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:G}),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:D,fee:{asset:I}},destination:{chain:f,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:V,fee:{asset:I}},destination:{chain:f,asset:V,fee:{amount:.01,asset:V}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:M,fee:{asset:I}},destination:{chain:f,asset:M,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:H}),asset:M}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:Z,fee:{asset:I}},destination:{chain:f,asset:Z,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:H}),asset:Z}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:h,fee:{asset:I}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:x,fee:{asset:I}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Fa=new km({chain:ne,routes:[...Em]});import{AssetRoute as tt,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Tm=[new tt({source:{asset:S},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:M,fee:{asset:S}},destination:{chain:f,asset:M,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:Z,fee:{asset:S}},destination:{chain:f,asset:Z,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Z}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:b,fee:{asset:S}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new tt({source:{asset:I,fee:{asset:S}},destination:{chain:f,asset:I,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:ne}),asset:I}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:B,fee:{asset:S}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:G}),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:D,fee:{asset:S}},destination:{chain:f,asset:D,fee:{amount:625e-8,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:h,fee:{asset:S}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:x,fee:{asset:S}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Pm=[new tt({source:{asset:h,fee:{asset:S}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:x,fee:{asset:S}},destination:{chain:w,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ba=new vm({chain:H,routes:[...Tm,...Pm]});import{AssetRoute as it,ChainRoutes as Sm}from"@galacticcouncil/xc-core";var q=()=>({asset:ns().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as bt}from"@galacticcouncil/xc-core";var Fm=1,Bm=.02,ks=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Es=d().router().buy({slippage:30});function U(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function Qt(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function Xt(t,e){return new bt({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function vs(t){return new bt({source:{asset:t,fee:q()},destination:{chain:w,asset:t,fee:{amount:Bm,asset:h}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function Pn(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:Ze,asset:t,fee:{amount:e,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Xm(t,e,s="LocalReserve"){return new bt({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:Fm,asset:B}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function St(t){return Xm(t,G,"DestinationReserve")}function qe(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function oe(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:b}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function ae(t,e,s){return new bt({source:{asset:t,fee:q()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:b}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var _m=[Xt(b,w),Xt(T,w),Xt(h,w),Xt(x,w),vs(ft)],Dm=[Pn(T,.05,.005),Pn(b,.2,.02)],Im=[U(I,ne),U(S,ne,H),U(B,ne,G),new it({source:{asset:D,fee:q()},destination:{chain:ne,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:V,fee:q()},destination:{chain:ne,asset:V,fee:{amount:.01,asset:V}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),U(M,ne,H),U(Z,ne,H),U(h,ne,w),U(x,ne,w)],Rm=[U(S,H),U(M,H),U(Z,H),U(I,H,ne),U(B,H,G),new it({source:{asset:D,fee:q()},destination:{chain:H,asset:D,fee:{amount:5e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),U(h,H,w),U(x,H,w),new it({source:{asset:b,fee:q()},destination:{chain:H,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Lm=[Qt(D,We,62e-8),Qt(V,We,.0019213457),Qt(J,We,.5),Qt(h,We,.3),Qt(x,We,.3),new it({source:{asset:M,fee:q()},destination:{chain:We,asset:M,fee:{amount:.01,asset:b}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:b,fee:q()},destination:{chain:We,asset:b,fee:{amount:.05,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Hm=[U(J,G),U(B,G),U(h,G,w),U(x,G,w),St(Re),St(He),St(Me),St(Ve),St(Ne),St(Se),St(Y)],Vm=[new it({source:{asset:O,fee:q()},destination:{chain:At,asset:O,fee:{amount:2.5,asset:O}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Mm=[U(Ye,Kt)],Nm=[new it({source:{asset:Ie,fee:q()},destination:{chain:Wt,asset:Ie,fee:{amount:.04,asset:Ie}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Om=[new it({source:{asset:Be,fee:q()},destination:{chain:qt,asset:Be,fee:{amount:.02,asset:Be}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Wm=[new it({source:{asset:Le,fee:q()},destination:{chain:Gt,asset:Le,fee:{amount:1.1,asset:Le}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Um=[U($e,Ut)],Gm=[U(je,Ot)],Km=[qe(Re,mt,v),qe(He,Je,v),qe(Me,x,v),qe(Ve,h,v),qe(Ne,Qe,v),qe(Se,X,v)],qm=[qe(ze,st,Nt)],jm=[qe(Y,Y,gt),qe(Fe,Fe,gt),qe(Xe,Xe,gt)],zm=[qe(Ce,Ce,jt)],$m=[oe(X,X,v),oe(fe,fe,v),oe(pe,pe,v),oe(he,he,v),oe(be,be,v),oe(ge,ge,v),oe(ke,ke,v),oe(Ee,Ee,v),oe(ve,ve,v),oe(xe,xe,v),oe(ye,ye,v),oe(Ae,Ae,v),oe(we,we,v),oe(Te,Te,v),oe(dt,x,v),oe(ut,h,v)],Jm=[ae(X,X,v),ae(fe,fe,v),ae(pe,pe,v),ae(he,he,v),ae(be,be,v),ae(ge,ge,v),ae(ke,ke,v),ae(Ee,Ee,v),ae(ve,ve,v),ae(xe,xe,v),ae(ye,ye,v),ae(Ae,Ae,v),ae(we,we,v),ae(Te,Te,v),ae(dt,x,v),ae(ut,h,v)],Ym=[Xt(b,xt),Xt(h,xt),Xt(x,xt)],Xa=new Sm({chain:f,routes:[...Gm,..._m,...Im,...Rm,...Ym,...qm,...Nm,...Km,...$m,...jm,...zm,...Jm,...Lm,...Om,...Dm,...Hm,...Vm,...Um,...Wm,...Mm]});import{AssetRoute as Ps,ChainRoutes as Qm}from"@galacticcouncil/xc-core";function Ts(t,e){return new Ps({source:{asset:t,fee:{asset:V}},destination:{chain:f,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:d().xTokens().transfer()})}var Zm=[new Ps({source:{asset:V},destination:{chain:f,asset:V,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:d().xTokens().transfer()}),new Ps({source:{asset:D,fee:{asset:V}},destination:{chain:f,asset:D,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:d().xTokens().transfer()}),new Ps({source:{asset:J,fee:{asset:V}},destination:{chain:f,asset:J,fee:{amount:.5,asset:J}},extrinsic:d().xTokens().transfer()}),Ts(M,H),Ts(h,w),Ts(x,w),Ts(b,w)],Sa=new Qm({chain:We,routes:[...Zm]});import{AssetRoute as Fn,ChainRoutes as su}from"@galacticcouncil/xc-core";import{AssetRoute as _a}from"@galacticcouncil/xc-core";function eu(t,e,s){return new _a({source:{asset:t,fee:{asset:B}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function tu(t,e,s){return new _a({source:{asset:t,fee:{asset:B}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function _t(t,e){return eu(t,f,e)}function Fs(t,e){return tu(t,f,e)}var nu=[new Fn({source:{asset:B},destination:{chain:f,asset:B,fee:{amount:.05,asset:B}},contract:z().PolkadotXcm().transferAssetsToPara32()}),Fs(J,.6),Fs(h,.3),Fs(x,.3),_t(Re,.004),_t(He,.004),_t(Me,.004),_t(Ve,.004),_t(Ne,1e-7),_t(Se,2e-6),_t(Y,2e-5)],ou=[new Fn({source:{asset:h,fee:{asset:B}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:z().PolkadotXcm().transferAssetsToPara32()}),new Fn({source:{asset:x,fee:{asset:B}},destination:{chain:w,asset:x,fee:{amount:.18,asset:x}},contract:z().PolkadotXcm().transferAssetsToPara32()})],Da=new su({chain:G,routes:[...nu,...ou]});import{AssetRoute as Ia,ChainRoutes as au}from"@galacticcouncil/xc-core";var ru=[new Ia({source:{asset:O},destination:{chain:f,asset:O,fee:{amount:.01,asset:O}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],iu=[new Ia({source:{asset:O},destination:{chain:w,asset:O,fee:{amount:.1,asset:O}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Ra=new au({chain:At,routes:[...ru,...iu]});import{AssetRoute as cu,ChainRoutes as mu}from"@galacticcouncil/xc-core";var uu=[new cu({source:{asset:Ye},destination:{chain:f,asset:Ye,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Ye}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],La=new mu({chain:Kt,routes:[...uu]});import{AssetRoute as du,ChainRoutes as lu}from"@galacticcouncil/xc-core";var fu=[new du({source:{asset:Ie},destination:{chain:f,asset:Ie,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ha=new lu({chain:Wt,routes:[...fu]});import{AssetRoute as pu,ChainRoutes as hu}from"@galacticcouncil/xc-core";var bu=[new pu({source:{asset:Le},destination:{chain:f,asset:Le,fee:{amount:.2,asset:Le}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Va=new hu({chain:Gt,routes:[...bu]});import{AssetRoute as yu,ChainRoutes as xu}from"@galacticcouncil/xc-core";var Au=[new yu({source:{asset:je},destination:{chain:f,asset:je,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:je}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ma=new xu({chain:Ot,routes:[...Au]});import{AssetRoute as gu,ChainRoutes as wu}from"@galacticcouncil/xc-core";var Cu=[new gu({source:{asset:Be,fee:{asset:Be,extra:.030555}},destination:{chain:f,asset:Be,fee:{amount:.03,asset:Be}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Na=new wu({chain:qt,routes:[...Cu]});import{AssetRoute as ku,ChainRoutes as Eu}from"@galacticcouncil/xc-core";var vu=[new ku({source:{asset:$e},destination:{chain:f,asset:$e,fee:{amount:.205,asset:$e}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Oa=new Eu({chain:Ut,routes:[...vu]});var Wa=[Ma,Pa,Ta,Fa,Ba,Xa,Sa,Da,Ra,Oa,La,Ha,Va,Na];import{AssetRoute as Tu,ChainRoutes as Pu}from"@galacticcouncil/xc-core";function Bn(t){return new Tu({source:{asset:t,fee:{asset:Y}},destination:{chain:f,asset:t,fee:{amount:0,asset:t}},program:En().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Fu=[Bn(Y),Bn(Fe),Bn(Xe)],Ua=new Pu({chain:gt,routes:[...Fu]});var Ga=[Ua];import{AssetRoute as Bu,ChainRoutes as Xu}from"@galacticcouncil/xc-core";function Su(t){return new Bu({source:{asset:t,fee:{asset:Ce}},destination:{chain:f,asset:t,fee:{amount:0,asset:t}},move:kn().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var _u=[Su(Ce)],Ka=new Xu({chain:jt,routes:[..._u]});var qa=[Ka];import{AssetRoute as Bs,ChainRoutes as Du}from"@galacticcouncil/xc-core";import{AssetRoute as x1}from"@galacticcouncil/xc-core";var os=.0015;var Iu=new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:w,asset:T,fee:{amount:.002,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ru=new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:zt,asset:T,fee:{amount:.0012,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lu=[new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:f,asset:T,fee:{amount:.04,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Bs({source:{asset:b,fee:{asset:T,extra:os}},destination:{chain:f,asset:b,fee:{amount:.15,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],ja=new Du({chain:Ze,routes:[Ru,Iu,...Lu]});import{AssetRoute as za,ChainRoutes as Hu}from"@galacticcouncil/xc-core";var Xn=()=>({asset:ns().multiTransactionPayment().accountCurrencyMap()});var Vu=[new za({source:{asset:h,fee:Xn()},destination:{chain:Ze,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Mu=[new za({source:{asset:T,fee:Xn()},destination:{chain:Ze,asset:T,fee:{amount:.0012,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],$a=new Hu({chain:zt,routes:[...Vu,...Mu]});var Ja=[ja,$a];var Nu=[...ka,...Wa,...Ga,...qa,...Ja],Ou=new Map(Nu.map(t=>[t.chain.key,t]));import{Parachain as tr}from"@galacticcouncil/xc-core";import{Parachain as Wu,TransferValidation as Ya,TransferValidationError as Qa}from"@galacticcouncil/xc-core";var Xs=class extends Ya{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Qa("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Ss=class extends Ya{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 Qa("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Wu)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as Za,TransferValidationError as er}from"@galacticcouncil/xc-core";var _s=class extends Za{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new _e(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new _e(a).getSystemAccountBalance(n)===0n)throw new er("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Ds=class extends Za{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new _e(a).checkIfFrozen(n,s))throw new er("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Vs,TransferValidationError as as}from"@galacticcouncil/xc-core";var Uu=12,Gu=1,Ku=18,Is=class extends Vs{async skipFor(e){let{destination:s}=e,n=s.chain,o=new me(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 me(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||Gu,l=i.decimals||Uu,u=m*Math.pow(10,l),p=await r.getAssetBalance(n,c);if(BigInt(u*1.1)>p)throw new as("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Rs=class extends Vs{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new me(a).getAssetDepositLimit(n);if(c.locked)throw new as("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new as("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},Ls=class extends Vs{async validate(e){let{source:s}=e,n=s.chain,a=await new me(n).getGlobalWithdrawLimit();if(a.lockdown)throw new as("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Hs=class extends Vs{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 me(a),c=a.getBalanceAssetId(B),i=a.getAssetDecimals(B)||Ku,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new as("Insufficient_Ed",{amount:1,asset:B.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var le={isAny:()=>!0,isHydration:t=>t instanceof tr&&t.parachainId===2034,isHub:t=>t instanceof tr&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},qu=[new Xs(le.isAny,le.isAny),new Ss(le.isAny,le.isAny),new _s(le.isAny,le.isHub),new Ds(le.isHub,le.isAny),new Is(le.isAny,le.isHydration),new Hs(le.isHydration,le.isAny),new Rs(le.isAny,le.isHydration),new Ls(le.isHydration,le.isAny)];var nr={};es(nr,{AssethubDex:()=>_n,HydrationDex:()=>Sn});import{pool as ju,sor as zu,tx as $u}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ju}from"@galacticcouncil/common";import{Binary as Yu}from"polkadot-api";import{memoize1 as Qu}from"@thi.ng/memoize";var{PoolType:Ms}=ju,{TradeRouteBuilder:Zu,TradeRouter:ed}=zu,{TxBuilderFactory:td}=$u,Sn=class{chain;client;poolCtx;txBuilder;getCtx=Qu(async e=>{console.log("init swap router",e,"\u2705");let s=new ed(this.poolCtx);return s.withFilter({useOnly:[Ms.Aave,Ms.Omni,Ms.Stable,Ms.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new me(this.chain),this.txBuilder=new td(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),A=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Yu.toHex(A)}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:Zu.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,Ju);return a/BigInt(r)}};import{encodeLocation as sr}from"@galacticcouncil/common";var _n=class{chain;client;constructor(e){this.chain=e,this.client=new _e(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(sr(o),sr(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as nd}from"@galacticcouncil/xc-core";import{Asset as sd}from"@galacticcouncil/xc-core";function Ns(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new sd({key:[o,s,e].join("_"),originSymbol:n})}function or(t){let{decimals:e,id:s}=t;return{asset:Ns(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function ar(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Ns(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 Dn=class extends nd{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=Ns(a),c=or(a),i=ar(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,ws(r)),this.updateChainRoute(s,vs(r))})}};export{Dn as HydrationConfigService,mr as assetsMap,ha as builders,Fi as chainsMap,ia as clients,nr as dex,Ou as routesMap,ba as tags,qu as validations};
|
|
1
|
+
var ir=Object.defineProperty;var es=(t,e)=>{for(var s in e)ir(t,s,{get:e[s],enumerable:!0})};import{Asset as g}from"@galacticcouncil/xc-core";var fe=new g({key:"aave",originSymbol:"AAVE"}),je=new g({key:"ajun",originSymbol:"AJUN"}),pe=new g({key:"apyusd",originSymbol:"apyUSD"}),R=new g({key:"astr",originSymbol:"ASTR"}),S=new g({key:"bnc",originSymbol:"BNC"}),Us=new g({key:"bsx",originSymbol:"BSX"}),he=new g({key:"cfg_new",originSymbol:"CFG"}),Ie=new g({key:"cru",originSymbol:"CRU"}),mt=new g({key:"dai",originSymbol:"DAI"}),Re=new g({...mt,key:"dai_mwh"}),b=new g({key:"dot",originSymbol:"DOT"}),X=new g({key:"eth",originSymbol:"ETH"}),be=new g({key:"ena",originSymbol:"ENA"}),st=new g({key:"eurc",originSymbol:"EURC"}),ze=new g({...st,key:"eurc_mwh"}),B=new g({key:"glmr",originSymbol:"GLMR"}),J=new g({key:"hdx",originSymbol:"HDX"}),D=new g({key:"ibtc",originSymbol:"IBTC"}),H=new g({key:"intr",originSymbol:"INTR"}),Fe=new g({key:"jitoSol",originSymbol:"jitoSOL"}),T=new g({key:"ksm",originSymbol:"KSM"}),ye=new g({key:"ldo",originSymbol:"LDO"}),xe=new g({key:"lbtc",originSymbol:"LBTC"}),Be=new g({key:"ewt",originSymbol:"EWT"}),Ae=new g({key:"link",originSymbol:"LINK"}),O=new g({key:"myth",originSymbol:"MYTH"}),$e=new g({key:"neuro",originSymbol:"NEURO"}),Le=new g({key:"pen",originSymbol:"PEN"}),ge=new g({key:"paxg",originSymbol:"PAXG"}),Xe=new g({key:"prime",originSymbol:"PRIME"}),we=new g({key:"sky",originSymbol:"SKY"}),Y=new g({key:"sol",originSymbol:"SOL"}),Ce=new g({key:"sui",originSymbol:"SUI"}),ke=new g({key:"susde",originSymbol:"sUSDe"}),Je=new g({key:"susds",originSymbol:"sUSDS"}),He=new g({...Je,key:"susds_mwh"}),Ee=new g({key:"tbtc",originSymbol:"tBTC"}),ve=new g({key:"trac",originSymbol:"TRAC"}),Ye=new g({key:"unq",originSymbol:"UNQ"}),h=new g({key:"usdt",originSymbol:"USDT"}),Ve=new g({...h,key:"usdt_mwh"}),ut=new g({...h,key:"usdt_eth"}),x=new g({key:"usdc",originSymbol:"USDC"}),Me=new g({...x,key:"usdc_mwh"}),dt=new g({...x,key:"usdc_eth"}),Z=new g({key:"vastr",originSymbol:"vASTR"}),M=new g({key:"vdot",originSymbol:"vDOT"}),lt=new g({key:"weth",originSymbol:"WETH"}),Se=new g({...lt,key:"weth_mwh"}),Qe=new g({key:"wbtc",originSymbol:"WBTC"}),Ne=new g({...Qe,key:"wbtc_mwh"}),Te=new g({key:"wsteth",originSymbol:"wstETH"}),ft=new g({key:"wud",originSymbol:"WUD"}),cr=[fe,je,pe,R,Us,he,Ie,S,mt,Re,b,be,st,ze,X,B,J,D,H,T,ye,xe,Be,Fe,Ae,O,$e,ge,Le,Xe,we,Y,Ce,ke,Je,He,ve,Ee,Ye,x,Me,dt,h,Ve,ut,Z,M,Qe,Ne,lt,Se,Te,ft],mr=new Map(cr.map(t=>[t.key,t]));import{ChainEcosystem as ur,EvmChain as dr,EvmBalanceType as lr}from"@galacticcouncil/xc-core";import{base as fr}from"viem/chains";var Nt=new dr({id:8453,key:"base",name:"Base",assetsData:[{asset:X,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:st,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:lr.Erc20,ecosystem:ur.Ethereum,evmChain:fr,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 pr,EvmChain as hr,EvmBalanceType as In}from"@galacticcouncil/xc-core";import{mainnet as br}from"viem/chains";var v=new hr({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:X,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:fe,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:pe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:he,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:lt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:mt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:be,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ke,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ee,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Qe,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:xe,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ye,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ae,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:ge,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:we,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ve,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Te,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:In.Erc20,balanceOverrides:{[X.key]:In.Native},ecosystem:pr.Ethereum,evmChain:br,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:{[mt.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"}},[Qe.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[lt.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[X.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var Rn=[Nt,v];import{ChainEcosystem as yr,Parachain as xr,SubstrateBalanceType as Ar}from"@galacticcouncil/xc-core";var Ot=new xr({assetsData:[{asset:je,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:Ar.System,ecosystem:yr.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 gr,Parachain as Ln,SubstrateBalanceType as cs,SubstrateMinType as wr}from"@galacticcouncil/xc-core";var Hn={assetsData:[{asset:b,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:ft,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:O,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:T,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:cs.Assets,balanceOverrides:{[b.key]:cs.System,[T.key]:cs.ForeignAssets,[O.key]:cs.ForeignAssets},min:wr.Assets,ecosystem:gr.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 Ln({...Hn,key:"assethub",name:"AssetHub Polkadot"}),xt=new Ln({...Hn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as Cr,Parachain as kr,SubstrateBalanceType as Vn}from"@galacticcouncil/xc-core";var se=new kr({assetsData:[{asset:R,xcmLocation:{parents:0,interior:"Here"}},{asset:b,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:S,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:B,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: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:Vn.Assets,balanceOverrides:{[R.key]:Vn.System},ecosystem:Cr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Er,Parachain as vr,SubstrateBalanceType as Mn}from"@galacticcouncil/xc-core";var Tr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new vr({assetsData:[{asset:S,id:{Native:S.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:b,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:R,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:B,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:Mn.Tokens,balanceOverrides:{[S.key]:Mn.System},ecosystem:Er.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Tr});import{ChainEcosystem as Pr,Parachain as Fr,XcmVersion as Br,SubstrateBalanceType as Xr}from"@galacticcouncil/xc-core";var Wt=new Fr({assetsData:[{asset:Ie,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Xr.System,ecosystem:Pr.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:Br.v3});import{ChainEcosystem as Ir,EvmParachain as Rr,SubstrateBalanceType as On}from"@galacticcouncil/xc-core";import{defineChain as Lr}from"viem";import{h160 as Sr}from"@galacticcouncil/common";import{AccountId as _r}from"polkadot-api";var{isEvmAccount:Dr,H160:Nn}=Sr,ms=class{async toH160(e,s){if(Dr(e))return Nn.fromAccount(e);let n=Nn.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=_r().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 Hr=new ms,Gs=["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"],Ks=["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"],Vr=Lr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Gs,webSocket:Ks},default:{http:Gs,webSocket:Ks}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),f=new Rr({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:fe,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:je,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:he,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Ie,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:b,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Re,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:X,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:pe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:be,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:B,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:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Fe,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Be,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:xe,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:Ae,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:ge,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:O,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:$e,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Le,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:we,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Y,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Ce,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ke,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:He,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ee,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ve,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ye,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:Me,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:ze,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:dt,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:Ve,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:ut,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:Qe,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ne,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:lt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Se,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Te,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ft,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:On.Tokens,balanceOverrides:{[J.key]:On.System},ecosystem:Ir.Polkadot,evmChain:Vr,evmResolver:Hr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Re.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[ze.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[Fe.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Xe.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[Y.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[Ce.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[He.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Me.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Ve.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ne.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[Se.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Ks,rpcs:Gs});import{ChainEcosystem as Mr,Parachain as Nr,XcmVersion as Or,SubstrateBalanceType as Wr}from"@galacticcouncil/xc-core";var We=new Nr({assetsData:[{asset:H,decimals:10,id:{Token:H.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:b,decimals:10,id:{Token:b.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: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:Wr.Tokens,ecosystem:Mr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Or.v3});import{ChainEcosystem as Ur,EvmParachain as Gr,EvmBalanceType as Kr,SubstrateBalanceType as qr}from"@galacticcouncil/xc-core";import{defineChain as jr}from"viem";var zr=jr({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}),K=new Gr({assetsData:[{asset:B,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Re,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:ze,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Y,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Fe,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Xe,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:He,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ce,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Me,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Ve,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:Ne,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:b,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:J,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:x,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Kr.Erc20,balanceOverrides:{[B.key]:qr.System},ecosystem:Ur.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"});import{ChainEcosystem as $r,Parachain as Jr,SubstrateBalanceType as Yr}from"@galacticcouncil/xc-core";var At=new Jr({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Yr.System,ecosystem:$r.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 Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Ut=new Zr({assetsData:[{asset:$e,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ei.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 ti,Parachain as si,XcmVersion as ni,SubstrateBalanceType as oi}from"@galacticcouncil/xc-core";var Gt=new si({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:oi.System,ecosystem:ti.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:ni.v3});import{ChainEcosystem as ai,Parachain as ri,SubstrateBalanceType as ii}from"@galacticcouncil/xc-core";var ci={assetsData:[{asset:b,xcmLocation:{parents:0,interior:"Here"}}],balance:ii.System,ecosystem:ai.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"},Wn=new ri({...ci,key:"polkadot"});import{ChainEcosystem as mi,Parachain as ui,SubstrateBalanceType as di}from"@galacticcouncil/xc-core";var Kt=new ui({assetsData:[{asset:Ye,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:di.System,ecosystem:mi.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 li,Parachain as fi,XcmVersion as pi,SubstrateBalanceType as hi}from"@galacticcouncil/xc-core";var qt=new fi({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:hi.System,ecosystem:li.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:pi.v3});var Un=[Ot,w,xt,se,L,Wt,f,Ut,We,K,At,Gt,Wn,Kt,qt];import{ChainEcosystem as bi,SolanaChain as yi,SolanaBalanceType as Gn}from"@galacticcouncil/xc-core";var gt=new yi({id:101,key:"solana",name:"Solana",assetsData:[{asset:Y,decimals:9},{asset:Fe,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Xe,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Gn.Token,balanceOverrides:{[Y.key]:Gn.Native},ecosystem:bi.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:{[Y.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Fe.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Xe.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var Kn=[gt];import{ChainEcosystem as xi,SuiChain as Ai,SuiBalanceType as gi}from"@galacticcouncil/xc-core";var jt=new Ai({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Ce,decimals:9}],balance:gi.Native,ecosystem:xi.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[Ce.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da",coinMetadata:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}}});var qn=[jt];import{ChainEcosystem as wi,Parachain as Ci,SubstrateBalanceType as jn,SubstrateMinType as ki}from"@galacticcouncil/xc-core";var Ze=new Ci({assetsData:[{asset:T,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,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:jn.Assets,balanceOverrides:{[T.key]:jn.System},min:ki.Assets,ecosystem:wi.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 Ei,Parachain as vi,SubstrateBalanceType as Ti}from"@galacticcouncil/xc-core";var zt=new vi({assetsData:[{asset:Us,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,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:Ti.Tokens,ecosystem:Ei.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var zn=[Ze,zt];var Pi=[...Rn,...Un,...Kn,...qn,...zn],Fi=new Map(Pi.map(t=>[t.key,t]));import{ChainRoutes as cm}from"@galacticcouncil/xc-core";import{AssetRoute as ya}from"@galacticcouncil/xc-core";var ha={};es(ha,{ContractBuilder:()=>z,ExtrinsicBuilder:()=>d,ExtrinsicDecorator:()=>pt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>ns,MoveBuilder:()=>kn,ProgramBuilder:()=>En,XcmTransferType:()=>Oe,XcmVersion:()=>at});import{Abi as $n,ContractConfig as Bi,Precompile as Xi}from"@galacticcouncil/xc-core";import{encodeFunctionData as Si}from"viem";var _i=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=>Si({abi:$n[r.module],functionName:r.func,args:r.args}));return new Bi({abi:$n.Batch,address:Xi.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Jn=()=>({batchAll:_i});import{Abi as Di,ContractConfig as Ii,Wormhole as Ri}from"@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 Dt(t){return typeof t=="object"?Object.values(t)[0]:t}function Yn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Ri.fromChain(r),i=r.getAssetId(n);return new Ii({abi:Di.Erc20,address:Dt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as Li,Basejump as Hi,ContractConfig as Vi}from"@galacticcouncil/xc-core";import{h160 as Mi}from"@galacticcouncil/common";import{AccountId as Ni}from"polkadot-api";import{toHex as Oi}from"@polkadot-api/utils";var{H160:Wi,isEvmAddress:Ui}=Mi;function Gi(t){let e=Ui(t)?Wi.toAccount(t):t;return Oi(Ni().enc(e))}var Ki=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Hi.fromChain(a),c=a.getAssetId(n);return new Vi({abi:Li.Basejump,address:r.getAddress(),args:[Dt(c),s,Gi(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Qn=()=>({bridgeViaWormhole:Ki});import{addr as qi,Abi as Zn,ContractConfig as eo,Precompile as to}from"@galacticcouncil/xc-core";import{big as ji}from"@galacticcouncil/common";var{Ss58Addr:so}=qi;function zi(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 qs(t,e){let s=t.getAssetId(e);return typeof s=="string"?zi(s):s}function no(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=qs(o.chain,s);return new eo({abi:Zn.PolkadotXcm,address:to.PolkadotXcm,args:[n.chain.parachainId,so.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=qs(o.chain,s),r=qs(o.chain,o.destinationFeeBalance),c=ji.toBigInt(n.fee.amount,n.fee.decimals);return new eo({abi:Zn.PolkadotXcm,address:to.PolkadotXcm,args:[n.chain.parachainId,so.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as tc,Abi as uo,ContractConfig as lo,Snowbridge as fo}from"@galacticcouncil/xc-core";import{XcmV5Junctions as sc,XcmV5Junction as nc,XcmVersionedXcm as oc,XcmVersionedLocation as ac}from"@galacticcouncil/descriptors";import{Blake2256 as rc}from"@polkadot-api/substrate-bindings";import{toHex as Qs}from"@polkadot-api/utils";import{encodeAbiParameters as ic}from"viem";import{codec as $i}from"@galacticcouncil/xc-core";var us=null;async function oo(){if(us)return us;let t=await $i.getHubCodecs();return us={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},us}import{multiloc as Yi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as Pe,XcmV5AssetFilter as re,XcmV5Instruction as _,XcmV5Junctions as Ct,XcmV5Junction as ot,XcmV5NetworkId as js,XcmV5WildAsset as nt,XcmVersionedXcm as Qi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Zi}from"@polkadot-api/substrate-bindings";import{toHex as ec}from"@polkadot-api/utils";import{XcmV3Junctions as Ji}from"@galacticcouncil/descriptors";var te=340282366920938463463374607431768211455n,et="0x0000000000000000000000000000000000000000000000000000000000000000",Q={parents:1,interior:Ji.Here()},ao=0,wt=1e3,ds=1002,Ue=1,It="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",ro="0x0000000000000000000000000000000000000000000000000000000000000000",io="0x0000000000000000000000000000000000000000";var zs="0x0000000000000000000000000000000000000000",$t=t=>({parents:2,interior:Ct.X1(ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(t)})))}),$s=(t,e)=>({parents:2,interior:Ct.X2([ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(t)})),ot.AccountKey20({key:e,network:void 0})])});function co(t,e){let s=$t(t),n=$s(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[_.ReserveAssetDeposited([{id:s,fun:Pe.Fungible(o)},{id:n,fun:Pe.Fungible(o)}]),_.ExchangeAsset({give:re.Wild(nt.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:Q,fun:Pe.Fungible(a)}],maximal:!1}),_.PayFees({asset:{id:Q,fun:Pe.Fungible(a)}})],c=Js({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 Js(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=$t(e),m=n===zs?i:$s(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:Ct.X1(u)};return[_.SetAppendix([_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})]),_.ExchangeAsset({give:re.Wild(nt.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:Q,fun:Pe.Fungible(r)}],maximal:!1}),_.InitiateTransfer({destination:{parents:1,interior:Ct.X1(ot.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:re.Definite([{id:Q,fun:Pe.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:re.Definite([{id:m,fun:Pe.Fungible(a)}])}],remote_xcm:[_.DepositAsset({assets:re.Wild(nt.AllCounted(3)),beneficiary:p}),_.SetTopic(c)]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p}),_.SetTopic(c)]}function Ys(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=$t(Ue),u=e===zs?l:$s(Ue,e),p={parents:0,interior:Ct.X1(ot.AccountId32({id:s,network:void 0}))},y={parents:0,interior:Ct.X1(ot.AccountKey20({key:n,network:void 0}))},A={parents:2,interior:Ct.X1(ot.GlobalConsensus(js.Ethereum({chain_id:BigInt(Ue)})))},k=[_.DepositAsset({assets:re.Wild(nt.AllCounted(3)),beneficiary:y}),_.SetTopic(m)],P=[_.SetAppendix([_.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})])];P.push(_.ExchangeAsset({give:re.Definite([{id:Q,fun:Pe.Fungible(c)}]),want:[{id:l,fun:Pe.Fungible(i)}],maximal:!1}));let F=[{type:"ReserveWithdraw",value:re.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],I=re.Definite([{id:l,fun:Pe.Fungible(i)}]);P.push(_.InitiateTransfer({destination:A,remote_fees:{type:"ReserveWithdraw",value:I},preserve_origin:!0,assets:F,remote_xcm:k}),_.SetTopic(m));let G=a+r+c,V=[{id:Q,fun:Pe.Fungible(G)},{id:u,fun:Pe.Fungible(o)}],ae=[{id:Q,fun:Pe.Fungible(a)}],E={type:"ReserveWithdraw",value:re.Wild(nt.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},De=[{type:"ReserveWithdraw",value:re.Definite([{id:Q,fun:Pe.Fungible(c)}])},E];return[_.WithdrawAsset(V),_.PayFees({asset:ae[0]}),_.SetAppendix([_.SetHints({hints:[{type:"AssetClaimer",value:{location:p}}]}),_.RefundSurplus(),_.DepositAsset({assets:re.Wild(nt.All()),beneficiary:p})]),_.InitiateTransfer({destination:{parents:1,interior:Ct.X1(ot.Parachain(wt))},remote_fees:{type:"ReserveWithdraw",value:re.Definite([{id:Q,fun:Pe.Fungible(r)}])},preserve_origin:!0,assets:De,remote_xcm:P}),_.SetTopic(m)]}function mo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Zi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=ec(m.publicKey),u=i.getAssetXcmLocation(n),p=u?Yi.findNestedKey(u,"key"):void 0,y=p?p.key:zs,A=r.feeBreakdown,k=A.sourceExecutionFee??0n,P=A.dotRemoteFee??0n,F=A.dotToEtherSwapAmount??0n,I=A.etherFeeAmount??0n,V=Ys({tokenAddress:y,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:k,dotRemoteFee:P,dotToEtherSwapAmount:F,etherFeeAmount:I,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Qi.V5(V)}var{Ss58Addr:po}=tc,cc="0x0000000000000000000000000000000000000000",mc=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=fo.fromChain(c),l=c.getAssetId(n),u=Dt(l),p=n.originSymbol==="ETH",y=r.feeBreakdown.executionFee,A=r.feeBreakdown.relayerFee,k=r.feeBreakdown.hydrationDotFee,P=r.fee.amount,F=po.getPubKey(e),I=new TextEncoder().encode(`${i.parachainId}${o}${u}${F}${s}${Date.now()}`),G=Qs(rc(I)),V=Js({ethChainId:Ue,destinationParaId:i.parachainId,tokenAddress:p?cc:u,beneficiaryHex:F,tokenAmount:s,hydrationDotFee:k,topic:G}),ae=await oo(),E=Qs(ae.message.enc(oc.V5(V))),De=[];p||De.push(ic([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,s]));let yt=ae.location.enc(ac.V5({parents:0,interior:sc.X1(nc.AccountId32({id:F,network:void 0}))})),ct=Qs(yt.slice(1));return new lo({abi:uo.Snowbridge,address:m.getGateway(),args:[E,De,ct,y,A],value:p?P+s:P,func:"v2_sendMessage",module:"Snowbridge"})}}),uc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=fo.fromChain(r),m=r.getAssetId(n),l=Dt(m),u=n.originSymbol==="ETH",p=a.feeBreakdown.bridgeFeeInDot,y=a.fee.amount;return new lo({abi:uo.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,po.getPubKey(e)],p,s],value:u?y+s:y,func:"sendToken",module:"Snowbridge"})}}),ho=()=>({v2SendMessage:mc,sendToken:uc});import{Abi as bo,ContractConfig as dc,EvmBalanceType as lc,EvmParachain as fc,Ntt as pc,Wormhole as hc}from"@galacticcouncil/xc-core";var bc="0x00",yo=8,yc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=pc.fromChain(r,n),m=hc.fromChain(c),l=e;c instanceof fc&&(l=await c.getDerivatedAddress(e));let u=r,p=await u.evmClient.getProvider().readContract({abi:bo.NttManager,address:i.manager,args:[m.getWormholeId(),bc],functionName:"quoteDeliveryPrice"}),y=u.getAssetDecimals(n)??0,A=s;if(y>yo){let k=10n**BigInt(y-yo);A=s-s%k}return new dc({abi:bo.NttManager,address:i.manager,args:[A,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,wrapNative:u.getBalanceType(n)===lc.Native,value:p[1],func:"transfer",module:"NttManager"})}}),xo=()=>({transfer:yc});function Ao(){return{Ntt:xo}}function z(){return{Batch:Jn,Erc20:Yn,Basejump:Qn,PolkadotXcm:no,Snowbridge:ho,Wormhole:Ao}}import{encodeLocation as go}from"@galacticcouncil/common";import{ExtrinsicConfig as xc}from"@galacticcouncil/xc-core";var wo="AssetConversion",Ac=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=go(i.getAssetXcmLocation(r)),l=go(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,p=c.amount;return new xc({module:wo,func:e,getTx:y=>y.getUnsafeApi().tx[wo][e]({path:[m,l],amount_out:p,amount_in_max:u,send_to:s,keep_alive:!0})})}}},Co=()=>({swapTokensForExactTokens:Ac});import{hub as gc,MultiAddress as wc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";var kc="Assets",Ec=()=>{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 Cc({module:kc,func:t,getTx:m=>m.getTypedApi(gc).tx.Assets.transfer({id:Number(i),target:wc.Id(n),amount:c})})}}},ko=()=>({transfer:Ec});import{ExtrinsicConfig as vc}from"@galacticcouncil/xc-core";var Eo="Balances",Tc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new vc({module:Eo,func:e,getTx:n=>n.getUnsafeApi().tx[Eo][e]({dest:s,keep_alive:t})})}},vo=()=>({transferAll:Tc});import{hydration as Pc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Fc}from"@galacticcouncil/xc-core";var Bc="Router",Xc=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 Fc({module:Bc,func:"buy",getTx:y=>y.getTypedApi(Pc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:u,max_amount_in:p,route:c})})}}),To=()=>({buy:Xc});import{ExtrinsicConfig as Sc}from"@galacticcouncil/xc-core";var Po="Utility",_c=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new Sc({module:Po,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[Po][e]({calls:a})}})}}},Fo=()=>({batchAll:_c});import{Abi as Dc,ExtrinsicConfig as Ic}from"@galacticcouncil/xc-core";import{Binary as Rc}from"polkadot-api";import{encodeFunctionData as Lc}from"viem";var at=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(at||{}),Oe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Oe||{});var Bo="EthereumXcm",Hc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=Lc({abi:Dc[n.module],functionName:n.func,args:n.args});return new Ic({module:Bo,func:e,getTx:r=>r.getUnsafeApi().tx[Bo][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:Rc.fromHex(a),access_list:void 0}}})})}}},Zs=()=>({transact:Hc});import{ExtrinsicConfig as Pt}from"@galacticcouncil/xc-core";import{big as xs}from"@galacticcouncil/common";import{multiloc as Wo,ChainEcosystem as ln}from"@galacticcouncil/xc-core";import{XcmV3Junctions as ie,XcmV3Junction as Rt,XcmV3JunctionNetworkId as No,XcmV3MultiassetFungibility as kt,XcmV4Instruction as N,XcmV4AssetAssetFilter as Et,XcmV4AssetWildAsset as vt,XcmV3WeightLimit as ys,XcmV2MultiassetWildFungibility as i0,XcmV2OriginKind as c0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Yc,XcmV3MultiassetFungibility as tn,XcmV3WeightLimit as Qc,XcmV4AssetAssetFilter as Zc,XcmV4AssetWildAsset as e0,XcmV4Instruction as ts}from"@galacticcouncil/descriptors";import{acc as Vc}from"@galacticcouncil/common";import{XcmV3Junction as Xo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Mc}from"@polkadot-api/substrate-bindings";import{toHex as Nc}from"@polkadot-api/utils";function $(t){if(t.length===42&&t.startsWith("0x"))return Xo.AccountKey20({key:t,network:void 0});let s=Mc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Xo.AccountId32({id:Nc(s.publicKey),network:void 0})}function Jt(t,e,s){return Vc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as So}from"@galacticcouncil/xc-core";function _o(t,e){let s=So.findNestedKey(t,"GeneralIndex"),n=So.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function W(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ps={};es(ps,{ETHER_TOKEN_ADDRESS:()=>en,erc20Location:()=>Uc,erc20LocationReanchored:()=>Gc,ethereumLocation:()=>Io,parachainLocation:()=>Wc});import{XcmV3Junctions as ls,XcmV3Junction as fs,XcmV3JunctionNetworkId as Oc}from"@galacticcouncil/descriptors";var en="0x0000000000000000000000000000000000000000",Do=t=>fs.GlobalConsensus(Oc.Ethereum({chain_id:BigInt(t)}));function Io(t){return{parents:2,interior:ls.X1(Do(t))}}function Wc(t){return{parents:1,interior:ls.X1(fs.Parachain(t))}}function Uc(t,e){return e===en?Io(t):{parents:2,interior:ls.X2([Do(t),fs.AccountKey20({key:e})])}}function Gc(t){return t===en?{parents:0,interior:{type:"Here"}}:{parents:0,interior:ls.X1(fs.AccountKey20({key:t}))}}import{encodeLocation as Ro}from"@galacticcouncil/common";import{multiloc as Kc}from"@galacticcouncil/xc-core";function q(t,e){return qc(e)>=4?Ro(t):jc(t)}function qc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function jc(t){return{type:"Concrete",value:Ro(t)}}var zc=1e3;function $c(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 Jc(t){if(t)return $c(t)?zc:Kc.findParachain(t)}function Lo(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Jc(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 hs(t,e){let s="V4",n=q(W(e,t),s),o=et;return[ts.ReserveAssetDeposited([{id:Q,fun:tn.Fungible(te)},{id:n,fun:tn.Fungible(te)}]),ts.ClearOrigin(),ts.BuyExecution({fees:{id:Q,fun:tn.Fungible(te)},weight_limit:Qc.Unlimited()}),ts.DepositAsset({assets:Zc.Wild(e0.AllCounted(2)),beneficiary:{parents:0,interior:Yc.X1($(It))}}),ts.SetTopic(o)]}import{XcmV4Instruction as sn,XcmV3MultiassetFungibility as nn,XcmV3WeightLimit as t0}from"@galacticcouncil/descriptors";function on(t,e){let s="V4",n=q(W(e,t),s),o=bs("V4",$(io),$(It),n,et);return[sn.WithdrawAsset([{id:Q,fun:nn.Fungible(te)},{id:n,fun:nn.Fungible(te)}]),sn.ClearOrigin(),sn.BuyExecution({fees:{id:Q,fun:nn.Fungible(te)},weight_limit:t0.Unlimited()}),...o.value]}import{XcmV3Junctions as an,XcmV3Junction as s0,XcmV3MultiassetFungibility as ss,XcmV3WeightLimit as rn,XcmV4AssetAssetFilter as cn,XcmV4AssetWildAsset as mn,XcmV4Instruction as Ge}from"@galacticcouncil/descriptors";function Ho(t,e){let s="V4",n=q(W(e,t),s),o=et;return[Ge.WithdrawAsset([{id:n,fun:ss.Fungible(te)}]),Ge.ClearOrigin(),Ge.BuyExecution({fees:{id:n,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:an.X1($(It))}}),Ge.SetTopic(o)]}function un(t,e){let s="V4",n=q(W(e,t),s);return[Ge.BuyExecution({fees:{id:n,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:an.X1($(It))}})]}function Vo(t,e,s){let n="V4",o=q(W(e,t),n),a=et,r=un(t,s);return[Ge.WithdrawAsset([{id:o,fun:ss.Fungible(te)}]),Ge.ClearOrigin(),Ge.BuyExecution({fees:{id:o,fun:ss.Fungible(te)},weight_limit:rn.Unlimited()}),Ge.DepositReserveAsset({assets:cn.Wild(mn.AllCounted(1)),dest:{parents:1,interior:an.X1(s0.Parachain(s.parachainId))},xcm:r}),Ge.SetTopic(a)]}import{XcmV3MultiassetFungibility as dn,XcmV5AssetFilter as n0,XcmV5Instruction as Yt,XcmV5Junctions as o0,XcmV5Junction as a0,XcmV5WildAsset as r0}from"@galacticcouncil/descriptors";function Mo(t,e){let s="V5",n=q(W(e,t),s),o={parents:0,interior:o0.X1(a0.AccountId32({id:ro,network:void 0}))};return[Yt.ReserveAssetDeposited([{id:Q,fun:dn.Fungible(te)}]),Yt.PayFees({asset:{id:Q,fun:dn.Fungible(te)}}),Yt.ReserveAssetDeposited([{id:n,fun:dn.Fungible(te)}]),Yt.ClearOrigin(),Yt.DepositAsset({assets:n0.Wild(r0.AllCounted(3)),beneficiary:o}),Yt.SetTopic(et)]}var Oo=[ln.Polkadot,ln.Kusama],m0={parents:1,interior:ie.X1(Rt.Parachain(1e3))},u0=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Uo=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Oo.includes(t.ecosystem)&&Oo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Go=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(Uo(e,s))return{type:t,value:fn(s.ecosystem,s.parachainId)};if(s.parachainId===ao)return{type:t,value:{parents:1,interior:ie.Here()}};let n=s.key==="ethereum"?wt:s.parachainId;return{type:t,value:{parents:1,interior:ie.X1(Rt.Parachain(n))}}},d0=t=>t===ln.Kusama?No.Kusama():No.Polkadot(),fn=(t,e)=>({parents:2,interior:ie.X2([Rt.GlobalConsensus(d0(t)),Rt.Parachain(e)])}),Ko=(t,e,s,n)=>{if(Uo(e,s)){if(e.parachainId!==wt){let o=Wo.findGlobalConsensus(W(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:ie.X1(Rt.Parachain(wt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==wt)return{dest:{type:t,value:fn(s.ecosystem,wt)},mode:"onward"}}},Lt=(t,e)=>({type:t,value:{parents:0,interior:ie.X1(e)}}),pn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:u0(s)?m0:s}}:{type:e},Tt=(t,e)=>({id:t,fun:kt.Fungible(e)}),qo=(t,e,s)=>({type:t,value:[N.DepositAsset({assets:Et.Wild(vt.AllCounted(s)),beneficiary:{parents:0,interior:ie.X1(e)}})]}),bs=(t,e,s,n,o)=>{let a=o;return{type:t,value:[N.SetAppendix([N.DepositAsset({assets:Et.Wild(vt.All()),beneficiary:{parents:0,interior:ie.X1(s)}})]),N.InitiateReserveWithdraw({assets:Et.Wild(vt.AllOf({id:n,fun:i0.Fungible()})),reserve:ps.ethereumLocation(Ue),xcm:[N.BuyExecution({fees:{id:l0(n),fun:kt.Fungible(1n)},weight_limit:ys.Unlimited()}),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}}),N.SetTopic(a)]}),N.SetTopic(a)]}},jo=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:ie.X1(Rt.Parachain(s.parachainId))}:fn(s.ecosystem,s.parachainId),c={parents:0,interior:ie.X1(e)},i=Et.Wild(vt.AllCounted(1)),m=[N.BuyExecution({fees:{id:o,fun:kt.Fungible(a)},weight_limit:ys.Unlimited()}),N.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?N.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):N.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[N.SetAppendix([N.DepositAsset({assets:Et.Wild(vt.All()),beneficiary:c})]),l]}},l0=t=>{let e=Wo.findNestedKey(t,"key");return e?{parents:0,interior:ie.X1(Rt.AccountKey20({key:e.key}))}:{parents:0,interior:ie.Here()}},zo=(t,e,s,n,o,a)=>({type:t,value:[N.WithdrawAsset([{id:s,fun:kt.Fungible(n)}]),N.BuyExecution({fees:{id:s,fun:kt.Fungible(n)},weight_limit:ys.Unlimited()}),N.Transact({origin_kind:c0.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),N.RefundSurplus(),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}})]}),$o=(t,e,s,n,o,a)=>({type:t,value:[N.WithdrawAsset([{id:s,fun:kt.Fungible(o)}]),N.BuyExecution({fees:{id:s,fun:kt.Fungible(o)},weight_limit:ys.Unlimited()}),N.TransferAsset({assets:[{id:s,fun:kt.Fungible(n)}],beneficiary:{parents:0,interior:ie.X1(a)}}),N.RefundSurplus(),N.DepositAsset({assets:Et.Wild(vt.AllCounted(1)),beneficiary:{parents:0,interior:ie.X1(e)}})]});var ce="PolkadotXcm",f0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=W(r,s),l=W(r,n.fee),u=q(m,i),p=q(l,i),y=Tt(u,e),A=Tt(p,n.fee.amount),k="limited_reserve_transfer_assets";return new Pt({module:ce,func:k,getTx:P=>{let F=P.getUnsafeApi().tx[ce][k];return s.key===n.fee.key?F({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):_o(m,l)?F({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[A,y]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):F({dest:rt(i,r,c),beneficiary:Lt(i,a),assets:{type:i,value:[y,A]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),p0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=q(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="limited_teleport_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),h0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=q(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="reserve_transfer_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0})})}}),b0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=$(t),r=o.chain,c=n.chain,i="V4",m=q(W(r,s),i),l=Tt(m,e),u=rt(i,r,c),p=Lt(i,a),y={type:i,value:[l]},A="transfer_assets";return new Pt({module:ce,func:A,getTx:k=>k.getUnsafeApi().tx[ce][A]({dest:u,beneficiary:p,assets:y,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),y0=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,y=o.fee;i&&(u=i.chain,p=xs.toBigInt(i.fee.amount,i.fee.decimals),y=i.fee);let A=$(r),k=i||u.usesCexForwarding?Jt(l,r,u):e,P=$(k),{transferType:F}=t,I=q(W(l,s),m),G=q(W(l,y),m),V=Tt(I,n),ae=Tt(G,p),E=s.isEqual(y),De=Ko(m,l,u,s),yt=De?.dest??rt(m,l,u),ct={type:m,value:E?[V]:[ae,V]},rs=pn(m,F,I),Os={type:m,value:E?I:G},Ws=pn(m,F,G),Mt;if(Go(I)&&o.chain.isEvmChain())Mt=bs(m,P,A,I,a);else if(De){let Zt=xs.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),rr=q(W(u,s),m);Mt=jo(m,P,u,De.mode,rr,Zt)}else Mt=qo(m,P,ct.value.length);let is="transfer_assets_using_type_and_then";return new Pt({module:ce,func:is,getTx:Zt=>Zt.getUnsafeApi().tx[ce][is]({dest:yt,assets:ct,assets_transfer_type:rs,remote_fees_id:Os,fees_transfer_type:Ws,custom_xcm_on_dest:Mt,weight_limit:{type:"Unlimited"}})})}}),x0=()=>{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=$(m),{fee:u}=a,p=q(W(i,u),r),y=xs.toBigInt(e.fee,u.decimals);return new Pt({module:ce,func:t,getTx:A=>A.getUnsafeApi().tx[ce][t]({dest:rt(r,c,i),message:zo(r,l,p,y,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),y=$(p),A=$(o),k=q(W(u,a),m),{fee:P}=i,F=xs.toBigInt(e.fee,P.decimals),I=n>P.amount?n-(P.amount+F):n;return new Pt({module:ce,func:t,getTx:G=>G.getUnsafeApi().tx[ce][t]({dest:rt(m,l,u),message:$o(m,y,k,I,F,A)})})}})}};function A0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new Pt({module:ce,func:a,getTx:r=>r.getUnsafeApi().tx[ce][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(mo)}}var hn=()=>({limitedReserveTransferAssets:f0,limitedTeleportAssets:p0,reserveTransferAssets:h0,transferAssets:b0,transferAssetsUsingTypeAndThen:y0,execute:A0,send:x0});import{ExtrinsicConfig as w0}from"@galacticcouncil/xc-core";import{encodeAssetId as C0}from"@galacticcouncil/common";import{XcmV3Junctions as Jo,XcmV3Junction as g0}from"@galacticcouncil/descriptors";var Yo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Jo.X1(s)}}:{type:t,value:{parents:1,interior:Jo.X2([g0.Parachain(e.parachainId),s])}};var Qo="XTokens",k0=()=>({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=$(m),u=r.getAssetId(s),p=C0(u),y="transfer";return new w0({module:Qo,func:y,getTx:A=>A.getUnsafeApi().tx[Qo][y]({currency_id:p,amount:e,dest:Yo(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),bn=()=>({transfer:k0});function d(){return{assetConversion:Co,assets:ko,balances:vo,ethereumXcm:Zs,polkadotXcm:hn,router:To,utility:Fo,xTokens:bn}}function pt(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 ca,Snowbridge as I0,Basejump as R0}from"@galacticcouncil/xc-core";var Zo=80000n,ea=120000n,ta=100000n,sa=2000000n,yn=15000000000000n;var ia={};es(ia,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>aa,AssethubClient:()=>_e,BaseClient:()=>Ke,HydrationClient:()=>me,getAllAssetDepositLimits:()=>An,getAssetDepositLimit:()=>xn,getGlobalWithdrawLimit:()=>gn});import{encodeLocation as na}from"@galacticcouncil/common";import{hub as E0,XcmVersionedAssetId as oa}from"@galacticcouncil/descriptors";var Ke=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??E0}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=na(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,oa.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=na(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,oa.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as As,XcmV5Junction as v0,XcmVersionedLocation as T0,XcmVersionedXcm as P0,XcmVersionedAssetId as F0}from"@galacticcouncil/descriptors";import{encodeLocation as B0}from"@galacticcouncil/common";import{Twox128 as X0,u128 as S0}from"@polkadot-api/substrate-bindings";import{toHex as _0}from"@polkadot-api/utils";var _e=class extends Ke{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=B0(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(X0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=S0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=T0.V5({parents:1,interior:As.X1(v0.Parachain(s))}),o=F0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,P0.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:As.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:As.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:As.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 D0}from"@galacticcouncil/descriptors";var aa=14400;function ra(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 y=n?.type==="Local"?"Local":"External",A=!m&&u!==void 0&&u+aa<=o,k=null;if(r!==null)if(m)k=0n;else if(A)k=r;else{let P=p??a,F=a>P?a-P:0n;k=r>F?r-F:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:u,baselineIssuance:p,currentIssuance:a,headroom:k,category:y,periodExpired:A}}async function xn(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 ra(e,n,o,a,r,c)}async function An(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],y=u.value;if(y?.xcm_rate_limit==null)continue;let A=p===0?a:m.get(p)??0n,k=ra(p,y,c.get(p),i.get(p),o,A);l.set(p.toString(),k)}return l}async function gn(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 y=o>i?o-i:0n;if(y>0n){let A=y>l?l:y,k=c*A/l;u=c>k?c-k: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 me=class extends Ke{constructor(e){super(e,D0)}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 xn(this.api(),s)}getAllAssetDepositLimits(){return An(this.api())}getGlobalWithdrawLimit(){return gn(this.api())}};function L0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new me(n),a=new _e(t.hub),r=hs(e,n),c=Mo(e,n),i=$t(Ue),m=250000000n,l=co(Ue,n.parachainId),[u,p,y,A]=await Promise.all([o.calculateDestinationFeeV5(c,b),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,ds),a.calculateDestinationFeeV5(l,b)]),k=ee(u,33n),P=ee(p,33n),F=ee(y,33n),G=ee(A,33n)+P,V=k,ae=await a.quoteEtherForDot(i,G),E=ee(ae,30n),De=E<yn*2n?yn*2n:E,yt=ee(await a.quoteEtherForDot(i,V),100n),ct=ee(await a.quoteDotToEther(i,m+F),30n);return{amount:De+ct+yt,breakdown:{executionFee:De,relayerFee:ct,remoteEtherFee:yt,hydrationDotFee:V}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new _e(t.hub),i=$t(Ue),m=on(e,a),[l,u,p]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,ds),c.calculateDestinationFee(m,s)]),y=await r.evmClient.getProvider().getGasPrice(),A=sa+ea+Zo+ta,k=y*A,P=ee(k,10n),F=l+ee(u,33n)+ee(p,33n),I=ee(await c.quoteDotForExactEther(i,P),20n),G=new me(a),V=Ys({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:et}),ae=ee(await G.calculateDestinationFeeV5(V,b),33n);return{amount:F+I+ae,breakdown:{dotRemoteFee:F,dotToEtherSwapAmount:I,etherFeeAmount:P,sourceExecutionFee:ae}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=I0.fromChain(o),c=new Ke(a),i=new _e(t.hub),m=hs(e,a),[l,u]=await Promise.all([c.calculateDestinationFee(m,b),i.calculateDeliveryFee(m,a.parachainId)]),p=u+ee(l,25n),y=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:ca.Snowbridge,address:r.getGateway(),args:[y,a.parachainId,p],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:p}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new _e(t.hub),r=on(e,o),c=hs(e,o),[i,m,l,u,p]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,ds),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+ee(l,25n)+u+ee(p,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:p}}}})}}function H0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Lo(e,o,a,r),r){let p=new Ke(a),y=new Ke(r),A=un(e,a),k=Vo(e,r,a),[P,F]=await Promise.all([p.calculateDestinationFee(A,e),y.calculateDestinationFee(k,e)]),I=F+P,G=ee(I,20n),V=G-I;return{amount:G,breakdown:{reserveFee:F,destinationFee:P,margin:V}}}let c=new Ke(a),i=Ho(e,a),m=await c.calculateDestinationFee(i,e),l=ee(m,20n),u=l-m;return{amount:l,breakdown:{totalFee:m,margin:u}}}})}}function V0(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=R0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:ca.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:V0,XcmPaymentApi:H0,Snowbridge:L0}}var M0="0";function N0(){return{build:async({address:t,chain:e})=>{let n=await new me(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():M0,a=e.findAssetById(o);return a?a.asset:J}}}var O0=()=>({accountCurrencyMap:N0});function ns(){return{multiTransactionPayment:O0}}import{EvmParachain as W0,MoveConfig as U0,Ntt as G0,suiPkg as wn,Wormhole as ma}from"@galacticcouncil/xc-core";import{Transaction as K0}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Cn}from"@mysten/sui/utils";import{encoding as q0}from"@wormhole-foundation/sdk-base";var j0=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=G0.fromChain(r,n),m=ma.fromChain(r),l=ma.fromChain(c),u=r.client,p=e;c instanceof W0&&(p=await c.getDerivatedAddress(e));let y=q0.hex.decode(l.normalizeAddress(p)),A=m.getCoreBridge(),k=i.manager,P=i.transceiver.wormhole,F=i.token,I=i.coinMetadata;if(!I)throw new Error("Missing coin metadata object of "+F);let[G,V,ae]=await Promise.all([wn.getWormholePackageId(u,A),wn.getCurrentPackageId(u,k),wn.getCurrentPackageId(u,P)]),E=new K0,[De]=E.splitCoins(E.gas,[E.pure.u64(s)]),[yt]=E.moveCall({target:`${V}::upgrades::new_version_gated`,arguments:[]}),[ct,rs]=E.moveCall({target:`${V}::ntt::prepare_transfer`,typeArguments:[F],arguments:[E.object(k),De,E.object(I),E.pure.u16(l.getWormholeId()),E.pure.vector("u8",Array.from(y)),E.pure.option("vector<u8>",null),E.pure.bool(!1)]}),[Os]=E.moveCall({target:`${V}::state::get_next_sequence`,typeArguments:[F],arguments:[E.object(k)]});E.moveCall({target:`${V}::ntt::transfer_tx_sender`,typeArguments:[F],arguments:[E.object(k),yt,E.object(I),ct,E.object(Cn)]});let[Ws]=E.moveCall({target:`${V}::state::create_transceiver_message`,typeArguments:[`${ae}::wormhole_transceiver::TransceiverAuth`,F],arguments:[E.object(k),Os,E.object(Cn)]}),[Mt]=E.moveCall({target:`${ae}::wormhole_transceiver::release_outbound`,typeArguments:[`${V}::auth::ManagerAuth`],arguments:[E.object(P),Ws]}),[is]=E.splitCoins(E.gas,[E.pure.u64(0n)]);E.moveCall({target:`${G}::publish_message::publish_message`,arguments:[E.object(A),is,Mt,E.object(Cn)]});let[Zt]=E.moveCall({target:"0x2::coin::from_balance",typeArguments:[F],arguments:[rs]});return E.mergeCoins(E.gas,[Zt]),new U0({transaction:E,func:"transfer",module:"NttManager"})}}),ua=()=>({transfer:j0});function da(){return{Ntt:ua}}function kn(){return{Wormhole:da}}import{EvmParachain as z0,Ntt as $0,ProgramConfig as J0,SolanaBalanceType as Y0,Wormhole as la}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as Q0}from"@solana/spl-token";import{Keypair as Z0,TransactionMessage as em}from"@solana/web3.js";import{toChain as tm}from"@wormhole-foundation/sdk-base";import{UniversalAddress as sm}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as nm}from"@wormhole-foundation/sdk-solana";import{SolanaNtt as om}from"@wormhole-foundation/sdk-solana-ntt";import"@wormhole-foundation/sdk-definitions-ntt";async function am(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 rm(t,e,s){let n=await am(t,e);return{instructions:"message"in e?em.decompile(e.message,{addressLookupTableAccounts:n}).instructions:e.instructions,signers:s,lookupTables:n}}var im=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=$0.fromChain(c,n),l=la.fromChain(c),u=la.fromChain(i),p=e;i instanceof z0&&(p=await i.getDerivatedAddress(e));let y=new om("Mainnet","Solana",c.connection,{coreBridge:l.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),A=c.getBalanceType(n)===Y0.Native,k=Z0.generate(),P=[];for await(let G of y.transfer(new nm(o),s,{chain:tm(u.getWormholeId()),address:new sm(u.normalizeAddress(p))},{queue:!1,automatic:!1,wrapNative:A},k)){let{transaction:V,signers:ae}=G.transaction;P.push(await rm(c.connection,V,ae??[]))}let F=A?BigInt(await Q0(c.connection)):0n,I=P[P.length-1];return new J0({instructions:I.instructions,signers:I.signers,lookupTables:I.lookupTables,prerequisites:P.slice(0,-1),rentReserve:F,func:"transfer",module:"NttManager"})}}),fa=()=>({transfer:im});function pa(){return{Ntt:fa}}function En(){return{Wormhole:pa}}var ba={};es(ba,{Tag:()=>Ft});var Ft=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Ft||{});function xa(t,e){return new ya({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Aa(t,e){return new ya({source:{asset:t,fee:{asset:X},destinationFee:t},destination:{chain:f,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var mm=[Aa(st,ze)],um=[xa(st,ze)],ga=new cm({chain:Nt,routes:[...um,...mm]});import{AssetRoute as wa,ChainRoutes as dm}from"@galacticcouncil/xc-core";import{AssetRoute as vn}from"@galacticcouncil/xc-core";function Bt(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ue(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function de(t,e){return new vn({source:{asset:t,fee:{asset:X}},destination:{chain:f,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var lm=[Bt(mt,Re),Bt(Je,He),Bt(x,Me),Bt(h,Ve),Bt(Qe,Ne),Bt(lt,Se),Bt(X,Se)],fm=[new wa({source:{asset:X,fee:{asset:X}},destination:{chain:f,asset:X,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ue(fe,fe),ue(pe,pe),ue(he,he),ue(be,be),ue(ge,ge),ue(ke,ke),ue(Ee,Ee),ue(xe,xe),ue(ye,ye),ue(Ae,Ae),ue(we,we),ue(ve,ve),ue(Te,Te),ue(x,dt),ue(h,ut)],pm=[new wa({source:{asset:X,fee:{asset:X}},destination:{chain:f,asset:X,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),de(fe,fe),de(pe,pe),de(he,he),de(be,be),de(ge,ge),de(ke,ke),de(Ee,Ee),de(xe,xe),de(ye,ye),de(Ae,Ae),de(we,we),de(ve,ve),de(Te,Te),de(x,dt),de(h,ut)],Ca=new dm({chain:v,routes:[...lm,...fm,...pm]});var ka=[ga,Ca];import{AssetRoute as Cs,ChainRoutes as va}from"@galacticcouncil/xc-core";import{AssetRoute as Tn}from"@galacticcouncil/xc-core";var Ht=0,hm=t=>{let{source:e}=t;return!!e.feeSwap},bm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Ea=d().assetConversion().swapTokensForExactTokens({slippage:30});function ym(t,e,s){return new Tn({source:{asset:t,fee:{asset:b,extra:Ht}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:pt(bm,Ea).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function gs(t,e,s){return new Tn({source:{asset:t,fee:{asset:t,swap:!t.isEqual(b)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:pt(hm,Ea).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Vt(t,e,s){return new Tn({source:{asset:t,fee:{asset:b,extra:Ht}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ws(t){return ym(t,f,.02)}var xm=[new Cs({source:{asset:b,fee:{asset:b,extra:Ht}},destination:{chain:f,asset:b,fee:{amount:.001,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Cs({source:{asset:T,fee:{asset:b,extra:Ht}},destination:{chain:f,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Vt(h,f,.02),Vt(x,f,.02),ws(ft)],Am=[new Cs({source:{asset:T,fee:{asset:b,extra:Ht}},destination:{chain:Ze,asset:T,fee:{amount:.001,asset:T}},extrinsic:d().polkadotXcm().transferAssets()})],gm=[Vt(h,K,.25),Vt(x,K,.25)],wm=[Vt(h,L,.03),Vt(x,L,.03)],Cm=[new Cs({source:{asset:O,fee:{asset:b,extra:Ht}},destination:{chain:At,asset:O,fee:{amount:2.5,asset:O}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Ta=new va({chain:xt,routes:[gs(h,f,.02),gs(x,f,.02),gs(b,f,.001)]}),Pa=new va({chain:w,routes:[...xm,...Am,...gm,...wm,...Cm]});import{AssetRoute as ht,ChainRoutes as km}from"@galacticcouncil/xc-core";var Em=[new ht({source:{asset:R},destination:{chain:f,asset:R,fee:{amount:.044306118,asset:R}},extrinsic:d().polkadotXcm().reserveTransferAssets()}),new ht({source:{asset:S,fee:{asset:R}},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:L}),asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:B,fee:{asset:R}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:K}),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:D,fee:{asset:R}},destination:{chain:f,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:H,fee:{asset:R}},destination:{chain:f,asset:H,fee:{amount:.01,asset:H}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:M,fee:{asset:R}},destination:{chain:f,asset:M,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:L}),asset:M}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:Z,fee:{asset:R}},destination:{chain:f,asset:Z,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:L}),asset:Z}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:h,fee:{asset:R}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ht({source:{asset:x,fee:{asset:R}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Fa=new km({chain:se,routes:[...Em]});import{AssetRoute as tt,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Tm=[new tt({source:{asset:S},destination:{chain:f,asset:S,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:M,fee:{asset:S}},destination:{chain:f,asset:M,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:Z,fee:{asset:S}},destination:{chain:f,asset:Z,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Z}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:b,fee:{asset:S}},destination:{chain:f,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new tt({source:{asset:R,fee:{asset:S}},destination:{chain:f,asset:R,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:se}),asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:B,fee:{asset:S}},destination:{chain:f,asset:B,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:K}),asset:B}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:D,fee:{asset:S}},destination:{chain:f,asset:D,fee:{amount:625e-8,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:h,fee:{asset:S}},destination:{chain:f,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:x,fee:{asset:S}},destination:{chain:f,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Pm=[new tt({source:{asset:h,fee:{asset:S}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new tt({source:{asset:x,fee:{asset:S}},destination:{chain:w,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ba=new vm({chain:L,routes:[...Tm,...Pm]});import{AssetRoute as it,ChainRoutes as Sm}from"@galacticcouncil/xc-core";var j=()=>({asset:ns().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as bt}from"@galacticcouncil/xc-core";var Fm=1,Bm=.02,ks=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Es=d().router().buy({slippage:30});function U(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function Qt(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function Xt(t,e){return new bt({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function vs(t){return new bt({source:{asset:t,fee:j()},destination:{chain:w,asset:t,fee:{amount:Bm,asset:h}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function Pn(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:Ze,asset:t,fee:{amount:e,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Xm(t,e,s="LocalReserve"){return new bt({source:{asset:t,fee:j()},destination:{chain:e,asset:t,fee:{amount:Fm,asset:B}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function St(t){return Xm(t,K,"DestinationReserve")}function qe(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:b}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function oe(t,e,s){return new bt({source:{asset:t,fee:j()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:b}},extrinsic:pt(ks,Es).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var _m=[Xt(b,w),Xt(T,w),Xt(h,w),Xt(x,w),vs(ft)],Dm=[Pn(T,.05,.005),Pn(b,.2,.02)],Im=[U(R,se),U(S,se,L),U(B,se,K),new it({source:{asset:D,fee:j()},destination:{chain:se,asset:D,fee:{amount:2e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:H,fee:j()},destination:{chain:se,asset:H,fee:{amount:.01,asset:H}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),U(M,se,L),U(Z,se,L),U(h,se,w),U(x,se,w)],Rm=[U(S,L),U(M,L),U(Z,L),U(R,L,se),U(B,L,K),new it({source:{asset:D,fee:j()},destination:{chain:L,asset:D,fee:{amount:5e-6,asset:D}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),U(h,L,w),U(x,L,w),new it({source:{asset:b,fee:j()},destination:{chain:L,asset:b,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Lm=[Qt(D,We,62e-8),Qt(H,We,.0019213457),Qt(J,We,.5),Qt(h,We,.3),Qt(x,We,.3),new it({source:{asset:M,fee:j()},destination:{chain:We,asset:M,fee:{amount:.01,asset:b}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new it({source:{asset:b,fee:j()},destination:{chain:We,asset:b,fee:{amount:.05,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Hm=[U(J,K),U(B,K),U(h,K,w),U(x,K,w),St(Re),St(He),St(Me),St(Ve),St(Ne),St(Se),St(Y)],Vm=[new it({source:{asset:O,fee:j()},destination:{chain:At,asset:O,fee:{amount:2.5,asset:O}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Mm=[U(Ye,Kt)],Nm=[new it({source:{asset:Ie,fee:j()},destination:{chain:Wt,asset:Ie,fee:{amount:.04,asset:Ie}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Om=[new it({source:{asset:Be,fee:j()},destination:{chain:qt,asset:Be,fee:{amount:.02,asset:Be}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Wm=[new it({source:{asset:Le,fee:j()},destination:{chain:Gt,asset:Le,fee:{amount:1.1,asset:Le}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Um=[U($e,Ut)],Gm=[U(je,Ot)],Km=[qe(Re,mt,v),qe(He,Je,v),qe(Me,x,v),qe(Ve,h,v),qe(Ne,Qe,v),qe(Se,X,v)],qm=[qe(ze,st,Nt)],jm=[qe(Y,Y,gt),qe(Fe,Fe,gt),qe(Xe,Xe,gt)],zm=[qe(Ce,Ce,jt)],$m=[ne(X,X,v),ne(fe,fe,v),ne(pe,pe,v),ne(he,he,v),ne(be,be,v),ne(ge,ge,v),ne(ke,ke,v),ne(Ee,Ee,v),ne(ve,ve,v),ne(xe,xe,v),ne(ye,ye,v),ne(Ae,Ae,v),ne(we,we,v),ne(Te,Te,v),ne(dt,x,v),ne(ut,h,v)],Jm=[oe(X,X,v),oe(fe,fe,v),oe(pe,pe,v),oe(he,he,v),oe(be,be,v),oe(ge,ge,v),oe(ke,ke,v),oe(Ee,Ee,v),oe(ve,ve,v),oe(xe,xe,v),oe(ye,ye,v),oe(Ae,Ae,v),oe(we,we,v),oe(Te,Te,v),oe(dt,x,v),oe(ut,h,v)],Ym=[Xt(b,xt),Xt(h,xt),Xt(x,xt)],Xa=new Sm({chain:f,routes:[...Gm,..._m,...Im,...Rm,...Ym,...qm,...Nm,...Km,...$m,...jm,...zm,...Jm,...Lm,...Om,...Dm,...Hm,...Vm,...Um,...Wm,...Mm]});import{AssetRoute as Ps,ChainRoutes as Qm}from"@galacticcouncil/xc-core";function Ts(t,e){return new Ps({source:{asset:t,fee:{asset:H}},destination:{chain:f,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:d().xTokens().transfer()})}var Zm=[new Ps({source:{asset:H},destination:{chain:f,asset:H,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:d().xTokens().transfer()}),new Ps({source:{asset:D,fee:{asset:H}},destination:{chain:f,asset:D,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:d().xTokens().transfer()}),new Ps({source:{asset:J,fee:{asset:H}},destination:{chain:f,asset:J,fee:{amount:.5,asset:J}},extrinsic:d().xTokens().transfer()}),Ts(M,L),Ts(h,w),Ts(x,w),Ts(b,w)],Sa=new Qm({chain:We,routes:[...Zm]});import{AssetRoute as Fn,ChainRoutes as su}from"@galacticcouncil/xc-core";import{AssetRoute as _a}from"@galacticcouncil/xc-core";function eu(t,e,s){return new _a({source:{asset:t,fee:{asset:B}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function tu(t,e,s){return new _a({source:{asset:t,fee:{asset:B}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function _t(t,e){return eu(t,f,e)}function Fs(t,e){return tu(t,f,e)}var nu=[new Fn({source:{asset:B},destination:{chain:f,asset:B,fee:{amount:.05,asset:B}},contract:z().PolkadotXcm().transferAssetsToPara32()}),Fs(J,.6),Fs(h,.3),Fs(x,.3),_t(Re,.004),_t(He,.004),_t(Me,.004),_t(Ve,.004),_t(Ne,1e-7),_t(Se,2e-6),_t(Y,2e-5)],ou=[new Fn({source:{asset:h,fee:{asset:B}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:z().PolkadotXcm().transferAssetsToPara32()}),new Fn({source:{asset:x,fee:{asset:B}},destination:{chain:w,asset:x,fee:{amount:.18,asset:x}},contract:z().PolkadotXcm().transferAssetsToPara32()})],Da=new su({chain:K,routes:[...nu,...ou]});import{AssetRoute as Ia,ChainRoutes as au}from"@galacticcouncil/xc-core";var ru=[new Ia({source:{asset:O},destination:{chain:f,asset:O,fee:{amount:.01,asset:O}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],iu=[new Ia({source:{asset:O},destination:{chain:w,asset:O,fee:{amount:.1,asset:O}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],Ra=new au({chain:At,routes:[...ru,...iu]});import{AssetRoute as cu,ChainRoutes as mu}from"@galacticcouncil/xc-core";var uu=[new cu({source:{asset:Ye},destination:{chain:f,asset:Ye,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Ye}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],La=new mu({chain:Kt,routes:[...uu]});import{AssetRoute as du,ChainRoutes as lu}from"@galacticcouncil/xc-core";var fu=[new du({source:{asset:Ie},destination:{chain:f,asset:Ie,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ha=new lu({chain:Wt,routes:[...fu]});import{AssetRoute as pu,ChainRoutes as hu}from"@galacticcouncil/xc-core";var bu=[new pu({source:{asset:Le},destination:{chain:f,asset:Le,fee:{amount:.2,asset:Le}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Va=new hu({chain:Gt,routes:[...bu]});import{AssetRoute as yu,ChainRoutes as xu}from"@galacticcouncil/xc-core";var Au=[new yu({source:{asset:je},destination:{chain:f,asset:je,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:je}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ma=new xu({chain:Ot,routes:[...Au]});import{AssetRoute as gu,ChainRoutes as wu}from"@galacticcouncil/xc-core";var Cu=[new gu({source:{asset:Be,fee:{asset:Be,extra:.030555}},destination:{chain:f,asset:Be,fee:{amount:.03,asset:Be}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Na=new wu({chain:qt,routes:[...Cu]});import{AssetRoute as ku,ChainRoutes as Eu}from"@galacticcouncil/xc-core";var vu=[new ku({source:{asset:$e},destination:{chain:f,asset:$e,fee:{amount:.205,asset:$e}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Oa=new Eu({chain:Ut,routes:[...vu]});var Wa=[Ma,Pa,Ta,Fa,Ba,Xa,Sa,Da,Ra,Oa,La,Ha,Va,Na];import{AssetRoute as Tu,ChainRoutes as Pu}from"@galacticcouncil/xc-core";function Bn(t){return new Tu({source:{asset:t,fee:{asset:Y}},destination:{chain:f,asset:t,fee:{amount:0,asset:t}},program:En().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Fu=[Bn(Y),Bn(Fe),Bn(Xe)],Ua=new Pu({chain:gt,routes:[...Fu]});var Ga=[Ua];import{AssetRoute as Bu,ChainRoutes as Xu}from"@galacticcouncil/xc-core";function Su(t){return new Bu({source:{asset:t,fee:{asset:Ce}},destination:{chain:f,asset:t,fee:{amount:0,asset:t}},move:kn().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var _u=[Su(Ce)],Ka=new Xu({chain:jt,routes:[..._u]});var qa=[Ka];import{AssetRoute as Bs,ChainRoutes as Du}from"@galacticcouncil/xc-core";import{AssetRoute as x1}from"@galacticcouncil/xc-core";var os=.0015;var Iu=new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:w,asset:T,fee:{amount:.002,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ru=new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:zt,asset:T,fee:{amount:.0012,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lu=[new Bs({source:{asset:T,fee:{asset:T,extra:os}},destination:{chain:f,asset:T,fee:{amount:.04,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Bs({source:{asset:b,fee:{asset:T,extra:os}},destination:{chain:f,asset:b,fee:{amount:.15,asset:b}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],ja=new Du({chain:Ze,routes:[Ru,Iu,...Lu]});import{AssetRoute as za,ChainRoutes as Hu}from"@galacticcouncil/xc-core";var Xn=()=>({asset:ns().multiTransactionPayment().accountCurrencyMap()});var Vu=[new za({source:{asset:h,fee:Xn()},destination:{chain:Ze,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Mu=[new za({source:{asset:T,fee:Xn()},destination:{chain:Ze,asset:T,fee:{amount:.0012,asset:T}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],$a=new Hu({chain:zt,routes:[...Vu,...Mu]});var Ja=[ja,$a];var Nu=[...ka,...Wa,...Ga,...qa,...Ja],Ou=new Map(Nu.map(t=>[t.chain.key,t]));import{Parachain as tr}from"@galacticcouncil/xc-core";import{Parachain as Wu,TransferValidation as Ya,TransferValidationError as Qa}from"@galacticcouncil/xc-core";var Xs=class extends Ya{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Qa("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Ss=class extends Ya{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 Qa("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Wu)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as Za,TransferValidationError as er}from"@galacticcouncil/xc-core";var _s=class extends Za{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new _e(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new _e(a).getSystemAccountBalance(n)===0n)throw new er("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Ds=class extends Za{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new _e(a).checkIfFrozen(n,s))throw new er("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Vs,TransferValidationError as as}from"@galacticcouncil/xc-core";var Uu=12,Gu=1,Ku=18,Is=class extends Vs{async skipFor(e){let{destination:s}=e,n=s.chain,o=new me(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 me(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||Gu,l=i.decimals||Uu,u=m*Math.pow(10,l),p=await r.getAssetBalance(n,c);if(BigInt(u*1.1)>p)throw new as("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Rs=class extends Vs{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new me(a).getAssetDepositLimit(n);if(c.locked)throw new as("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new as("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},Ls=class extends Vs{async validate(e){let{source:s}=e,n=s.chain,a=await new me(n).getGlobalWithdrawLimit();if(a.lockdown)throw new as("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Hs=class extends Vs{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 me(a),c=a.getBalanceAssetId(B),i=a.getAssetDecimals(B)||Ku,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new as("Insufficient_Ed",{amount:1,asset:B.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var le={isAny:()=>!0,isHydration:t=>t instanceof tr&&t.parachainId===2034,isHub:t=>t instanceof tr&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},qu=[new Xs(le.isAny,le.isAny),new Ss(le.isAny,le.isAny),new _s(le.isAny,le.isHub),new Ds(le.isHub,le.isAny),new Is(le.isAny,le.isHydration),new Hs(le.isHydration,le.isAny),new Rs(le.isAny,le.isHydration),new Ls(le.isHydration,le.isAny)];var nr={};es(nr,{AssethubDex:()=>_n,HydrationDex:()=>Sn});import{pool as ju,sor as zu,tx as $u}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as Ju}from"@galacticcouncil/common";import{Binary as Yu}from"polkadot-api";import{memoize1 as Qu}from"@thi.ng/memoize";var{PoolType:Ms}=ju,{TradeRouteBuilder:Zu,TradeRouter:ed}=zu,{TxBuilderFactory:td}=$u,Sn=class{chain;client;poolCtx;txBuilder;getCtx=Qu(async e=>{console.log("init swap router",e,"\u2705");let s=new ed(this.poolCtx);return s.withFilter({useOnly:[Ms.Aave,Ms.Omni,Ms.Stable,Ms.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new me(this.chain),this.txBuilder=new td(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),A=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Yu.toHex(A)}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:Zu.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,Ju);return a/BigInt(r)}};import{encodeLocation as sr}from"@galacticcouncil/common";var _n=class{chain;client;constructor(e){this.chain=e,this.client=new _e(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(sr(o),sr(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as nd}from"@galacticcouncil/xc-core";import{Asset as sd}from"@galacticcouncil/xc-core";function Ns(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new sd({key:[o,s,e].join("_"),originSymbol:n})}function or(t){let{decimals:e,id:s}=t;return{asset:Ns(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function ar(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Ns(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 Dn=class extends nd{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=Ns(a),c=or(a),i=ar(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,ws(r)),this.updateChainRoute(s,vs(r))})}};export{Dn as HydrationConfigService,mr as assetsMap,ha as builders,Fi as chainsMap,ia as clients,nr as dex,Ou as routesMap,ba as tags,qu 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-e734407",
|
|
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-e734407",
|
|
35
35
|
"@thi.ng/memoize": "^4.0.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|