@galacticcouncil/xc-cfg 2.0.0-pr346-381fdd2 → 2.0.0-pr346-efeaee1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var gn=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var Lr=Object.getOwnPropertyNames;var Hr=Object.prototype.hasOwnProperty;var $t=(t,e)=>{for(var s in e)gn(t,s,{get:e[s],enumerable:!0})},Vr=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Lr(e))!Hr.call(t,o)&&o!==s&&gn(t,o,{get:()=>e[o],enumerable:!(n=Dr(e,o))||n.enumerable});return t};var Mr=t=>Vr(gn({},"__esModule",{value:!0}),t);var qc={};$t(qc,{HydrationConfigService:()=>xn,assetsMap:()=>ro,builders:()=>jn,chainsMap:()=>Co,clients:()=>qn,dex:()=>no,routesMap:()=>kr,tags:()=>zn,validations:()=>Er});module.exports=Mr(qc);var g=require("@galacticcouncil/xc-core"),de=new g.Asset({key:"aave",originSymbol:"AAVE"}),Ne=new g.Asset({key:"ajun",originSymbol:"AJUN"}),le=new g.Asset({key:"apyusd",originSymbol:"apyUSD"}),D=new g.Asset({key:"astr",originSymbol:"ASTR"}),F=new g.Asset({key:"bnc",originSymbol:"BNC"}),wn=new g.Asset({key:"bsx",originSymbol:"BSX"}),pe=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),Pe=new g.Asset({key:"cru",originSymbol:"CRU"}),Is=new g.Asset({key:"dai",originSymbol:"DAI"}),et=new g.Asset({...Is,key:"dai_mwh"}),x=new g.Asset({key:"dot",originSymbol:"DOT"}),B=new g.Asset({key:"eth",originSymbol:"ETH"}),fe=new g.Asset({key:"ena",originSymbol:"ENA"}),Jt=new g.Asset({key:"eurc",originSymbol:"EURC"}),St=new g.Asset({...Jt,key:"eurc_mwh"}),T=new g.Asset({key:"glmr",originSymbol:"GLMR"}),j=new g.Asset({key:"hdx",originSymbol:"HDX"}),I=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),H=new g.Asset({key:"intr",originSymbol:"INTR"}),Ft=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),v=new g.Asset({key:"ksm",originSymbol:"KSM"}),he=new g.Asset({key:"ldo",originSymbol:"LDO"}),ye=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),Ee=new g.Asset({key:"ewt",originSymbol:"EWT"}),be=new g.Asset({key:"link",originSymbol:"LINK"}),M=new g.Asset({key:"myth",originSymbol:"MYTH"}),Ue=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Xe=new g.Asset({key:"pen",originSymbol:"PEN"}),xe=new g.Asset({key:"paxg",originSymbol:"PAXG"}),_t=new g.Asset({key:"prime",originSymbol:"PRIME"}),Ae=new g.Asset({key:"sky",originSymbol:"SKY"}),Be=new g.Asset({key:"sol",originSymbol:"SOL"}),Bt=new g.Asset({key:"sui",originSymbol:"SUI"}),ge=new g.Asset({key:"susde",originSymbol:"sUSDe"}),Qt=new g.Asset({key:"susds",originSymbol:"sUSDS"}),tt=new g.Asset({...Qt,key:"susds_mwh"}),we=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),Ce=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ge=new g.Asset({key:"unq",originSymbol:"UNQ"}),b=new g.Asset({key:"usdt",originSymbol:"USDT"}),st=new g.Asset({...b,key:"usdt_mwh"}),nt=new g.Asset({...b,key:"usdt_eth"}),w=new g.Asset({key:"usdc",originSymbol:"USDC"}),ot=new g.Asset({...w,key:"usdc_mwh"}),at=new g.Asset({...w,key:"usdc_eth"}),J=new g.Asset({key:"vastr",originSymbol:"vASTR"}),V=new g.Asset({key:"vdot",originSymbol:"vDOT"}),Yt=new g.Asset({key:"weth",originSymbol:"WETH"}),rt=new g.Asset({...Yt,key:"weth_mwh"}),Zt=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),it=new g.Asset({...Zt,key:"wbtc_mwh"}),ke=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),ct=new g.Asset({key:"wud",originSymbol:"WUD"}),Or=[de,Ne,le,D,wn,pe,Pe,F,Is,et,x,fe,Jt,St,B,T,j,I,H,v,he,ye,Ee,Ft,be,M,Ue,xe,Xe,_t,Ae,Be,Bt,ge,Qt,tt,Ce,we,Ge,w,ot,at,b,st,nt,J,V,Zt,it,Yt,rt,ke,ct],ro=new Map(Or.map(t=>[t.key,t]));var es=require("@galacticcouncil/xc-core");var io=require("viem/chains"),Rs=new es.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:B,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Jt,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:w,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:es.EvmBalanceType.Erc20,ecosystem:es.ChainEcosystem.Ethereum,evmChain:io.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:{}}});var It=require("@galacticcouncil/xc-core");var co=require("viem/chains"),P=new It.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:B,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:de,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:le,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Yt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Is,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:fe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ge,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Qt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:we,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Zt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ye,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:w,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:b,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:he,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:be,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:xe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ae,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ce,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ke,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:It.EvmBalanceType.Erc20,balanceOverrides:{[B.key]:It.EvmBalanceType.Native},ecosystem:It.ChainEcosystem.Ethereum,evmChain:co.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:{}}});var mo=[Rs,P];var ts=require("@galacticcouncil/xc-core");var ss=new ts.Parachain({assetsData:[{asset:Ne,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:ts.SubstrateBalanceType.System,ecosystem:ts.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Ie=require("@galacticcouncil/xc-core");var uo={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,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:M,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:v,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Ie.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:Ie.SubstrateBalanceType.System,[v.key]:Ie.SubstrateBalanceType.ForeignAssets,[M.key]:Ie.SubstrateBalanceType.ForeignAssets},min:Ie.SubstrateMinType.Assets,ecosystem:Ie.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 Ie.Parachain({...uo,key:"assethub",name:"AssetHub Polkadot"}),pt=new Ie.Parachain({...uo,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Rt=require("@galacticcouncil/xc-core");var te=new Rt.Parachain({assetsData:[{asset:D,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:F,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:T,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Rt.SubstrateBalanceType.Assets,balanceOverrides:{[D.key]:Rt.SubstrateBalanceType.System},ecosystem:Rt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Dt=require("@galacticcouncil/xc-core");var Nr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new Dt.Parachain({assetsData:[{asset:F,id:{Native:F.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:J,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:D,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:T,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Dt.SubstrateBalanceType.Tokens,balanceOverrides:{[F.key]:Dt.SubstrateBalanceType.System},ecosystem:Dt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Nr});var ft=require("@galacticcouncil/xc-core");var ns=new ft.Parachain({assetsData:[{asset:Pe,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 Lt=require("@galacticcouncil/xc-core"),ho=require("viem");var po=require("@galacticcouncil/common"),fo=require("polkadot-api"),{isEvmAccount:Ur,H160:lo}=po.h160,Ds=class{async toH160(e,s){if(Ur(e))return lo.fromAccount(e);let n=lo.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(r.subarray(20))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Gr=new Ds,Cn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],kn=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],Wr=(0,ho.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Cn,webSocket:kn},default:{http:Cn,webSocket:kn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new Lt.EvmParachain({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:de,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Ne,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Pe,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:et,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:B,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:le,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:fe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:T,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ft,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:_t,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ee,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:he,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:v,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:ye,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:be,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:xe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:M,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ue,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Xe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ae,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Be,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Bt,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ge,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Qt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:tt,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ce,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ge,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:w,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ot,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:St,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:at,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:b,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:st,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:nt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:J,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Zt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:it,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Yt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:rt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:ke,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ct,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Lt.SubstrateBalanceType.Tokens,balanceOverrides:{[j.key]:Lt.SubstrateBalanceType.System},ecosystem:Lt.ChainEcosystem.Polkadot,evmChain:Wr,evmResolver:Gr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{}},ws:kn,rpcs:Cn});var ht=require("@galacticcouncil/xc-core");var Re=new ht.Parachain({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:I,decimals:8,id:{Token:I.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,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:V,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:ht.SubstrateBalanceType.Tokens,ecosystem:ht.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:ht.XcmVersion.v3});var yt=require("@galacticcouncil/xc-core"),yo=require("viem");var Kr=(0,yo.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),U=new yt.EvmParachain({assetsData:[{asset:T,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:et,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:St,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Be,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:Ft,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:_t,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:tt,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Bt,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ot,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:st,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:it,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:rt,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:w,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:b,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:yt.EvmBalanceType.Erc20,balanceOverrides:{[T.key]:yt.SubstrateBalanceType.System},ecosystem:yt.ChainEcosystem.Polkadot,evmChain:Kr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var os=require("@galacticcouncil/xc-core");var bt=new os.Parachain({assetsData:[{asset:M,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:os.SubstrateBalanceType.System,ecosystem:os.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 as=require("@galacticcouncil/xc-core");var rs=new as.Parachain({assetsData:[{asset:Ue,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:as.SubstrateBalanceType.System,ecosystem:as.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 xt=require("@galacticcouncil/xc-core");var is=new xt.Parachain({assetsData:[{asset:Xe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:xt.SubstrateBalanceType.System,ecosystem:xt.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:xt.XcmVersion.v3});var cs=require("@galacticcouncil/xc-core");var qr={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:cs.SubstrateBalanceType.System,ecosystem:cs.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"},bo=new cs.Parachain({...qr,key:"polkadot"});var ms=require("@galacticcouncil/xc-core");var us=new ms.Parachain({assetsData:[{asset:Ge,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ms.SubstrateBalanceType.System,ecosystem:ms.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var At=require("@galacticcouncil/xc-core");var ds=new At.Parachain({assetsData:[{asset:Ee,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:At.SubstrateBalanceType.System,ecosystem:At.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:At.XcmVersion.v3});var xo=[ss,k,pt,te,L,ns,h,rs,Re,U,bt,is,bo,us,ds];var Ht=require("@galacticcouncil/xc-core");var Ls=new Ht.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:Be,decimals:9},{asset:Ft,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:_t,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Ht.SolanaBalanceType.Token,balanceOverrides:{[Be.key]:Ht.SolanaBalanceType.Native},ecosystem:Ht.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:{},platformAddressFormat:"base58"}});var Ao=[Ls];var ls=require("@galacticcouncil/xc-core");var Hs=new ls.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Bt,decimals:9}],balance:ls.SuiBalanceType.Native,ecosystem:ls.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var go=[Hs];var mt=require("@galacticcouncil/xc-core");var We=new mt.Parachain({assetsData:[{asset:v,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:mt.SubstrateBalanceType.Assets,balanceOverrides:{[v.key]:mt.SubstrateBalanceType.System},min:mt.SubstrateMinType.Assets,ecosystem:mt.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 ps=require("@galacticcouncil/xc-core");var fs=new ps.Parachain({assetsData:[{asset:wn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:v,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:ps.SubstrateBalanceType.Tokens,ecosystem:ps.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 wo=[We,fs];var jr=[...mo,...xo,...Ao,...go,...wo],Co=new Map(jr.map(t=>[t.key,t]));var za=require("@galacticcouncil/xc-core");var qa=require("@galacticcouncil/xc-core");var jn={};$t(jn,{ContractBuilder:()=>se,ExtrinsicBuilder:()=>l,ExtrinsicDecorator:()=>dt,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>Ps,XcmTransferType:()=>Se,XcmVersion:()=>Qe});var Vt=require("@galacticcouncil/xc-core"),ko=require("viem"),zr=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,ko.encodeFunctionData)({abi:Vt.Abi[r.module],functionName:r.func,args:r.args}));return new Vt.ContractConfig({abi:Vt.Abi.Batch,address:Vt.Precompile.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Eo=()=>({batchAll:zr});var hs=require("@galacticcouncil/xc-core");function Q(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Mt(t){return typeof t=="object"?Object.values(t)[0]:t}function vo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=hs.Wormhole.fromChain(r),i=r.getAssetId(n);return new hs.ContractConfig({abi:hs.Abi.Erc20,address:Mt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var ys=require("@galacticcouncil/xc-core");var To=require("@galacticcouncil/common"),Po=require("polkadot-api"),Xo=require("@polkadot-api/utils"),{H160:$r,isEvmAddress:Jr}=To.h160;function Qr(t){let e=Jr(t)?$r.toAccount(t):t;return(0,Xo.toHex)((0,Po.AccountId)().enc(e))}var Yr=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=ys.Basejump.fromChain(a),c=a.getAssetId(n);return new ys.ContractConfig({abi:ys.Abi.Basejump,address:r.getAddress(),args:[Mt(c),s,Qr(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),So=()=>({bridgeViaWormhole:Yr});var Ke=require("@galacticcouncil/xc-core"),_o=require("@galacticcouncil/common"),{Ss58Addr:Fo}=Ke.addr;function Zr(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 En(t,e){let s=t.getAssetId(e);return typeof s=="string"?Zr(s):s}function Bo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=En(o.chain,s);return new Ke.ContractConfig({abi:Ke.Abi.PolkadotXcm,address:Ke.Precompile.PolkadotXcm,args:[n.chain.parachainId,Fo.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=En(o.chain,s),r=En(o.chain,o.destinationFeeBalance),c=_o.big.toBigInt(n.fee.amount,n.fee.decimals);return new Ke.ContractConfig({abi:Ke.Abi.PolkadotXcm,address:Ke.Precompile.PolkadotXcm,args:[n.chain.parachainId,Fo.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var je=require("@galacticcouncil/xc-core"),wt=require("@galacticcouncil/descriptors"),Wo=require("@polkadot-api/substrate-bindings"),Os=require("@polkadot-api/utils"),Ko=require("viem");var Io=require("@galacticcouncil/xc-core"),Vs=null;async function Ro(){if(Vs)return Vs;let t=await Io.codec.getHubCodecs();return Vs={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Vs}var Mo=require("@galacticcouncil/xc-core"),m=require("@galacticcouncil/descriptors"),Oo=require("@polkadot-api/substrate-bindings"),No=require("@polkadot-api/utils");var Do=require("@galacticcouncil/descriptors"),Y=340282366920938463463374607431768211455n,qe="0x0000000000000000000000000000000000000000000000000000000000000000",z={parents:1,interior:Do.XcmV3Junctions.Here()},Lo=0,gt=1e3,Ms=1002,De=1,Ot="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Ho="0x0000000000000000000000000000000000000000000000000000000000000000",Vo="0x0000000000000000000000000000000000000000";var vn="0x0000000000000000000000000000000000000000",bs=t=>({parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Tn=(t,e)=>({parents:2,interior:m.XcmV5Junctions.X2([m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),m.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function Uo(t,e){let s=bs(t),n=Tn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[m.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:m.XcmV3MultiassetFungibility.Fungible(o)},{id:n,fun:m.XcmV3MultiassetFungibility.Fungible(o)}]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),m.XcmV5Instruction.PayFees({asset:{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}})],c=Pn({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 Pn(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=bs(e),u=n===vn?i:Tn(e,n),p=o.length===42&&o.startsWith("0x")?m.XcmV5Junction.AccountKey20({key:o,network:void 0}):m.XcmV5Junction.AccountId32({id:o,network:void 0}),y={parents:0,interior:m.XcmV5Junctions.X1(p)};return[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:u,fun:m.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}function Xn(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:u}=t,f=bs(De),p=e===vn?f:Tn(De,e),y={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountId32({id:s,network:void 0}))},A={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountKey20({key:n,network:void 0}))},C={parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(De)})))},S=[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),m.XcmV5Instruction.SetTopic(u)],_=[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})])];_.push(m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:f,fun:m.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let R=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:p,fun:{type:"Fungible",value:void 0}}))}],W=m.XcmV5AssetFilter.Definite([{id:f,fun:m.XcmV3MultiassetFungibility.Fungible(i)}]);_.push(m.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:W},preserve_origin:!0,assets:R,remote_xcm:S}),m.XcmV5Instruction.SetTopic(u));let ee=a+r+c,ue=[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(ee)},{id:p,fun:m.XcmV3MultiassetFungibility.Fungible(o)}],Me=[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],Je={type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:p,fun:{type:"Fungible",value:void 0}}))},Oe=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(c)}])},Je];return[m.XcmV5Instruction.WithdrawAsset(ue),m.XcmV5Instruction.PayFees({asset:Me[0]}),m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(gt))},remote_fees:{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Oe,remote_xcm:_}),m.XcmV5Instruction.SetTopic(u)]}function Go(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,u=(0,Oo.getSs58AddressInfo)(o);if(!u.isValid)throw new Error(`Invalid SS58 address: ${o}`);let f=(0,No.toHex)(u.publicKey),p=i.getAssetXcmLocation(n),y=p?Mo.multiloc.findNestedKey(p,"key"):void 0,A=y?y.key:vn,C=r.feeBreakdown,S=C.sourceExecutionFee??0n,_=C.dotRemoteFee??0n,R=C.dotToEtherSwapAmount??0n,W=C.etherFeeAmount??0n,ue=Xn({tokenAddress:A,senderPubKey:f,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:S,dotRemoteFee:_,dotToEtherSwapAmount:R,etherFeeAmount:W,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return m.XcmVersionedXcm.V5(ue)}var{Ss58Addr:qo}=je.addr,ei="0x0000000000000000000000000000000000000000",ti=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,u=je.Snowbridge.fromChain(c),f=c.getAssetId(n),p=Mt(f),y=n.originSymbol==="ETH",A=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,S=r.feeBreakdown.hydrationDotFee,_=r.fee.amount,R=qo.getPubKey(e),W=new TextEncoder().encode(`${i.parachainId}${o}${p}${R}${s}${Date.now()}`),ee=(0,Os.toHex)((0,Wo.Blake2256)(W)),ue=Pn({ethChainId:De,destinationParaId:i.parachainId,tokenAddress:y?ei:p,beneficiaryHex:R,tokenAmount:s,hydrationDotFee:S,topic:ee}),Me=await Ro(),Je=(0,Os.toHex)(Me.message.enc(wt.XcmVersionedXcm.V5(ue))),Oe=[];y||Oe.push((0,Ko.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,p,s]));let zt=Me.location.enc(wt.XcmVersionedLocation.V5({parents:0,interior:wt.XcmV5Junctions.X1(wt.XcmV5Junction.AccountId32({id:R,network:void 0}))})),Xt=(0,Os.toHex)(zt.slice(1));return new je.ContractConfig({abi:je.Abi.Snowbridge,address:u.getGateway(),args:[Je,Oe,Xt,A,C],value:y?_+s:_,func:"v2_sendMessage",module:"Snowbridge"})}}),si=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=je.Snowbridge.fromChain(r),u=r.getAssetId(n),f=Mt(u),p=n.originSymbol==="ETH",y=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new je.ContractConfig({abi:je.Abi.Snowbridge,address:i.getGateway(),args:[f,c.parachainId,[1,qo.getPubKey(e)],y,s],value:p?A+s:A,func:"sendToken",module:"Snowbridge"})}}),jo=()=>({v2SendMessage:ti,sendToken:si});var ze=require("@galacticcouncil/xc-core"),ni="0x00",zo=8,oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=ze.Ntt.fromChain(r,n),u=ze.Wormhole.fromChain(c),f=e;c instanceof ze.EvmParachain&&(f=await c.getDerivatedAddress(e));let p=r,y=await p.evmClient.getProvider().readContract({abi:ze.Abi.NttManager,address:i.manager,args:[u.getWormholeId(),ni],functionName:"quoteDeliveryPrice"}),A=p.getAssetDecimals(n)??0,C=s;if(A>zo){let S=10n**BigInt(A-zo);C=s-s%S}return new ze.ContractConfig({abi:ze.Abi.NttManager,address:i.manager,args:[C,u.getWormholeId(),u.normalizeAddress(f)],token:i.token,value:y[1],func:"transfer",module:"NttManager"})}}),$o=()=>({transfer:oi});function Jo(){return{Ntt:$o}}function se(){return{Batch:Eo,Erc20:vo,Basejump:So,PolkadotXcm:Bo,Snowbridge:jo,Wormhole:Jo}}var Sn=require("@galacticcouncil/common"),Yo=require("@galacticcouncil/xc-core"),Qo="AssetConversion",ai=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,u=(0,Sn.encodeLocation)(i.getAssetXcmLocation(r)),f=(0,Sn.encodeLocation)(i.getAssetXcmLocation(c)),p=r.amount+r.amount*BigInt(t.slippage)/100n,y=c.amount;return new Yo.ExtrinsicConfig({module:Qo,func:e,getTx:A=>A.getUnsafeApi().tx[Qo][e]({path:[u,f],amount_out:y,amount_in_max:p,send_to:s,keep_alive:!0})})}}},Zo=()=>({swapTokensForExactTokens:ai});var Ns=require("@galacticcouncil/descriptors"),ea=require("@galacticcouncil/xc-core"),ri="Assets",ii=()=>{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 ea.ExtrinsicConfig({module:ri,func:t,getTx:u=>u.getTypedApi(Ns.hub).tx.Assets.transfer({id:Number(i),target:Ns.MultiAddress.Id(n),amount:c})})}}},ta=()=>({transfer:ii});var na=require("@galacticcouncil/xc-core"),sa="Balances",ci=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new na.ExtrinsicConfig({module:sa,func:e,getTx:n=>n.getUnsafeApi().tx[sa][e]({dest:s,keep_alive:t})})}},oa=()=>({transferAll:ci});var aa=require("@galacticcouncil/descriptors"),ra=require("@galacticcouncil/xc-core"),mi="Router",ui=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,u=i.getMetadataAssetId(a),f=i.getMetadataAssetId(r),p=r.amount,y=a.amount+a.amount*BigInt(t.slippage)/100n;return new ra.ExtrinsicConfig({module:mi,func:"buy",getTx:A=>A.getTypedApi(aa.hydration).tx.Router.buy({asset_in:Number(u),asset_out:Number(f),amount_out:p,max_amount_in:y,route:c})})}}),ia=()=>({buy:ui});var ma=require("@galacticcouncil/xc-core"),ca="Utility",di=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new ma.ExtrinsicConfig({module:ca,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[ca][e]({calls:a})}})}}},ua=()=>({batchAll:di});var Us=require("@galacticcouncil/xc-core"),la=require("polkadot-api"),pa=require("viem");var Qe=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(Qe||{}),Se=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Se||{});var da="EthereumXcm",li=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,pa.encodeFunctionData)({abi:Us.Abi[n.module],functionName:n.func,args:n.args});return new Us.ExtrinsicConfig({module:da,func:e,getTx:r=>r.getUnsafeApi().tx[da][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:la.Binary.fromHex(a),access_list:void 0}}})})}}},Fn=()=>({transact:li});var ut=require("@galacticcouncil/xc-core"),Es=require("@galacticcouncil/common");var Nt=require("@galacticcouncil/xc-core"),d=require("@galacticcouncil/descriptors");var Z=require("@galacticcouncil/descriptors");var fa=require("@galacticcouncil/common"),_n=require("@galacticcouncil/descriptors"),ha=require("@polkadot-api/substrate-bindings"),ya=require("@polkadot-api/utils");function K(t){if(t.length===42&&t.startsWith("0x"))return _n.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,ha.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return _n.XcmV3Junction.AccountId32({id:(0,ya.toHex)(s.publicKey),network:void 0})}function xs(t,e,s){return fa.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var Bn=require("@galacticcouncil/xc-core");function ba(t,e){let s=Bn.multiloc.findNestedKey(t,"GeneralIndex"),n=Bn.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function O(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Gs={};$t(Gs,{ETHER_TOKEN_ADDRESS:()=>In,erc20Location:()=>fi,erc20LocationReanchored:()=>hi,ethereumLocation:()=>Aa,parachainLocation:()=>pi});var Le=require("@galacticcouncil/descriptors"),In="0x0000000000000000000000000000000000000000",xa=t=>Le.XcmV3Junction.GlobalConsensus(Le.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Aa(t){return{parents:2,interior:Le.XcmV3Junctions.X1(xa(t))}}function pi(t){return{parents:1,interior:Le.XcmV3Junctions.X1(Le.XcmV3Junction.Parachain(t))}}function fi(t,e){return e===In?Aa(t):{parents:2,interior:Le.XcmV3Junctions.X2([xa(t),Le.XcmV3Junction.AccountKey20({key:e})])}}function hi(t){return t===In?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Le.XcmV3Junctions.X1(Le.XcmV3Junction.AccountKey20({key:t}))}}var Rn=require("@galacticcouncil/common"),ga=require("@galacticcouncil/xc-core");function G(t,e){return yi(e)>=4?(0,Rn.encodeLocation)(t):bi(t)}function yi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function bi(t){return{type:"Concrete",value:(0,Rn.encodeLocation)(t)}}var xi=1e3;function Ai(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 gi(t){if(t)return Ai(t)?xi:ga.multiloc.findParachain(t)}function wa(t,e,s,n){let o=e.getAssetXcmLocation(t),a=gi(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 Ws(t,e){let s="V4",n=G(O(e,t),s),o=qe;return[Z.XcmV4Instruction.ReserveAssetDeposited([{id:z,fun:Z.XcmV3MultiassetFungibility.Fungible(Y)},{id:n,fun:Z.XcmV3MultiassetFungibility.Fungible(Y)}]),Z.XcmV4Instruction.ClearOrigin(),Z.XcmV4Instruction.BuyExecution({fees:{id:z,fun:Z.XcmV3MultiassetFungibility.Fungible(Y)},weight_limit:Z.XcmV3WeightLimit.Unlimited()}),Z.XcmV4Instruction.DepositAsset({assets:Z.XcmV4AssetAssetFilter.Wild(Z.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:Z.XcmV3Junctions.X1(K(Ot))}}),Z.XcmV4Instruction.SetTopic(o)]}var Ye=require("@galacticcouncil/descriptors");function Dn(t,e){let s="V4",n=G(O(e,t),s),o=Ks("V4",K(Vo),K(Ot),n,qe);return[Ye.XcmV4Instruction.WithdrawAsset([{id:z,fun:Ye.XcmV3MultiassetFungibility.Fungible(Y)},{id:n,fun:Ye.XcmV3MultiassetFungibility.Fungible(Y)}]),Ye.XcmV4Instruction.ClearOrigin(),Ye.XcmV4Instruction.BuyExecution({fees:{id:z,fun:Ye.XcmV3MultiassetFungibility.Fungible(Y)},weight_limit:Ye.XcmV3WeightLimit.Unlimited()}),...o.value]}var X=require("@galacticcouncil/descriptors");function Ca(t,e){let s="V4",n=G(O(e,t),s),o=qe;return[X.XcmV4Instruction.WithdrawAsset([{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Y)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Y)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(K(Ot))}}),X.XcmV4Instruction.SetTopic(o)]}function Ln(t,e){let s="V4",n=G(O(e,t),s);return[X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Y)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(K(Ot))}})]}function ka(t,e,s){let n="V4",o=G(O(e,t),n),a=qe,r=Ln(t,s);return[X.XcmV4Instruction.WithdrawAsset([{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(Y)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(Y)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositReserveAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:X.XcmV3Junctions.X1(X.XcmV3Junction.Parachain(s.parachainId))},xcm:r}),X.XcmV4Instruction.SetTopic(a)]}var $=require("@galacticcouncil/descriptors");function Ea(t,e){let s="V5",n=G(O(e,t),s),o={parents:0,interior:$.XcmV5Junctions.X1($.XcmV5Junction.AccountId32({id:Ho,network:void 0}))};return[$.XcmV5Instruction.ReserveAssetDeposited([{id:z,fun:$.XcmV3MultiassetFungibility.Fungible(Y)}]),$.XcmV5Instruction.PayFees({asset:{id:z,fun:$.XcmV3MultiassetFungibility.Fungible(Y)}}),$.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:$.XcmV3MultiassetFungibility.Fungible(Y)}]),$.XcmV5Instruction.ClearOrigin(),$.XcmV5Instruction.DepositAsset({assets:$.XcmV5AssetFilter.Wild($.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),$.XcmV5Instruction.SetTopic(qe)]}var va=[Nt.ChainEcosystem.Polkadot,Nt.ChainEcosystem.Kusama],wi={parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(1e3))},Ci=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ta=(t,e)=>!t.ecosystem||!e.ecosystem?!1:va.includes(t.ecosystem)&&va.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Pa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},Ze=(t,e,s)=>{if(Ta(e,s))return{type:t,value:Hn(s.ecosystem,s.parachainId)};if(s.parachainId===Lo)return{type:t,value:{parents:1,interior:d.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?gt:s.parachainId;return{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(n))}}},ki=t=>t===Nt.ChainEcosystem.Kusama?d.XcmV3JunctionNetworkId.Kusama():d.XcmV3JunctionNetworkId.Polkadot(),Hn=(t,e)=>({parents:2,interior:d.XcmV3Junctions.X2([d.XcmV3Junction.GlobalConsensus(ki(t)),d.XcmV3Junction.Parachain(e)])}),Xa=(t,e,s,n)=>{if(Ta(e,s)){if(e.parachainId!==gt){let o=Nt.multiloc.findGlobalConsensus(O(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(gt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==gt)return{dest:{type:t,value:Hn(s.ecosystem,gt)},mode:"onward"}}},Ut=(t,e)=>({type:t,value:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),Vn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Ci(s)?wi:s}}:{type:e},Ct=(t,e)=>({id:t,fun:d.XcmV3MultiassetFungibility.Fungible(e)}),Sa=(t,e,s)=>({type:t,value:[d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),Ks=(t,e,s,n,o)=>{let a=o;return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(s)}})]),d.XcmV4Instruction.InitiateReserveWithdraw({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllOf({id:n,fun:d.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Gs.ethereumLocation(De),xcm:[d.XcmV4Instruction.BuyExecution({fees:{id:Ei(n),fun:d.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),d.XcmV4Instruction.SetTopic(a)]}),d.XcmV4Instruction.SetTopic(a)]}},Fa=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(s.parachainId))}:Hn(s.ecosystem,s.parachainId),c={parents:0,interior:d.XcmV3Junctions.X1(e)},i=d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),u=[d.XcmV4Instruction.BuyExecution({fees:{id:o,fun:d.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],f=n==="bridge-withdraw"?d.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:u}):d.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:u});return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:c})]),f]}},Ei=t=>{let e=Nt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:d.XcmV3Junctions.Here()}},_a=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.Transact({origin_kind:d.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),Ba=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(a)}}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]});var ae="PolkadotXcm",vi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",u=O(r,s),f=O(r,n.fee),p=G(u,i),y=G(f,i),A=Ct(p,e),C=Ct(y,n.fee.amount),S="limited_reserve_transfer_assets";return new ut.ExtrinsicConfig({module:ae,func:S,getTx:_=>{let R=_.getUnsafeApi().tx[ae][S];return s.key===n.fee.key?R({dest:Ze(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):ba(u,f)?R({dest:Ze(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[C,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):R({dest:Ze(i,r,c),beneficiary:Ut(i,a),assets:{type:i,value:[A,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Ti=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",u=G(O(r,s),i),f=Ct(u,e),p=Ze(i,r,c),y=Ut(i,a),A={type:i,value:[f]},C="limited_teleport_assets";return new ut.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:p,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Pi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",u=G(O(r,s),i),f=Ct(u,e),p=Ze(i,r,c),y=Ut(i,a),A={type:i,value:[f]},C="reserve_transfer_assets";return new ut.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:p,beneficiary:y,assets:A,fee_asset_item:0})})}}),Xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",u=G(O(r,s),i),f=Ct(u,e),p=Ze(i,r,c),y=Ut(i,a),A={type:i,value:[f]},C="transfer_assets";return new ut.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:p,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Si=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let u="V4",f=c.chain,p=o.chain,y=o.fee.amount,A=o.fee;i&&(p=i.chain,y=Es.big.toBigInt(i.fee.amount,i.fee.decimals),A=i.fee);let C=K(r),S=i||p.usesCexForwarding?xs(f,r,p):e,_=K(S),{transferType:R}=t,W=G(O(f,s),u),ee=G(O(f,A),u),ue=Ct(W,n),Me=Ct(ee,y),Je=s.isEqual(A),Oe=Xa(u,f,p,s),zt=Oe?.dest??Ze(u,f,p),Xt={type:u,value:Je?[ue]:[Me,ue]},oo=Vn(u,R,W),Br={type:u,value:Je?W:ee},Ir=Vn(u,R,ee),Bs;if(Pa(W)&&o.chain.isEvmChain())Bs=Ks(u,_,C,W,a);else if(Oe){let An=Es.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Rr=G(O(p,s),u);Bs=Fa(u,_,p,Oe.mode,Rr,An)}else Bs=Sa(u,_,Xt.value.length);let ao="transfer_assets_using_type_and_then";return new ut.ExtrinsicConfig({module:ae,func:ao,getTx:An=>An.getUnsafeApi().tx[ae][ao]({dest:zt,assets:Xt,assets_transfer_type:oo,remote_fees_id:Br,fees_transfer_type:Ir,custom_xcm_on_dest:Bs,weight_limit:{type:"Unlimited"}})})}}),Fi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,u=xs(c,n,i),f=K(u),{fee:p}=a,y=G(O(i,p),r),A=Es.big.toBigInt(e.fee,p.decimals);return new ut.ExtrinsicConfig({module:ae,func:t,getTx:C=>C.getUnsafeApi().tx[ae][t]({dest:Ze(r,c,i),message:_a(r,f,y,A,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,u="V4",f=c.chain,p=i.chain,y=xs(f,r,p),A=K(y),C=K(o),S=G(O(p,a),u),{fee:_}=i,R=Es.big.toBigInt(e.fee,_.decimals),W=n>_.amount?n-(_.amount+R):n;return new ut.ExtrinsicConfig({module:ae,func:t,getTx:ee=>ee.getUnsafeApi().tx[ae][t]({dest:Ze(u,f,p),message:Ba(u,A,S,W,R,C)})})}})}};function _i(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new ut.ExtrinsicConfig({module:ae,func:a,getTx:r=>r.getUnsafeApi().tx[ae][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Go)}}var Mn=()=>({limitedReserveTransferAssets:vi,limitedTeleportAssets:Ti,reserveTransferAssets:Pi,transferAssets:Xi,transferAssetsUsingTypeAndThen:Si,execute:_i,send:Fi});var Da=require("@galacticcouncil/xc-core"),La=require("@galacticcouncil/common");var vs=require("@galacticcouncil/descriptors"),Ia=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:vs.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:vs.XcmV3Junctions.X2([vs.XcmV3Junction.Parachain(e.parachainId),s])}};var Ra="XTokens",Bi=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",u=c.usesCexForwarding?xs(r,o,c):t,f=K(u),p=r.getAssetId(s),y=(0,La.encodeAssetId)(p),A="transfer";return new Da.ExtrinsicConfig({module:Ra,func:A,getTx:C=>C.getUnsafeApi().tx[Ra][A]({currency_id:y,amount:e,dest:Ia(i,c,f),dest_weight_limit:{type:"Unlimited"}})})}}),On=()=>({transfer:Bi});function l(){return{assetConversion:Zo,assets:ta,balances:oa,ethereumXcm:Fn,polkadotXcm:Mn,router:ia,utility:ua,xTokens:On}}function dt(t,e){return{prior:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?l().utility().batchAll([e,...s]).build(n):l().utility().batchAll([...s]).build(n)}}}}var Gt=require("@galacticcouncil/xc-core");var Ha=80000n,Va=120000n,Ma=100000n,Oa=2000000n,Nn=15000000000000n;var qn={};$t(qn,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Ga,AssethubClient:()=>ve,BaseClient:()=>He,HydrationClient:()=>re,getAllAssetDepositLimits:()=>Wn,getAssetDepositLimit:()=>Gn,getGlobalWithdrawLimit:()=>Kn});var Un=require("@galacticcouncil/common"),Ts=require("@galacticcouncil/descriptors"),He=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ts.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,Un.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ts.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,Un.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ts.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Fe=require("@galacticcouncil/descriptors"),Na=require("@galacticcouncil/common"),qs=require("@polkadot-api/substrate-bindings"),Ua=require("@polkadot-api/utils");var ve=class extends He{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,Na.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,Ua.toHex)((0,qs.Twox128)(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=qs.u128.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=Fe.XcmVersionedLocation.V5({parents:1,interior:Fe.XcmV5Junctions.X1(Fe.XcmV5Junction.Parachain(s))}),o=Fe.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Fe.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let u=i.id;return u&&u.parents&&u.parents===1&&u.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:Fe.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:Fe.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:Fe.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 Ka=require("@galacticcouncil/descriptors");var Ga=14400;function Wa(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,u=!1,f,p,y;s&&(s.type==="Locked"?(f=s.value,u=o<s.value):(p=s.value[0],y=s.value[1]));let A=n?.type==="Local"?"Local":"External",C=!u&&p!==void 0&&p+Ga<=o,S=null;if(r!==null)if(u)S=0n;else if(C)S=r;else{let _=y??a,R=a>_?a-_:0n;S=r>R?r-R:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:u,lockedUntilBlock:f,lastResetBlock:p,baselineIssuance:y,currentIssuance:a,headroom:S,category:A,periodExpired:C}}async function Gn(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 Wa(e,n,o,a,r,c)}async function Wn(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(p=>[p.keyArgs[0],p.value])),i=new Map(n.map(p=>[p.keyArgs[0],p.value])),u=new Map(r.map(p=>[p.keyArgs[0],p.value])),f=new Map;for(let p of e){let y=p.keyArgs[0],A=p.value;if(A?.xcm_rate_limit==null)continue;let C=y===0?a:u.get(y)??0n,S=Wa(y,A,c.get(y),i.get(y),o,C);f.set(y.toString(),S)}return f}async function Kn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:u,window:f}=e,p=c;if(!r&&f>0n){let A=o>i?o-i:0n;if(A>0n){let C=A>f?f:A,S=c*C/f;p=c>S?c-S:0n}}let y=r||p>=u?0n:u-p;return{configured:!0,limit:u,windowMs:f,used:p,lastUpdateMs:i,headroom:y,lockdown:r,lockdownUntilMs:a}}var re=class extends He{constructor(e){super(e,Ka.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 Gn(this.api(),s)}getAllAssetDepositLimits(){return Wn(this.api())}getGlobalWithdrawLimit(){return Kn(this.api())}};function Ii(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new re(n),a=new ve(t.hub),r=Ws(e,n),c=Ea(e,n),i=bs(De),u=250000000n,f=Uo(De,n.parachainId),[p,y,A,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,Ms),a.calculateDestinationFeeV5(f,x)]),S=Q(p,33n),_=Q(y,33n),R=Q(A,33n),ee=Q(C,33n)+_,ue=S,Me=await a.quoteEtherForDot(i,ee),Je=Q(Me,30n),Oe=Je<Nn*2n?Nn*2n:Je,zt=Q(await a.quoteEtherForDot(i,ue),100n),Xt=Q(await a.quoteDotToEther(i,u+R),30n);return{amount:Oe+Xt+zt,breakdown:{executionFee:Oe,relayerFee:Xt,remoteEtherFee:zt,hydrationDotFee:ue}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new ve(t.hub),i=bs(De),u=Dn(e,a),[f,p,y]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(u,Ms),c.calculateDestinationFee(u,s)]),A=await r.evmClient.getProvider().getGasPrice(),C=Oa+Va+Ha+Ma,S=A*C,_=Q(S,10n),R=f+Q(p,33n)+Q(y,33n),W=Q(await c.quoteDotForExactEther(i,_),20n),ee=new re(a),ue=Xn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:qe}),Me=Q(await ee.calculateDestinationFeeV5(ue,x),33n);return{amount:R+W+Me,breakdown:{dotRemoteFee:R,dotToEtherSwapAmount:W,etherFeeAmount:_,sourceExecutionFee:Me}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=Gt.Snowbridge.fromChain(o),c=new He(a),i=new ve(t.hub),u=Ws(e,a),[f,p]=await Promise.all([c.calculateDestinationFee(u,x),i.calculateDeliveryFee(u,a.parachainId)]),y=p+Q(f,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Gt.Abi.Snowbridge,address:r.getGateway(),args:[A,a.parachainId,y],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:y}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new ve(t.hub),r=Dn(e,o),c=Ws(e,o),[i,u,f,p,y]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,Ms),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+u+Q(f,25n)+p+Q(y,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:u,assetHubDestinationFee:f,returnToSenderDeliveryFee:p,returnToSenderDestinationFee:y}}}})}}function Ri(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(wa(e,o,a,r),r){let y=new He(a),A=new He(r),C=Ln(e,a),S=ka(e,r,a),[_,R]=await Promise.all([y.calculateDestinationFee(C,e),A.calculateDestinationFee(S,e)]),W=R+_,ee=Q(W,20n),ue=ee-W;return{amount:ee,breakdown:{reserveFee:R,destinationFee:_,margin:ue}}}let c=new He(a),i=Ca(e,a),u=await c.calculateDestinationFee(i,e),f=Q(u,20n),p=f-u;return{amount:f,breakdown:{totalFee:u,margin:p}}}})}}function Di(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=Gt.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Gt.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:Di,XcmPaymentApi:Ri,Snowbridge:Ii}}var Li="0";function Hi(){return{build:async({address:t,chain:e})=>{let n=await new re(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Li,a=e.findAssetById(o);return a?a.asset:j}}}var Vi=()=>({accountCurrencyMap:Hi});function Ps(){return{multiTransactionPayment:Vi}}var zn={};$t(zn,{Tag:()=>As});var As=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(As||{});function ja(t,e){return new qa.AssetRoute({source:{asset:t,fee:{asset:B},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:se().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Mi=[ja(Jt,St)],$a=new za.ChainRoutes({chain:Rs,routes:[...Mi]});var Xs=require("@galacticcouncil/xc-core");var $n=require("@galacticcouncil/xc-core");function ie(t,e){return new $n.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:B}},contract:se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ce(t,e){return new $n.AssetRoute({source:{asset:t,fee:{asset:B}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:B}},contract:se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Oi=[new Xs.AssetRoute({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:B}},contract:se().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ie(de,de),ie(le,le),ie(pe,pe),ie(fe,fe),ie(xe,xe),ie(ge,ge),ie(we,we),ie(ye,ye),ie(he,he),ie(be,be),ie(Ae,Ae),ie(Ce,Ce),ie(ke,ke),ie(w,at),ie(b,nt)],Ni=[new Xs.AssetRoute({source:{asset:B,fee:{asset:B}},destination:{chain:h,asset:B,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:B}},contract:se().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ce(de,de),ce(le,le),ce(pe,pe),ce(fe,fe),ce(xe,xe),ce(ge,ge),ce(we,we),ce(ye,ye),ce(he,he),ce(be,be),ce(Ae,Ae),ce(Ce,Ce),ce(ke,ke),ce(w,at),ce(b,nt)],Ja=new Xs.ChainRoutes({chain:P,routes:[...Oi,...Ni]});var Qa=[$a,Ja];var kt=require("@galacticcouncil/xc-core");var js=require("@galacticcouncil/xc-core");var Wt=0,Ui=t=>{let{source:e}=t;return!!e.feeSwap},Gi=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Ya=l().assetConversion().swapTokensForExactTokens({slippage:30});function Wi(t,e,s){return new js.AssetRoute({source:{asset:t,fee:{asset:x,extra:Wt}},destination:{chain:e,asset:t,fee:{amount:s,asset:b}},extrinsic:dt(Gi,Ya).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function zs(t,e,s){return new js.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:dt(Ui,Ya).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Kt(t,e,s){return new js.AssetRoute({source:{asset:t,fee:{asset:x,extra:Wt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function $s(t){return Wi(t,h,.02)}var Ki=[new kt.AssetRoute({source:{asset:x,fee:{asset:x,extra:Wt}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new kt.AssetRoute({source:{asset:v,fee:{asset:x,extra:Wt}},destination:{chain:h,asset:v,fee:{amount:1e-4,asset:v}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Kt(b,h,.02),Kt(w,h,.02),$s(ct)],qi=[new kt.AssetRoute({source:{asset:v,fee:{asset:x,extra:Wt}},destination:{chain:We,asset:v,fee:{amount:.001,asset:v}},extrinsic:l().polkadotXcm().transferAssets()})],ji=[Kt(b,U,.25),Kt(w,U,.25)],zi=[Kt(b,L,.03),Kt(w,L,.03)],$i=[new kt.AssetRoute({source:{asset:M,fee:{asset:x,extra:Wt}},destination:{chain:bt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],Za=new kt.ChainRoutes({chain:pt,routes:[zs(b,h,.02),zs(w,h,.02),zs(x,h,.001)]}),er=new kt.ChainRoutes({chain:k,routes:[...Ki,...qi,...ji,...zi,...$i]});var Ve=require("@galacticcouncil/xc-core");var Ji=[new Ve.AssetRoute({source:{asset:D},destination:{chain:h,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:l().polkadotXcm().reserveTransferAssets()}),new Ve.AssetRoute({source:{asset:F,fee:{asset:D}},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:F}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:T,fee:{asset:D}},destination:{chain:h,asset:T,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:T}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:I,fee:{asset:D}},destination:{chain:h,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:H,fee:{asset:D}},destination:{chain:h,asset:H,fee:{amount:.01,asset:H}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:V,fee:{asset:D}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:V}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:J,fee:{asset:D}},destination:{chain:h,asset:J,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:J}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:b,fee:{asset:D}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Ve.AssetRoute({source:{asset:w,fee:{asset:D}},destination:{chain:h,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:w}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],tr=new Ve.ChainRoutes({chain:te,routes:[...Ji]});var Te=require("@galacticcouncil/xc-core");var Qi=[new Te.AssetRoute({source:{asset:F},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:V,fee:{asset:F}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:J,fee:{asset:F}},destination:{chain:h,asset:J,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:x,fee:{asset:F}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Te.AssetRoute({source:{asset:D,fee:{asset:F}},destination:{chain:h,asset:D,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:te}),asset:D}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:T,fee:{asset:F}},destination:{chain:h,asset:T,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:T}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:I,fee:{asset:F}},destination:{chain:h,asset:I,fee:{amount:625e-8,asset:I}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:b,fee:{asset:F}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:w,fee:{asset:F}},destination:{chain:h,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:w}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Yi=[new Te.AssetRoute({source:{asset:b,fee:{asset:F}},destination:{chain:k,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:w,fee:{asset:F}},destination:{chain:k,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],sr=new Te.ChainRoutes({chain:L,routes:[...Qi,...Yi]});var _e=require("@galacticcouncil/xc-core");var q=()=>({asset:Ps().multiTransactionPayment().accountCurrencyMap()});var lt=require("@galacticcouncil/xc-core");var Zi=1,ec=.02,Js=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Qs=l().router().buy({slippage:30});function N(t,e,s){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function gs(t,e,s){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})}function Et(t,e){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function Ys(t){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:k,asset:t,fee:{amount:ec,asset:b}},extrinsic:dt(Js,Qs).prior(l().polkadotXcm().limitedReserveTransferAssets())})}function Jn(t,e,s){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:We,asset:t,fee:{amount:e,asset:t}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function tc(t,e,s="LocalReserve"){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:e,asset:t,fee:{amount:Zi,asset:T}},extrinsic:dt(Js,Qs).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function vt(t){return tc(t,U,"DestinationReserve")}function ne(t,e,s){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:dt(Js,Qs).prior(l().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function oe(t,e,s){return new lt.AssetRoute({source:{asset:t,fee:q()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:dt(Js,Qs).prior(l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var sc=[Et(x,k),Et(v,k),Et(b,k),Et(w,k),Ys(ct)],nc=[Jn(v,.05,.005),Jn(x,.2,.02)],oc=[N(D,te),N(F,te,L),N(T,te,U),new _e.AssetRoute({source:{asset:I,fee:q()},destination:{chain:te,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new _e.AssetRoute({source:{asset:H,fee:q()},destination:{chain:te,asset:H,fee:{amount:.01,asset:H}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),N(V,te,L),N(J,te,L),N(b,te,k),N(w,te,k)],ac=[N(F,L),N(V,L),N(J,L),N(D,L,te),N(T,L,U),new _e.AssetRoute({source:{asset:I,fee:q()},destination:{chain:L,asset:I,fee:{amount:5e-6,asset:I}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),N(b,L,k),N(w,L,k),new _e.AssetRoute({source:{asset:x,fee:q()},destination:{chain:L,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],rc=[gs(I,Re,62e-8),gs(H,Re,.0019213457),gs(j,Re,.5),gs(b,Re,.3),gs(w,Re,.3),new _e.AssetRoute({source:{asset:V,fee:q()},destination:{chain:Re,asset:V,fee:{amount:.01,asset:x}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()}),new _e.AssetRoute({source:{asset:x,fee:q()},destination:{chain:Re,asset:x,fee:{amount:.05,asset:x}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],ic=[N(j,U),N(T,U),N(b,U,k),N(w,U,k),vt(et),vt(tt),vt(ot),vt(st),vt(it),vt(rt),vt(Be)],cc=[new _e.AssetRoute({source:{asset:M,fee:q()},destination:{chain:bt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],mc=[N(Ge,us)],uc=[new _e.AssetRoute({source:{asset:Pe,fee:q()},destination:{chain:ns,asset:Pe,fee:{amount:.04,asset:Pe}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],dc=[new _e.AssetRoute({source:{asset:Ee,fee:q()},destination:{chain:ds,asset:Ee,fee:{amount:.02,asset:Ee}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],lc=[new _e.AssetRoute({source:{asset:Xe,fee:q()},destination:{chain:is,asset:Xe,fee:{amount:1.1,asset:Xe}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],pc=[N(Ue,rs)],fc=[N(Ne,ss)],hc=[ne(B,B,P),ne(de,de,P),ne(le,le,P),ne(pe,pe,P),ne(fe,fe,P),ne(xe,xe,P),ne(ge,ge,P),ne(we,we,P),ne(Ce,Ce,P),ne(ye,ye,P),ne(he,he,P),ne(be,be,P),ne(Ae,Ae,P),ne(ke,ke,P),ne(at,w,P),ne(nt,b,P)],yc=[oe(B,B,P),oe(de,de,P),oe(le,le,P),oe(pe,pe,P),oe(fe,fe,P),oe(xe,xe,P),oe(ge,ge,P),oe(we,we,P),oe(Ce,Ce,P),oe(ye,ye,P),oe(he,he,P),oe(be,be,P),oe(Ae,Ae,P),oe(ke,ke,P),oe(at,w,P),oe(nt,b,P)],bc=[Et(x,pt),Et(b,pt),Et(w,pt)],nr=new _e.ChainRoutes({chain:h,routes:[...fc,...sc,...oc,...ac,...bc,...uc,...hc,...yc,...rc,...dc,...nc,...ic,...cc,...pc,...lc,...mc]});var qt=require("@galacticcouncil/xc-core");function Zs(t,e){return new qt.AssetRoute({source:{asset:t,fee:{asset:H}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:l().xTokens().transfer()})}var xc=[new qt.AssetRoute({source:{asset:H},destination:{chain:h,asset:H,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:l().xTokens().transfer()}),new qt.AssetRoute({source:{asset:I,fee:{asset:H}},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:l().xTokens().transfer()}),new qt.AssetRoute({source:{asset:j,fee:{asset:H}},destination:{chain:h,asset:j,fee:{amount:.5,asset:j}},extrinsic:l().xTokens().transfer()}),Zs(V,L),Zs(b,k),Zs(w,k),Zs(x,k)],or=new qt.ChainRoutes({chain:Re,routes:[...xc]});var ws=require("@galacticcouncil/xc-core");var Qn=require("@galacticcouncil/xc-core");function Ac(t,e,s){return new Qn.AssetRoute({source:{asset:t,fee:{asset:T}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:se().PolkadotXcm().transferAssetsToPara32()})}function gc(t,e,s){return new Qn.AssetRoute({source:{asset:t,fee:{asset:T}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:se().PolkadotXcm().transferAssetsToPara32()})}function Tt(t,e){return Ac(t,h,e)}function en(t,e){return gc(t,h,e)}var wc=[new ws.AssetRoute({source:{asset:T},destination:{chain:h,asset:T,fee:{amount:.05,asset:T}},contract:se().PolkadotXcm().transferAssetsToPara32()}),en(j,.6),en(b,.3),en(w,.3),Tt(et,.004),Tt(tt,.004),Tt(ot,.004),Tt(st,.004),Tt(it,1e-7),Tt(rt,2e-6),Tt(Be,2e-5)],Cc=[new ws.AssetRoute({source:{asset:b,fee:{asset:T}},destination:{chain:k,asset:b,fee:{amount:.18,asset:b}},contract:se().PolkadotXcm().transferAssetsToPara32()}),new ws.AssetRoute({source:{asset:w,fee:{asset:T}},destination:{chain:k,asset:w,fee:{amount:.18,asset:w}},contract:se().PolkadotXcm().transferAssetsToPara32()})],ar=new ws.ChainRoutes({chain:U,routes:[...wc,...Cc]});var Ss=require("@galacticcouncil/xc-core");var kc=[new Ss.AssetRoute({source:{asset:M},destination:{chain:h,asset:M,fee:{amount:.01,asset:M}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Ec=[new Ss.AssetRoute({source:{asset:M},destination:{chain:k,asset:M,fee:{amount:.1,asset:M}},extrinsic:l().polkadotXcm().limitedTeleportAssets()})],rr=new Ss.ChainRoutes({chain:bt,routes:[...kc,...Ec]});var tn=require("@galacticcouncil/xc-core");var vc=[new tn.AssetRoute({source:{asset:Ge},destination:{chain:h,asset:Ge,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],ir=new tn.ChainRoutes({chain:us,routes:[...vc]});var sn=require("@galacticcouncil/xc-core");var Tc=[new sn.AssetRoute({source:{asset:Pe},destination:{chain:h,asset:Pe,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Pe}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],cr=new sn.ChainRoutes({chain:ns,routes:[...Tc]});var nn=require("@galacticcouncil/xc-core");var Pc=[new nn.AssetRoute({source:{asset:Xe},destination:{chain:h,asset:Xe,fee:{amount:.2,asset:Xe}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],mr=new nn.ChainRoutes({chain:is,routes:[...Pc]});var on=require("@galacticcouncil/xc-core");var Xc=[new on.AssetRoute({source:{asset:Ne},destination:{chain:h,asset:Ne,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],ur=new on.ChainRoutes({chain:ss,routes:[...Xc]});var an=require("@galacticcouncil/xc-core");var Sc=[new an.AssetRoute({source:{asset:Ee,fee:{asset:Ee,extra:.030555}},destination:{chain:h,asset:Ee,fee:{amount:.03,asset:Ee}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],dr=new an.ChainRoutes({chain:ds,routes:[...Sc]});var rn=require("@galacticcouncil/xc-core");var Fc=[new rn.AssetRoute({source:{asset:Ue},destination:{chain:h,asset:Ue,fee:{amount:.205,asset:Ue}},extrinsic:l().polkadotXcm().reserveTransferAssets()})],lr=new rn.ChainRoutes({chain:rs,routes:[...Fc]});var pr=[ur,er,Za,tr,sr,nr,or,ar,rr,lr,ir,cr,mr,dr];var fr=require("@galacticcouncil/xc-core");var _c=[],hr=new fr.ChainRoutes({chain:Ls,routes:[..._c]});var yr=[hr];var br=require("@galacticcouncil/xc-core");var Bc=[],xr=new br.ChainRoutes({chain:Hs,routes:[...Bc]});var Ar=[xr];var jt=require("@galacticcouncil/xc-core");var Ic=require("@galacticcouncil/xc-core");var Fs=.0015;var Rc=new jt.AssetRoute({source:{asset:v,fee:{asset:v,extra:Fs}},destination:{chain:k,asset:v,fee:{amount:.002,asset:v}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Dc=new jt.AssetRoute({source:{asset:v,fee:{asset:v,extra:Fs}},destination:{chain:fs,asset:v,fee:{amount:.0012,asset:v}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Lc=[new jt.AssetRoute({source:{asset:v,fee:{asset:v,extra:Fs}},destination:{chain:h,asset:v,fee:{amount:.04,asset:v}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new jt.AssetRoute({source:{asset:x,fee:{asset:v,extra:Fs}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],gr=new jt.ChainRoutes({chain:We,routes:[Dc,Rc,...Lc]});var _s=require("@galacticcouncil/xc-core");var Yn=()=>({asset:Ps().multiTransactionPayment().accountCurrencyMap()});var Hc=[new _s.AssetRoute({source:{asset:b,fee:Yn()},destination:{chain:We,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:l().polkadotXcm().limitedReserveTransferAssets()})],Vc=[new _s.AssetRoute({source:{asset:v,fee:Yn()},destination:{chain:We,asset:v,fee:{amount:.0012,asset:v}},extrinsic:l().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],wr=new _s.ChainRoutes({chain:fs,routes:[...Hc,...Vc]});var Cr=[gr,wr];var Mc=[...Qa,...pr,...yr,...Ar,...Cr],kr=new Map(Mc.map(t=>[t.chain.key,t]));var Zn=require("@galacticcouncil/xc-core");var Pt=require("@galacticcouncil/xc-core"),cn=class extends Pt.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Pt.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},mn=class extends Pt.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 Pt.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Pt.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var Cs=require("@galacticcouncil/xc-core");var un=class extends Cs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new ve(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new ve(a).getSystemAccountBalance(n)===0n)throw new Cs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},dn=class extends Cs.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new ve(a).checkIfFrozen(n,s))throw new Cs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var $e=require("@galacticcouncil/xc-core");var Oc=12,Nc=1,Uc=18,ln=class extends $e.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new re(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new re(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),u=i.min||Nc,f=i.decimals||Oc,p=u*Math.pow(10,f),y=await r.getAssetBalance(n,c);if(BigInt(p*1.1)>y)throw new $e.TransferValidationError("Insufficient_Ed",{amount:p,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},pn=class extends $e.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new re(a).getAssetDepositLimit(n);if(c.locked)throw new $e.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 $e.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},fn=class extends $e.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new re(n).getGlobalWithdrawLimit();if(a.lockdown)throw new $e.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},hn=class extends $e.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 re(a),c=a.getBalanceAssetId(T),i=a.getAssetDecimals(T)||Uc,u=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(u))throw new $e.TransferValidationError("Insufficient_Ed",{amount:1,asset:T.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var me={isAny:()=>!0,isHydration:t=>t instanceof Zn.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Zn.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Er=[new cn(me.isAny,me.isAny),new mn(me.isAny,me.isAny),new un(me.isAny,me.isHub),new dn(me.isHub,me.isAny),new ln(me.isAny,me.isHydration),new hn(me.isHydration,me.isAny),new pn(me.isAny,me.isHydration),new fn(me.isHydration,me.isAny)];var no={};$t(no,{AssethubDex:()=>so,HydrationDex:()=>eo});var ks=require("@galacticcouncil/sdk-next"),Tr=require("@galacticcouncil/common"),Pr=require("polkadot-api");var vr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:yn}=ks.pool,{TradeRouteBuilder:Gc,TradeRouter:Wc}=ks.sor,{TxBuilderFactory:Kc}=ks.tx,eo=class{chain;client;poolCtx;txBuilder;getCtx=vr(async e=>{console.log("init swap router",e,"\u2705");let s=new Wc(this.poolCtx);return s.withFilter({useOnly:[yn.Aave,yn.Omni,yn.Stable,yn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new re(this.chain),this.txBuilder=new Kc(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,u=await this.getCtx(1),f=await u.getMostLiquidRoute(r,c),p=await u.getBuy(r,c,i,f),C=await(await this.txBuilder.trade(p).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Pr.Binary.toHex(C)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let u=await i.getMostLiquidRoute(a,r),f=await i.getBuy(a,r,c,u);return{amount:f.amountIn,route:Gc.build(f.swaps)}}catch(u){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw u}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,Tr.RUNTIME_DECIMALS);return a/BigInt(r)}};var to=require("@galacticcouncil/common"),so=class{chain;client;constructor(e){this.chain=e,this.client=new ve(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,to.encodeLocation)(o),(0,to.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var _r=require("@galacticcouncil/xc-core");var Xr=require("@galacticcouncil/xc-core");function bn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Xr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function Sr(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 Fr(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 _r.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=Sr(a),i=Fr(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,$s(r)),this.updateChainRoute(s,Ys(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
1
+ "use strict";var wn=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var Vr=Object.getOwnPropertyNames;var Mr=Object.prototype.hasOwnProperty;var Jt=(t,e)=>{for(var s in e)wn(t,s,{get:e[s],enumerable:!0})},Or=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Vr(e))!Mr.call(t,o)&&o!==s&&wn(t,o,{get:()=>e[o],enumerable:!(n=Hr(e,o))||n.enumerable});return t};var Nr=t=>Or(wn({},"__esModule",{value:!0}),t);var Jc={};Jt(Jc,{HydrationConfigService:()=>An,assetsMap:()=>ro,builders:()=>zn,chainsMap:()=>Co,clients:()=>jn,dex:()=>no,routesMap:()=>vr,tags:()=>$n,validations:()=>Tr});module.exports=Nr(Jc);var g=require("@galacticcouncil/xc-core"),de=new g.Asset({key:"aave",originSymbol:"AAVE"}),Ge=new g.Asset({key:"ajun",originSymbol:"AJUN"}),le=new g.Asset({key:"apyusd",originSymbol:"apyUSD"}),R=new g.Asset({key:"astr",originSymbol:"ASTR"}),F=new g.Asset({key:"bnc",originSymbol:"BNC"}),Cn=new g.Asset({key:"bsx",originSymbol:"BSX"}),pe=new g.Asset({key:"cfg_new",originSymbol:"CFG"}),Pe=new g.Asset({key:"cru",originSymbol:"CRU"}),st=new g.Asset({key:"dai",originSymbol:"DAI"}),Xe=new g.Asset({...st,key:"dai_mwh"}),x=new g.Asset({key:"dot",originSymbol:"DOT"}),_=new g.Asset({key:"eth",originSymbol:"ETH"}),fe=new g.Asset({key:"ena",originSymbol:"ENA"}),Qt=new g.Asset({key:"eurc",originSymbol:"EURC"}),Ft=new g.Asset({...Qt,key:"eurc_mwh"}),P=new g.Asset({key:"glmr",originSymbol:"GLMR"}),j=new g.Asset({key:"hdx",originSymbol:"HDX"}),I=new g.Asset({key:"ibtc",originSymbol:"IBTC"}),H=new g.Asset({key:"intr",originSymbol:"INTR"}),_t=new g.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),v=new g.Asset({key:"ksm",originSymbol:"KSM"}),he=new g.Asset({key:"ldo",originSymbol:"LDO"}),ye=new g.Asset({key:"lbtc",originSymbol:"LBTC"}),Ee=new g.Asset({key:"ewt",originSymbol:"EWT"}),be=new g.Asset({key:"link",originSymbol:"LINK"}),M=new g.Asset({key:"myth",originSymbol:"MYTH"}),We=new g.Asset({key:"neuro",originSymbol:"NEURO"}),Se=new g.Asset({key:"pen",originSymbol:"PEN"}),xe=new g.Asset({key:"paxg",originSymbol:"PAXG"}),Bt=new g.Asset({key:"prime",originSymbol:"PRIME"}),Ae=new g.Asset({key:"sky",originSymbol:"SKY"}),De=new g.Asset({key:"sol",originSymbol:"SOL"}),It=new g.Asset({key:"sui",originSymbol:"SUI"}),ge=new g.Asset({key:"susde",originSymbol:"sUSDe"}),Yt=new g.Asset({key:"susds",originSymbol:"sUSDS"}),nt=new g.Asset({...Yt,key:"susds_mwh"}),we=new g.Asset({key:"tbtc",originSymbol:"tBTC"}),Ce=new g.Asset({key:"trac",originSymbol:"TRAC"}),Ke=new g.Asset({key:"unq",originSymbol:"UNQ"}),b=new g.Asset({key:"usdt",originSymbol:"USDT"}),ot=new g.Asset({...b,key:"usdt_mwh"}),at=new g.Asset({...b,key:"usdt_eth"}),w=new g.Asset({key:"usdc",originSymbol:"USDC"}),rt=new g.Asset({...w,key:"usdc_mwh"}),it=new g.Asset({...w,key:"usdc_eth"}),Q=new g.Asset({key:"vastr",originSymbol:"vASTR"}),V=new g.Asset({key:"vdot",originSymbol:"vDOT"}),Zt=new g.Asset({key:"weth",originSymbol:"WETH"}),ct=new g.Asset({...Zt,key:"weth_mwh"}),es=new g.Asset({key:"wbtc",originSymbol:"WBTC"}),mt=new g.Asset({...es,key:"wbtc_mwh"}),ke=new g.Asset({key:"wsteth",originSymbol:"wstETH"}),ut=new g.Asset({key:"wud",originSymbol:"WUD"}),Ur=[de,Ge,le,R,Cn,pe,Pe,F,st,Xe,x,fe,Qt,Ft,_,P,j,I,H,v,he,ye,Ee,_t,be,M,We,xe,Se,Bt,Ae,De,It,ge,Yt,nt,Ce,we,Ke,w,rt,it,b,ot,at,Q,V,es,mt,Zt,ct,ke,ut],ro=new Map(Ur.map(t=>[t.key,t]));var ts=require("@galacticcouncil/xc-core");var io=require("viem/chains"),Ds=new ts.EvmChain({id:8453,key:"base",name:"Base",assetsData:[{asset:_,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Qt,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:w,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:ts.EvmBalanceType.Erc20,ecosystem:ts.ChainEcosystem.Ethereum,evmChain:io.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:{}}});var Dt=require("@galacticcouncil/xc-core");var co=require("viem/chains"),T=new Dt.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:_,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:de,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:le,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Zt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:st,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:fe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:ge,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Yt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:we,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:es,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ye,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:w,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:b,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:he,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:be,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:xe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ae,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ce,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ke,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Dt.EvmBalanceType.Erc20,balanceOverrides:{[_.key]:Dt.EvmBalanceType.Native},ecosystem:Dt.ChainEcosystem.Ethereum,evmChain:co.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:{[st.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}}}}});var mo=[Ds,T];var ss=require("@galacticcouncil/xc-core");var ns=new ss.Parachain({assetsData:[{asset:Ge,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:ss.SubstrateBalanceType.System,ecosystem:ss.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Re=require("@galacticcouncil/xc-core");var uo={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:ut,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:M,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:v,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:Re.SubstrateBalanceType.Assets,balanceOverrides:{[x.key]:Re.SubstrateBalanceType.System,[v.key]:Re.SubstrateBalanceType.ForeignAssets,[M.key]:Re.SubstrateBalanceType.ForeignAssets},min:Re.SubstrateMinType.Assets,ecosystem:Re.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 Re.Parachain({...uo,key:"assethub",name:"AssetHub Polkadot"}),ft=new Re.Parachain({...uo,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});var Rt=require("@galacticcouncil/xc-core");var se=new Rt.Parachain({assetsData:[{asset:R,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:F,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:P,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Rt.SubstrateBalanceType.Assets,balanceOverrides:{[R.key]:Rt.SubstrateBalanceType.System},ecosystem:Rt.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var Lt=require("@galacticcouncil/xc-core");var Gr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],L=new Lt.Parachain({assetsData:[{asset:F,id:{Native:F.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:b,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:R,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:P,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Lt.SubstrateBalanceType.Tokens,balanceOverrides:{[F.key]:Lt.SubstrateBalanceType.System},ecosystem:Lt.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Gr});var ht=require("@galacticcouncil/xc-core");var os=new ht.Parachain({assetsData:[{asset:Pe,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ht.SubstrateBalanceType.System,ecosystem:ht.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:ht.XcmVersion.v3});var Ht=require("@galacticcouncil/xc-core"),ho=require("viem");var po=require("@galacticcouncil/common"),fo=require("polkadot-api"),{isEvmAccount:Wr,H160:lo}=po.h160,Rs=class{async toH160(e,s){if(Wr(e))return lo.fromAccount(e);let n=lo.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(r.subarray(20))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Kr=new Rs,kn=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],En=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],qr=(0,ho.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:kn,webSocket:En},default:{http:kn,webSocket:En}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new Ht.EvmParachain({assetsData:[{asset:j,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:de,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Ge,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:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:pe,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Pe,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:x,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Xe,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:_,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:le,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:fe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:P,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:I,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_t,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Bt,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ee,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:he,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:v,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:ye,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:be,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:xe,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:M,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:We,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Se,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Ae,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:De,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:It,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:ge,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Yt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:nt,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:we,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ce,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ke,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:w,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:rt,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Ft,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:it,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:b,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:ot,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:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:V,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:es,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:mt,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Zt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ct,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:ke,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:ut,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Ht.SubstrateBalanceType.Tokens,balanceOverrides:{[j.key]:Ht.SubstrateBalanceType.System},ecosystem:Ht.ChainEcosystem.Polkadot,evmChain:qr,evmResolver:Kr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Xe.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}}}},ws:En,rpcs:kn});var yt=require("@galacticcouncil/xc-core");var Le=new yt.Parachain({assetsData:[{asset:H,decimals:10,id:{Token:H.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:I,decimals:8,id:{Token:I.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:x,decimals:10,id:{Token:x.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:w,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:V,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:yt.SubstrateBalanceType.Tokens,ecosystem:yt.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:yt.XcmVersion.v3});var bt=require("@galacticcouncil/xc-core"),yo=require("viem");var jr=(0,yo.defineChain)({id:1284,name:"Moonbeam",network:"moonbeam",nativeCurrency:{decimals:18,name:"GLMR",symbol:"GLMR"},rpcUrls:{public:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]},default:{http:["https://rpc.api.moonbeam.network"],webSocket:["wss://wss.api.moonbeam.network"]}},blockExplorers:{default:{name:"Moonscan",url:"https://moonscan.io"},etherscan:{name:"Moonscan",url:"https://moonscan.io"}},testnet:!1}),U=new bt.EvmParachain({assetsData:[{asset:P,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Xe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:Ft,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:De,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:_t,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Bt,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:nt,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:It,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:rt,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:ot,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:mt,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:ct,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:x,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:j,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:w,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:b,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:bt.EvmBalanceType.Erc20,balanceOverrides:{[P.key]:bt.SubstrateBalanceType.System},ecosystem:bt.ChainEcosystem.Polkadot,evmChain:jr,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,ws:"wss://wss.api.moonbeam.network"});var as=require("@galacticcouncil/xc-core");var xt=new as.Parachain({assetsData:[{asset:M,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:as.SubstrateBalanceType.System,ecosystem:as.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 rs=require("@galacticcouncil/xc-core");var is=new rs.Parachain({assetsData:[{asset:We,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:rs.SubstrateBalanceType.System,ecosystem:rs.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 At=require("@galacticcouncil/xc-core");var cs=new At.Parachain({assetsData:[{asset:Se,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:At.SubstrateBalanceType.System,ecosystem:At.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:At.XcmVersion.v3});var ms=require("@galacticcouncil/xc-core");var zr={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:ms.SubstrateBalanceType.System,ecosystem:ms.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"},bo=new ms.Parachain({...zr,key:"polkadot"});var us=require("@galacticcouncil/xc-core");var ds=new us.Parachain({assetsData:[{asset:Ke,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:us.SubstrateBalanceType.System,ecosystem:us.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var gt=require("@galacticcouncil/xc-core");var ls=new gt.Parachain({assetsData:[{asset:Ee,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:gt.SubstrateBalanceType.System,ecosystem:gt.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:gt.XcmVersion.v3});var xo=[ns,k,ft,se,L,os,h,is,Le,U,xt,cs,bo,ds,ls];var Vt=require("@galacticcouncil/xc-core");var Ls=new Vt.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:De,decimals:9},{asset:_t,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Bt,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Vt.SolanaBalanceType.Token,balanceOverrides:{[De.key]:Vt.SolanaBalanceType.Native},ecosystem:Vt.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:{},platformAddressFormat:"base58"}});var Ao=[Ls];var ps=require("@galacticcouncil/xc-core");var Hs=new ps.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:It,decimals:9}],balance:ps.SuiBalanceType.Native,ecosystem:ps.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var go=[Hs];var dt=require("@galacticcouncil/xc-core");var qe=new dt.Parachain({assetsData:[{asset:v,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:x,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:b,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:dt.SubstrateBalanceType.Assets,balanceOverrides:{[v.key]:dt.SubstrateBalanceType.System},min:dt.SubstrateMinType.Assets,ecosystem:dt.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 fs=require("@galacticcouncil/xc-core");var hs=new fs.Parachain({assetsData:[{asset:Cn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:v,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:b,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:fs.SubstrateBalanceType.Tokens,ecosystem:fs.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 wo=[qe,hs];var $r=[...mo,...xo,...Ao,...go,...wo],Co=new Map($r.map(t=>[t.key,t]));var za=require("@galacticcouncil/xc-core");var qa=require("@galacticcouncil/xc-core");var zn={};Jt(zn,{ContractBuilder:()=>$,ExtrinsicBuilder:()=>p,ExtrinsicDecorator:()=>pt,FeeAmountBuilder:()=>E,FeeAssetBuilder:()=>Xs,XcmTransferType:()=>_e,XcmVersion:()=>Ye});var Mt=require("@galacticcouncil/xc-core"),ko=require("viem"),Jr=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,ko.encodeFunctionData)({abi:Mt.Abi[r.module],functionName:r.func,args:r.args}));return new Mt.ContractConfig({abi:Mt.Abi.Batch,address:Mt.Precompile.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Eo=()=>({batchAll:Jr});var ys=require("@galacticcouncil/xc-core");function Y(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Ot(t){return typeof t=="object"?Object.values(t)[0]:t}function vo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=ys.Wormhole.fromChain(r),i=r.getAssetId(n);return new ys.ContractConfig({abi:ys.Abi.Erc20,address:Ot(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}var bs=require("@galacticcouncil/xc-core");var To=require("@galacticcouncil/common"),Po=require("polkadot-api"),Xo=require("@polkadot-api/utils"),{H160:Qr,isEvmAddress:Yr}=To.h160;function Zr(t){let e=Yr(t)?Qr.toAccount(t):t;return(0,Xo.toHex)((0,Po.AccountId)().enc(e))}var ei=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=bs.Basejump.fromChain(a),c=a.getAssetId(n);return new bs.ContractConfig({abi:bs.Abi.Basejump,address:r.getAddress(),args:[Ot(c),s,Zr(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),So=()=>({bridgeViaWormhole:ei});var je=require("@galacticcouncil/xc-core"),_o=require("@galacticcouncil/common"),{Ss58Addr:Fo}=je.addr;function ti(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 vn(t,e){let s=t.getAssetId(e);return typeof s=="string"?ti(s):s}function Bo(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=vn(o.chain,s);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Fo.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=vn(o.chain,s),r=vn(o.chain,o.destinationFeeBalance),c=_o.big.toBigInt(n.fee.amount,n.fee.decimals);return new je.ContractConfig({abi:je.Abi.PolkadotXcm,address:je.Precompile.PolkadotXcm,args:[n.chain.parachainId,Fo.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}var $e=require("@galacticcouncil/xc-core"),Ct=require("@galacticcouncil/descriptors"),Wo=require("@polkadot-api/substrate-bindings"),Os=require("@polkadot-api/utils"),Ko=require("viem");var Io=require("@galacticcouncil/xc-core"),Vs=null;async function Do(){if(Vs)return Vs;let t=await Io.codec.getHubCodecs();return Vs={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},Vs}var Mo=require("@galacticcouncil/xc-core"),m=require("@galacticcouncil/descriptors"),Oo=require("@polkadot-api/substrate-bindings"),No=require("@polkadot-api/utils");var Ro=require("@galacticcouncil/descriptors"),Z=340282366920938463463374607431768211455n,ze="0x0000000000000000000000000000000000000000000000000000000000000000",z={parents:1,interior:Ro.XcmV3Junctions.Here()},Lo=0,wt=1e3,Ms=1002,He=1,Nt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Ho="0x0000000000000000000000000000000000000000000000000000000000000000",Vo="0x0000000000000000000000000000000000000000";var Tn="0x0000000000000000000000000000000000000000",xs=t=>({parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})))}),Pn=(t,e)=>({parents:2,interior:m.XcmV5Junctions.X2([m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(t)})),m.XcmV5Junction.AccountKey20({key:e,network:void 0})])});function Uo(t,e){let s=xs(t),n=Pn(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[m.XcmV5Instruction.ReserveAssetDeposited([{id:s,fun:m.XcmV3MultiassetFungibility.Fungible(o)},{id:n,fun:m.XcmV3MultiassetFungibility.Fungible(o)}]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],maximal:!1}),m.XcmV5Instruction.PayFees({asset:{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}})],c=Xn({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 Xn(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=xs(e),u=n===Tn?i:Pn(e,n),l=o.length===42&&o.startsWith("0x")?m.XcmV5Junction.AccountKey20({key:o,network:void 0}):m.XcmV5Junction.AccountId32({id:o,network:void 0}),y={parents:0,interior:m.XcmV5Junctions.X1(l)};return[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}],maximal:!1}),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:m.XcmV5AssetFilter.Definite([{id:u,fun:m.XcmV3MultiassetFungibility.Fungible(a)}])}],remote_xcm:[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y}),m.XcmV5Instruction.SetTopic(c)]}function Sn(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:u}=t,f=xs(He),l=e===Tn?f:Pn(He,e),y={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountId32({id:s,network:void 0}))},A={parents:0,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.AccountKey20({key:n,network:void 0}))},C={parents:2,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.GlobalConsensus(m.XcmV5NetworkId.Ethereum({chain_id:BigInt(He)})))},S=[m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllCounted(3)),beneficiary:A}),m.XcmV5Instruction.SetTopic(u)],B=[m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})])];B.push(m.XcmV5Instruction.ExchangeAsset({give:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(c)}]),want:[{id:f,fun:m.XcmV3MultiassetFungibility.Fungible(i)}],maximal:!1}));let D=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))}],K=m.XcmV5AssetFilter.Definite([{id:f,fun:m.XcmV3MultiassetFungibility.Fungible(i)}]);B.push(m.XcmV5Instruction.InitiateTransfer({destination:C,remote_fees:{type:"ReserveWithdraw",value:K},preserve_origin:!0,assets:D,remote_xcm:S}),m.XcmV5Instruction.SetTopic(u));let te=a+r+c,ue=[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(te)},{id:l,fun:m.XcmV3MultiassetFungibility.Fungible(o)}],Ne=[{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(a)}],Qe={type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.AllOf({id:l,fun:{type:"Fungible",value:void 0}}))},Ue=[{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(c)}])},Qe];return[m.XcmV5Instruction.WithdrawAsset(ue),m.XcmV5Instruction.PayFees({asset:Ne[0]}),m.XcmV5Instruction.SetAppendix([m.XcmV5Instruction.SetHints({hints:[{type:"AssetClaimer",value:{location:y}}]}),m.XcmV5Instruction.RefundSurplus(),m.XcmV5Instruction.DepositAsset({assets:m.XcmV5AssetFilter.Wild(m.XcmV5WildAsset.All()),beneficiary:y})]),m.XcmV5Instruction.InitiateTransfer({destination:{parents:1,interior:m.XcmV5Junctions.X1(m.XcmV5Junction.Parachain(wt))},remote_fees:{type:"ReserveWithdraw",value:m.XcmV5AssetFilter.Definite([{id:z,fun:m.XcmV3MultiassetFungibility.Fungible(r)}])},preserve_origin:!0,assets:Ue,remote_xcm:B}),m.XcmV5Instruction.SetTopic(u)]}function Go(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,u=(0,Oo.getSs58AddressInfo)(o);if(!u.isValid)throw new Error(`Invalid SS58 address: ${o}`);let f=(0,No.toHex)(u.publicKey),l=i.getAssetXcmLocation(n),y=l?Mo.multiloc.findNestedKey(l,"key"):void 0,A=y?y.key:Tn,C=r.feeBreakdown,S=C.sourceExecutionFee??0n,B=C.dotRemoteFee??0n,D=C.dotToEtherSwapAmount??0n,K=C.etherFeeAmount??0n,ue=Sn({tokenAddress:A,senderPubKey:f,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:S,dotRemoteFee:B,dotToEtherSwapAmount:D,etherFeeAmount:K,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return m.XcmVersionedXcm.V5(ue)}var{Ss58Addr:qo}=$e.addr,si="0x0000000000000000000000000000000000000000",ni=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,u=$e.Snowbridge.fromChain(c),f=c.getAssetId(n),l=Ot(f),y=n.originSymbol==="ETH",A=r.feeBreakdown.executionFee,C=r.feeBreakdown.relayerFee,S=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,D=qo.getPubKey(e),K=new TextEncoder().encode(`${i.parachainId}${o}${l}${D}${s}${Date.now()}`),te=(0,Os.toHex)((0,Wo.Blake2256)(K)),ue=Xn({ethChainId:He,destinationParaId:i.parachainId,tokenAddress:y?si:l,beneficiaryHex:D,tokenAmount:s,hydrationDotFee:S,topic:te}),Ne=await Do(),Qe=(0,Os.toHex)(Ne.message.enc(Ct.XcmVersionedXcm.V5(ue))),Ue=[];y||Ue.push((0,Ko.encodeAbiParameters)([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,l,s]));let $t=Ne.location.enc(Ct.XcmVersionedLocation.V5({parents:0,interior:Ct.XcmV5Junctions.X1(Ct.XcmV5Junction.AccountId32({id:D,network:void 0}))})),St=(0,Os.toHex)($t.slice(1));return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:u.getGateway(),args:[Qe,Ue,St,A,C],value:y?B+s:B,func:"v2_sendMessage",module:"Snowbridge"})}}),oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=$e.Snowbridge.fromChain(r),u=r.getAssetId(n),f=Ot(u),l=n.originSymbol==="ETH",y=a.feeBreakdown.bridgeFeeInDot,A=a.fee.amount;return new $e.ContractConfig({abi:$e.Abi.Snowbridge,address:i.getGateway(),args:[f,c.parachainId,[1,qo.getPubKey(e)],y,s],value:l?A+s:A,func:"sendToken",module:"Snowbridge"})}}),jo=()=>({v2SendMessage:ni,sendToken:oi});var Fe=require("@galacticcouncil/xc-core"),ai="0x00",zo=8,ri=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Fe.Ntt.fromChain(r,n),u=Fe.Wormhole.fromChain(c),f=e;c instanceof Fe.EvmParachain&&(f=await c.getDerivatedAddress(e));let l=r,y=await l.evmClient.getProvider().readContract({abi:Fe.Abi.NttManager,address:i.manager,args:[u.getWormholeId(),ai],functionName:"quoteDeliveryPrice"}),A=l.getAssetDecimals(n)??0,C=s;if(A>zo){let S=10n**BigInt(A-zo);C=s-s%S}return new Fe.ContractConfig({abi:Fe.Abi.NttManager,address:i.manager,args:[C,u.getWormholeId(),u.normalizeAddress(f)],token:i.token,wrapNative:l.getBalanceType(n)===Fe.EvmBalanceType.Native,value:y[1],func:"transfer",module:"NttManager"})}}),$o=()=>({transfer:ri});function Jo(){return{Ntt:$o}}function $(){return{Batch:Eo,Erc20:vo,Basejump:So,PolkadotXcm:Bo,Snowbridge:jo,Wormhole:Jo}}var Fn=require("@galacticcouncil/common"),Yo=require("@galacticcouncil/xc-core"),Qo="AssetConversion",ii=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,a=n.destinationFeeSwap||n.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:c}=a,i=o,u=(0,Fn.encodeLocation)(i.getAssetXcmLocation(r)),f=(0,Fn.encodeLocation)(i.getAssetXcmLocation(c)),l=r.amount+r.amount*BigInt(t.slippage)/100n,y=c.amount;return new Yo.ExtrinsicConfig({module:Qo,func:e,getTx:A=>A.getUnsafeApi().tx[Qo][e]({path:[u,f],amount_out:y,amount_in_max:l,send_to:s,keep_alive:!0})})}}},Zo=()=>({swapTokensForExactTokens:ii});var Ns=require("@galacticcouncil/descriptors"),ea=require("@galacticcouncil/xc-core"),ci="Assets",mi=()=>{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 ea.ExtrinsicConfig({module:ci,func:t,getTx:u=>u.getTypedApi(Ns.hub).tx.Assets.transfer({id:Number(i),target:Ns.MultiAddress.Id(n),amount:c})})}}},ta=()=>({transfer:mi});var na=require("@galacticcouncil/xc-core"),sa="Balances",ui=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new na.ExtrinsicConfig({module:sa,func:e,getTx:n=>n.getUnsafeApi().tx[sa][e]({dest:s,keep_alive:t})})}},oa=()=>({transferAll:ui});var aa=require("@galacticcouncil/descriptors"),ra=require("@galacticcouncil/xc-core"),di="Router",li=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:c}=o,i=n,u=i.getMetadataAssetId(a),f=i.getMetadataAssetId(r),l=r.amount,y=a.amount+a.amount*BigInt(t.slippage)/100n;return new ra.ExtrinsicConfig({module:di,func:"buy",getTx:A=>A.getTypedApi(aa.hydration).tx.Router.buy({asset_in:Number(u),asset_out:Number(f),amount_out:l,max_amount_in:y,route:c})})}}),ia=()=>({buy:li});var ma=require("@galacticcouncil/xc-core"),ca="Utility",pi=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new ma.ExtrinsicConfig({module:ca,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[ca][e]({calls:a})}})}}},ua=()=>({batchAll:pi});var Us=require("@galacticcouncil/xc-core"),la=require("polkadot-api"),pa=require("viem");var Ye=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(Ye||{}),_e=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(_e||{});var da="EthereumXcm",fi=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=(0,pa.encodeFunctionData)({abi:Us.Abi[n.module],functionName:n.func,args:n.args});return new Us.ExtrinsicConfig({module:da,func:e,getTx:r=>r.getUnsafeApi().tx[da][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:la.Binary.fromHex(a),access_list:void 0}}})})}}},_n=()=>({transact:fi});var lt=require("@galacticcouncil/xc-core"),vs=require("@galacticcouncil/common");var Ut=require("@galacticcouncil/xc-core"),d=require("@galacticcouncil/descriptors");var ee=require("@galacticcouncil/descriptors");var fa=require("@galacticcouncil/common"),Bn=require("@galacticcouncil/descriptors"),ha=require("@polkadot-api/substrate-bindings"),ya=require("@polkadot-api/utils");function q(t){if(t.length===42&&t.startsWith("0x"))return Bn.XcmV3Junction.AccountKey20({key:t,network:void 0});let s=(0,ha.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Bn.XcmV3Junction.AccountId32({id:(0,ya.toHex)(s.publicKey),network:void 0})}function As(t,e,s){return fa.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var In=require("@galacticcouncil/xc-core");function ba(t,e){let s=In.multiloc.findNestedKey(t,"GeneralIndex"),n=In.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function O(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var Gs={};Jt(Gs,{ETHER_TOKEN_ADDRESS:()=>Dn,erc20Location:()=>yi,erc20LocationReanchored:()=>bi,ethereumLocation:()=>Aa,parachainLocation:()=>hi});var Ve=require("@galacticcouncil/descriptors"),Dn="0x0000000000000000000000000000000000000000",xa=t=>Ve.XcmV3Junction.GlobalConsensus(Ve.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Aa(t){return{parents:2,interior:Ve.XcmV3Junctions.X1(xa(t))}}function hi(t){return{parents:1,interior:Ve.XcmV3Junctions.X1(Ve.XcmV3Junction.Parachain(t))}}function yi(t,e){return e===Dn?Aa(t):{parents:2,interior:Ve.XcmV3Junctions.X2([xa(t),Ve.XcmV3Junction.AccountKey20({key:e})])}}function bi(t){return t===Dn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Ve.XcmV3Junctions.X1(Ve.XcmV3Junction.AccountKey20({key:t}))}}var Rn=require("@galacticcouncil/common"),ga=require("@galacticcouncil/xc-core");function G(t,e){return xi(e)>=4?(0,Rn.encodeLocation)(t):Ai(t)}function xi(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Ai(t){return{type:"Concrete",value:(0,Rn.encodeLocation)(t)}}var gi=1e3;function wi(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 Ci(t){if(t)return wi(t)?gi:ga.multiloc.findParachain(t)}function wa(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Ci(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 Ws(t,e){let s="V4",n=G(O(e,t),s),o=ze;return[ee.XcmV4Instruction.ReserveAssetDeposited([{id:z,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)},{id:n,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)}]),ee.XcmV4Instruction.ClearOrigin(),ee.XcmV4Instruction.BuyExecution({fees:{id:z,fun:ee.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:ee.XcmV3WeightLimit.Unlimited()}),ee.XcmV4Instruction.DepositAsset({assets:ee.XcmV4AssetAssetFilter.Wild(ee.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:ee.XcmV3Junctions.X1(q(Nt))}}),ee.XcmV4Instruction.SetTopic(o)]}var Ze=require("@galacticcouncil/descriptors");function Ln(t,e){let s="V4",n=G(O(e,t),s),o=Ks("V4",q(Vo),q(Nt),n,ze);return[Ze.XcmV4Instruction.WithdrawAsset([{id:z,fun:Ze.XcmV3MultiassetFungibility.Fungible(Z)},{id:n,fun:Ze.XcmV3MultiassetFungibility.Fungible(Z)}]),Ze.XcmV4Instruction.ClearOrigin(),Ze.XcmV4Instruction.BuyExecution({fees:{id:z,fun:Ze.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:Ze.XcmV3WeightLimit.Unlimited()}),...o.value]}var X=require("@galacticcouncil/descriptors");function Ca(t,e){let s="V4",n=G(O(e,t),s),o=ze;return[X.XcmV4Instruction.WithdrawAsset([{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Z)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(q(Nt))}}),X.XcmV4Instruction.SetTopic(o)]}function Hn(t,e){let s="V4",n=G(O(e,t),s);return[X.XcmV4Instruction.BuyExecution({fees:{id:n,fun:X.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:X.XcmV3Junctions.X1(q(Nt))}})]}function ka(t,e,s){let n="V4",o=G(O(e,t),n),a=ze,r=Hn(t,s);return[X.XcmV4Instruction.WithdrawAsset([{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(Z)}]),X.XcmV4Instruction.ClearOrigin(),X.XcmV4Instruction.BuyExecution({fees:{id:o,fun:X.XcmV3MultiassetFungibility.Fungible(Z)},weight_limit:X.XcmV3WeightLimit.Unlimited()}),X.XcmV4Instruction.DepositReserveAsset({assets:X.XcmV4AssetAssetFilter.Wild(X.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:X.XcmV3Junctions.X1(X.XcmV3Junction.Parachain(s.parachainId))},xcm:r}),X.XcmV4Instruction.SetTopic(a)]}var J=require("@galacticcouncil/descriptors");function Ea(t,e){let s="V5",n=G(O(e,t),s),o={parents:0,interior:J.XcmV5Junctions.X1(J.XcmV5Junction.AccountId32({id:Ho,network:void 0}))};return[J.XcmV5Instruction.ReserveAssetDeposited([{id:z,fun:J.XcmV3MultiassetFungibility.Fungible(Z)}]),J.XcmV5Instruction.PayFees({asset:{id:z,fun:J.XcmV3MultiassetFungibility.Fungible(Z)}}),J.XcmV5Instruction.ReserveAssetDeposited([{id:n,fun:J.XcmV3MultiassetFungibility.Fungible(Z)}]),J.XcmV5Instruction.ClearOrigin(),J.XcmV5Instruction.DepositAsset({assets:J.XcmV5AssetFilter.Wild(J.XcmV5WildAsset.AllCounted(3)),beneficiary:o}),J.XcmV5Instruction.SetTopic(ze)]}var va=[Ut.ChainEcosystem.Polkadot,Ut.ChainEcosystem.Kusama],ki={parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(1e3))},Ei=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Ta=(t,e)=>!t.ecosystem||!e.ecosystem?!1:va.includes(t.ecosystem)&&va.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Pa=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},et=(t,e,s)=>{if(Ta(e,s))return{type:t,value:Vn(s.ecosystem,s.parachainId)};if(s.parachainId===Lo)return{type:t,value:{parents:1,interior:d.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?wt:s.parachainId;return{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(n))}}},vi=t=>t===Ut.ChainEcosystem.Kusama?d.XcmV3JunctionNetworkId.Kusama():d.XcmV3JunctionNetworkId.Polkadot(),Vn=(t,e)=>({parents:2,interior:d.XcmV3Junctions.X2([d.XcmV3Junction.GlobalConsensus(vi(t)),d.XcmV3Junction.Parachain(e)])}),Xa=(t,e,s,n)=>{if(Ta(e,s)){if(e.parachainId!==wt){let o=Ut.multiloc.findGlobalConsensus(O(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(wt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==wt)return{dest:{type:t,value:Vn(s.ecosystem,wt)},mode:"onward"}}},Gt=(t,e)=>({type:t,value:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),Mn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Ei(s)?ki:s}}:{type:e},kt=(t,e)=>({id:t,fun:d.XcmV3MultiassetFungibility.Fungible(e)}),Sa=(t,e,s)=>({type:t,value:[d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),Ks=(t,e,s,n,o)=>{let a=o;return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(s)}})]),d.XcmV4Instruction.InitiateReserveWithdraw({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllOf({id:n,fun:d.XcmV2MultiassetWildFungibility.Fungible()})),reserve:Gs.ethereumLocation(He),xcm:[d.XcmV4Instruction.BuyExecution({fees:{id:Ti(n),fun:d.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}}),d.XcmV4Instruction.SetTopic(a)]}),d.XcmV4Instruction.SetTopic(a)]}},Fa=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.Parachain(s.parachainId))}:Vn(s.ecosystem,s.parachainId),c={parents:0,interior:d.XcmV3Junctions.X1(e)},i=d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),u=[d.XcmV4Instruction.BuyExecution({fees:{id:o,fun:d.XcmV3MultiassetFungibility.Fungible(a)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.DepositAsset({assets:i,beneficiary:c})],f=n==="bridge-withdraw"?d.XcmV4Instruction.InitiateReserveWithdraw({assets:i,reserve:r,xcm:u}):d.XcmV4Instruction.DepositReserveAsset({assets:i,dest:r,xcm:u});return{type:t,value:[d.XcmV4Instruction.SetAppendix([d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.All()),beneficiary:c})]),f]}},Ti=t=>{let e=Ut.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:d.XcmV3Junctions.X1(d.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:d.XcmV3Junctions.Here()}},_a=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.Transact({origin_kind:d.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]}),Ba=(t,e,s,n,o,a)=>({type:t,value:[d.XcmV4Instruction.WithdrawAsset([{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)}]),d.XcmV4Instruction.BuyExecution({fees:{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:d.XcmV3WeightLimit.Unlimited()}),d.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:d.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(a)}}),d.XcmV4Instruction.RefundSurplus(),d.XcmV4Instruction.DepositAsset({assets:d.XcmV4AssetAssetFilter.Wild(d.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:d.XcmV3Junctions.X1(e)}})]});var ae="PolkadotXcm",Pi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",u=O(r,s),f=O(r,n.fee),l=G(u,i),y=G(f,i),A=kt(l,e),C=kt(y,n.fee.amount),S="limited_reserve_transfer_assets";return new lt.ExtrinsicConfig({module:ae,func:S,getTx:B=>{let D=B.getUnsafeApi().tx[ae][S];return s.key===n.fee.key?D({dest:et(i,r,c),beneficiary:Gt(i,a),assets:{type:i,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):ba(u,f)?D({dest:et(i,r,c),beneficiary:Gt(i,a),assets:{type:i,value:[C,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):D({dest:et(i,r,c),beneficiary:Gt(i,a),assets:{type:i,value:[A,C]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Xi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",u=G(O(r,s),i),f=kt(u,e),l=et(i,r,c),y=Gt(i,a),A={type:i,value:[f]},C="limited_teleport_assets";return new lt.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:l,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Si=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",u=G(O(r,s),i),f=kt(u,e),l=et(i,r,c),y=Gt(i,a),A={type:i,value:[f]},C="reserve_transfer_assets";return new lt.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:l,beneficiary:y,assets:A,fee_asset_item:0})})}}),Fi=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=q(t),r=o.chain,c=n.chain,i="V4",u=G(O(r,s),i),f=kt(u,e),l=et(i,r,c),y=Gt(i,a),A={type:i,value:[f]},C="transfer_assets";return new lt.ExtrinsicConfig({module:ae,func:C,getTx:S=>S.getUnsafeApi().tx[ae][C]({dest:l,beneficiary:y,assets:A,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),_i=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:a,sender:r,source:c,transact:i})=>{let u="V4",f=c.chain,l=o.chain,y=o.fee.amount,A=o.fee;i&&(l=i.chain,y=vs.big.toBigInt(i.fee.amount,i.fee.decimals),A=i.fee);let C=q(r),S=i||l.usesCexForwarding?As(f,r,l):e,B=q(S),{transferType:D}=t,K=G(O(f,s),u),te=G(O(f,A),u),ue=kt(K,n),Ne=kt(te,y),Qe=s.isEqual(A),Ue=Xa(u,f,l,s),$t=Ue?.dest??et(u,f,l),St={type:u,value:Qe?[ue]:[Ne,ue]},oo=Mn(u,D,K),Dr={type:u,value:Qe?K:te},Rr=Mn(u,D,te),Is;if(Pa(K)&&o.chain.isEvmChain())Is=Ks(u,B,C,K,a);else if(Ue){let gn=vs.big.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Lr=G(O(l,s),u);Is=Fa(u,B,l,Ue.mode,Lr,gn)}else Is=Sa(u,B,St.value.length);let ao="transfer_assets_using_type_and_then";return new lt.ExtrinsicConfig({module:ae,func:ao,getTx:gn=>gn.getUnsafeApi().tx[ae][ao]({dest:$t,assets:St,assets_transfer_type:oo,remote_fees_id:Dr,fees_transfer_type:Rr,custom_xcm_on_dest:Is,weight_limit:{type:"Unlimited"}})})}}),Bi=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:a}=s,r="V4";if(!a)throw new Error("Transact ctx configuration is missing.");let c=o.chain,i=a.chain,u=As(c,n,i),f=q(u),{fee:l}=a,y=G(O(i,l),r),A=vs.big.toBigInt(e.fee,l.decimals);return new lt.ExtrinsicConfig({module:ae,func:t,getTx:C=>C.getUnsafeApi().tx[ae][t]({dest:et(r,c,i),message:_a(r,f,y,A,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,u="V4",f=c.chain,l=i.chain,y=As(f,r,l),A=q(y),C=q(o),S=G(O(l,a),u),{fee:B}=i,D=vs.big.toBigInt(e.fee,B.decimals),K=n>B.amount?n-(B.amount+D):n;return new lt.ExtrinsicConfig({module:ae,func:t,getTx:te=>te.getUnsafeApi().tx[ae][t]({dest:et(u,f,l),message:Ba(u,A,S,K,D,C)})})}})}};function Ii(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new lt.ExtrinsicConfig({module:ae,func:a,getTx:r=>r.getUnsafeApi().tx[ae][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Go)}}var On=()=>({limitedReserveTransferAssets:Pi,limitedTeleportAssets:Xi,reserveTransferAssets:Si,transferAssets:Fi,transferAssetsUsingTypeAndThen:_i,execute:Ii,send:Bi});var Ra=require("@galacticcouncil/xc-core"),La=require("@galacticcouncil/common");var Ts=require("@galacticcouncil/descriptors"),Ia=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X1(s)}}:{type:t,value:{parents:1,interior:Ts.XcmV3Junctions.X2([Ts.XcmV3Junction.Parachain(e.parachainId),s])}};var Da="XTokens",Di=()=>({build:async({address:t,amount:e,asset:s,destination:n,sender:o,source:a})=>{let r=a.chain,c=n.chain,i="V3",u=c.usesCexForwarding?As(r,o,c):t,f=q(u),l=r.getAssetId(s),y=(0,La.encodeAssetId)(l),A="transfer";return new Ra.ExtrinsicConfig({module:Da,func:A,getTx:C=>C.getUnsafeApi().tx[Da][A]({currency_id:y,amount:e,dest:Ia(i,c,f),dest_weight_limit:{type:"Unlimited"}})})}}),Nn=()=>({transfer:Di});function p(){return{assetConversion:Zo,assets:ta,balances:oa,ethereumXcm:_n,polkadotXcm:On,router:ia,utility:ua,xTokens:Nn}}function pt(t,e){return{prior:function(s){return{build:async n=>t(n)?p().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?p().utility().batchAll([e,...s]).build(n):p().utility().batchAll([...s]).build(n)}}}}var Wt=require("@galacticcouncil/xc-core");var Ha=80000n,Va=120000n,Ma=100000n,Oa=2000000n,Un=15000000000000n;var jn={};Jt(jn,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Ga,AssethubClient:()=>ve,BaseClient:()=>Me,HydrationClient:()=>re,getAllAssetDepositLimits:()=>Kn,getAssetDepositLimit:()=>Wn,getGlobalWithdrawLimit:()=>qn});var Gn=require("@galacticcouncil/common"),Ps=require("@galacticcouncil/descriptors"),Me=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Ps.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,Gn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ps.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,Gn.encodeLocation)(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Ps.XcmVersionedAssetId.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};var Be=require("@galacticcouncil/descriptors"),Na=require("@galacticcouncil/common"),qs=require("@polkadot-api/substrate-bindings"),Ua=require("@polkadot-api/utils");var ve=class extends Me{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,Na.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,Ua.toHex)((0,qs.Twox128)(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=qs.u128.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=Be.XcmVersionedLocation.V5({parents:1,interior:Be.XcmV5Junctions.X1(Be.XcmV5Junction.Parachain(s))}),o=Be.XcmVersionedAssetId.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,Be.XcmVersionedXcm.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(i=>{let u=i.id;return u&&u.parents&&u.parents===1&&u.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let c=r.fun.value;if(typeof c=="bigint")return c;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,s){let n={parents:1,interior:Be.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:Be.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:Be.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 Ka=require("@galacticcouncil/descriptors");var Ga=14400;function Wa(t,e,s,n,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,c=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,i=e?.decimals??12,u=!1,f,l,y;s&&(s.type==="Locked"?(f=s.value,u=o<s.value):(l=s.value[0],y=s.value[1]));let A=n?.type==="Local"?"Local":"External",C=!u&&l!==void 0&&l+Ga<=o,S=null;if(r!==null)if(u)S=0n;else if(C)S=r;else{let B=y??a,D=a>B?a-B:0n;S=r>D?r-D:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:u,lockedUntilBlock:f,lastResetBlock:l,baselineIssuance:y,currentIssuance:a,headroom:S,category:A,periodExpired:C}}async function Wn(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 Wa(e,n,o,a,r,c)}async function Kn(t){let[e,s,n,o,a,r]=await Promise.all([t.query.AssetRegistry.Assets.getEntries({at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getEntries({at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getEntries({at:"best"}),t.query.System.Number.getValue({at:"best"}),t.query.Balances.TotalIssuance.getValue({at:"best"}),t.query.Tokens.TotalIssuance.getEntries({at:"best"})]),c=new Map(s.map(l=>[l.keyArgs[0],l.value])),i=new Map(n.map(l=>[l.keyArgs[0],l.value])),u=new Map(r.map(l=>[l.keyArgs[0],l.value])),f=new Map;for(let l of e){let y=l.keyArgs[0],A=l.value;if(A?.xcm_rate_limit==null)continue;let C=y===0?a:u.get(y)??0n,S=Wa(y,A,c.get(y),i.get(y),o,C);f.set(y.toString(),S)}return f}async function qn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:u,window:f}=e,l=c;if(!r&&f>0n){let A=o>i?o-i:0n;if(A>0n){let C=A>f?f:A,S=c*C/f;l=c>S?c-S:0n}}let y=r||l>=u?0n:u-l;return{configured:!0,limit:u,windowMs:f,used:l,lastUpdateMs:i,headroom:y,lockdown:r,lockdownUntilMs:a}}var re=class extends Me{constructor(e){super(e,Ka.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 Wn(this.api(),s)}getAllAssetDepositLimits(){return Kn(this.api())}getGlobalWithdrawLimit(){return qn(this.api())}};function Ri(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new re(n),a=new ve(t.hub),r=Ws(e,n),c=Ea(e,n),i=xs(He),u=250000000n,f=Uo(He,n.parachainId),[l,y,A,C]=await Promise.all([o.calculateDestinationFeeV5(c,x),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,Ms),a.calculateDestinationFeeV5(f,x)]),S=Y(l,33n),B=Y(y,33n),D=Y(A,33n),te=Y(C,33n)+B,ue=S,Ne=await a.quoteEtherForDot(i,te),Qe=Y(Ne,30n),Ue=Qe<Un*2n?Un*2n:Qe,$t=Y(await a.quoteEtherForDot(i,ue),100n),St=Y(await a.quoteDotToEther(i,u+D),30n);return{amount:Ue+St+$t,breakdown:{executionFee:Ue,relayerFee:St,remoteEtherFee:$t,hydrationDotFee:ue}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new ve(t.hub),i=xs(He),u=Ln(e,a),[f,l,y]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(u,Ms),c.calculateDestinationFee(u,s)]),A=await r.evmClient.getProvider().getGasPrice(),C=Oa+Va+Ha+Ma,S=A*C,B=Y(S,10n),D=f+Y(l,33n)+Y(y,33n),K=Y(await c.quoteDotForExactEther(i,B),20n),te=new re(a),ue=Sn({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ze}),Ne=Y(await te.calculateDestinationFeeV5(ue,x),33n);return{amount:D+K+Ne,breakdown:{dotRemoteFee:D,dotToEtherSwapAmount:K,etherFeeAmount:B,sourceExecutionFee:Ne}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=Wt.Snowbridge.fromChain(o),c=new Me(a),i=new ve(t.hub),u=Ws(e,a),[f,l]=await Promise.all([c.calculateDestinationFee(u,x),i.calculateDeliveryFee(u,a.parachainId)]),y=l+Y(f,25n),A=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Wt.Abi.Snowbridge,address:r.getGateway(),args:[A,a.parachainId,y],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:y}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new ve(t.hub),r=Ln(e,o),c=Ws(e,o),[i,u,f,l,y]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,Ms),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+u+Y(f,25n)+l+Y(y,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:u,assetHubDestinationFee:f,returnToSenderDeliveryFee:l,returnToSenderDestinationFee:y}}}})}}function Li(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(wa(e,o,a,r),r){let y=new Me(a),A=new Me(r),C=Hn(e,a),S=ka(e,r,a),[B,D]=await Promise.all([y.calculateDestinationFee(C,e),A.calculateDestinationFee(S,e)]),K=D+B,te=Y(K,20n),ue=te-K;return{amount:te,breakdown:{reserveFee:D,destinationFee:B,margin:ue}}}let c=new Me(a),i=Ca(e,a),u=await c.calculateDestinationFee(i,e),f=Y(u,20n),l=f-u;return{amount:f,breakdown:{totalFee:u,margin:l}}}})}}function Hi(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=Wt.Basejump.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Wt.Abi.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function E(){return{Basejump:Hi,XcmPaymentApi:Li,Snowbridge:Ri}}var Vi="0";function Mi(){return{build:async({address:t,chain:e})=>{let n=await new re(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Vi,a=e.findAssetById(o);return a?a.asset:j}}}var Oi=()=>({accountCurrencyMap:Mi});function Xs(){return{multiTransactionPayment:Oi}}var $n={};Jt($n,{Tag:()=>gs});var gs=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(gs||{});function ja(t,e){return new qa.AssetRoute({source:{asset:t,fee:{asset:_},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:E().Basejump().quoteFee(),asset:t}},contract:$().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Ni=[ja(Qt,Ft)],$a=new za.ChainRoutes({chain:Ds,routes:[...Ni]});var Ss=require("@galacticcouncil/xc-core");var js=require("@galacticcouncil/xc-core");function Ja(t,e){return new js.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:h,asset:e,fee:{amount:0,asset:e}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ie(t,e){return new js.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:_}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ce(t,e){return new js.AssetRoute({source:{asset:t,fee:{asset:_}},destination:{chain:h,asset:e,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:_}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Ui=[Ja(st,Xe)],Gi=[new Ss.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:h,asset:_,fee:{amount:E().Snowbridge().calculateInboundFee({hub:k}),asset:_}},contract:$().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ie(de,de),ie(le,le),ie(pe,pe),ie(fe,fe),ie(xe,xe),ie(ge,ge),ie(we,we),ie(ye,ye),ie(he,he),ie(be,be),ie(Ae,Ae),ie(Ce,Ce),ie(ke,ke),ie(w,it),ie(b,at)],Wi=[new Ss.AssetRoute({source:{asset:_,fee:{asset:_}},destination:{chain:h,asset:_,fee:{amount:E().Snowbridge().calculateInboundFeeV1({hub:k}),asset:_}},contract:$().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ce(de,de),ce(le,le),ce(pe,pe),ce(fe,fe),ce(xe,xe),ce(ge,ge),ce(we,we),ce(ye,ye),ce(he,he),ce(be,be),ce(Ae,Ae),ce(Ce,Ce),ce(ke,ke),ce(w,it),ce(b,at)],Qa=new Ss.ChainRoutes({chain:T,routes:[...Ui,...Gi,...Wi]});var Ya=[$a,Qa];var Et=require("@galacticcouncil/xc-core");var zs=require("@galacticcouncil/xc-core");var Kt=0,Ki=t=>{let{source:e}=t;return!!e.feeSwap},qi=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Za=p().assetConversion().swapTokensForExactTokens({slippage:30});function ji(t,e,s){return new zs.AssetRoute({source:{asset:t,fee:{asset:x,extra:Kt}},destination:{chain:e,asset:t,fee:{amount:s,asset:b}},extrinsic:pt(qi,Za).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function $s(t,e,s){return new zs.AssetRoute({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:pt(Ki,Za).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function qt(t,e,s){return new zs.AssetRoute({source:{asset:t,fee:{asset:x,extra:Kt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Js(t){return ji(t,h,.02)}var zi=[new Et.AssetRoute({source:{asset:x,fee:{asset:x,extra:Kt}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Et.AssetRoute({source:{asset:v,fee:{asset:x,extra:Kt}},destination:{chain:h,asset:v,fee:{amount:1e-4,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),qt(b,h,.02),qt(w,h,.02),Js(ut)],$i=[new Et.AssetRoute({source:{asset:v,fee:{asset:x,extra:Kt}},destination:{chain:qe,asset:v,fee:{amount:.001,asset:v}},extrinsic:p().polkadotXcm().transferAssets()})],Ji=[qt(b,U,.25),qt(w,U,.25)],Qi=[qt(b,L,.03),qt(w,L,.03)],Yi=[new Et.AssetRoute({source:{asset:M,fee:{asset:x,extra:Kt}},destination:{chain:xt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],er=new Et.ChainRoutes({chain:ft,routes:[$s(b,h,.02),$s(w,h,.02),$s(x,h,.001)]}),tr=new Et.ChainRoutes({chain:k,routes:[...zi,...$i,...Ji,...Qi,...Yi]});var Oe=require("@galacticcouncil/xc-core");var Zi=[new Oe.AssetRoute({source:{asset:R},destination:{chain:h,asset:R,fee:{amount:.044306118,asset:R}},extrinsic:p().polkadotXcm().reserveTransferAssets()}),new Oe.AssetRoute({source:{asset:F,fee:{asset:R}},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:F}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:P,fee:{asset:R}},destination:{chain:h,asset:P,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:P}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:I,fee:{asset:R}},destination:{chain:h,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:H,fee:{asset:R}},destination:{chain:h,asset:H,fee:{amount:.01,asset:H}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:V,fee:{asset:R}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:V}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:Q,fee:{asset:R}},destination:{chain:h,asset:Q,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:L}),asset:Q}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:b,fee:{asset:R}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Oe.AssetRoute({source:{asset:w,fee:{asset:R}},destination:{chain:h,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:w}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],sr=new Oe.ChainRoutes({chain:se,routes:[...Zi]});var Te=require("@galacticcouncil/xc-core");var ec=[new Te.AssetRoute({source:{asset:F},destination:{chain:h,asset:F,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:V,fee:{asset:F}},destination:{chain:h,asset:V,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:Q,fee:{asset:F}},destination:{chain:h,asset:Q,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:x,fee:{asset:F}},destination:{chain:h,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Te.AssetRoute({source:{asset:R,fee:{asset:F}},destination:{chain:h,asset:R,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:se}),asset:R}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:P,fee:{asset:F}},destination:{chain:h,asset:P,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:U}),asset:P}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:I,fee:{asset:F}},destination:{chain:h,asset:I,fee:{amount:625e-8,asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:b,fee:{asset:F}},destination:{chain:h,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:w,fee:{asset:F}},destination:{chain:h,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:w}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],tc=[new Te.AssetRoute({source:{asset:b,fee:{asset:F}},destination:{chain:k,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Te.AssetRoute({source:{asset:w,fee:{asset:F}},destination:{chain:k,asset:w,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],nr=new Te.ChainRoutes({chain:L,routes:[...ec,...tc]});var Ie=require("@galacticcouncil/xc-core");var W=()=>({asset:Xs().multiTransactionPayment().accountCurrencyMap()});var tt=require("@galacticcouncil/xc-core");var sc=1,nc=.02,Qs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Ys=p().router().buy({slippage:30});function N(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})}function ws(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})}function vt(t,e){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function Zs(t){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:k,asset:t,fee:{amount:nc,asset:b}},extrinsic:pt(Qs,Ys).prior(p().polkadotXcm().limitedReserveTransferAssets())})}function Jn(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:qe,asset:t,fee:{amount:e,asset:t}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function oc(t,e,s="LocalReserve"){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:e,asset:t,fee:{amount:sc,asset:P}},extrinsic:pt(Qs,Ys).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function Tt(t){return oc(t,U,"DestinationReserve")}function or(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:0,asset:e}},contract:$().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ne(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFee({hub:k}),asset:x}},extrinsic:pt(Qs,Ys).prior(p().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function oe(t,e,s){return new tt.AssetRoute({source:{asset:t,fee:W()},destination:{chain:s,asset:e,fee:{amount:E().Snowbridge().calculateOutboundFeeV1({hub:k}),asset:x}},extrinsic:pt(Qs,Ys).prior(p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var ac=[vt(x,k),vt(v,k),vt(b,k),vt(w,k),Zs(ut)],rc=[Jn(v,.05,.005),Jn(x,.2,.02)],ic=[N(R,se),N(F,se,L),N(P,se,U),new Ie.AssetRoute({source:{asset:I,fee:W()},destination:{chain:se,asset:I,fee:{amount:2e-6,asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:H,fee:W()},destination:{chain:se,asset:H,fee:{amount:.01,asset:H}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),N(V,se,L),N(Q,se,L),N(b,se,k),N(w,se,k)],cc=[N(F,L),N(V,L),N(Q,L),N(R,L,se),N(P,L,U),new Ie.AssetRoute({source:{asset:I,fee:W()},destination:{chain:L,asset:I,fee:{amount:5e-6,asset:I}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),N(b,L,k),N(w,L,k),new Ie.AssetRoute({source:{asset:x,fee:W()},destination:{chain:L,asset:x,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:k}),asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],mc=[ws(I,Le,62e-8),ws(H,Le,.0019213457),ws(j,Le,.5),ws(b,Le,.3),ws(w,Le,.3),new Ie.AssetRoute({source:{asset:V,fee:W()},destination:{chain:Le,asset:V,fee:{amount:.01,asset:x}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()}),new Ie.AssetRoute({source:{asset:x,fee:W()},destination:{chain:Le,asset:x,fee:{amount:.05,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],uc=[N(j,U),N(P,U),N(b,U,k),N(w,U,k),Tt(Xe),Tt(nt),Tt(rt),Tt(ot),Tt(mt),Tt(ct),Tt(De)],dc=[new Ie.AssetRoute({source:{asset:M,fee:W()},destination:{chain:xt,asset:M,fee:{amount:2.5,asset:M}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],lc=[N(Ke,ds)],pc=[new Ie.AssetRoute({source:{asset:Pe,fee:W()},destination:{chain:os,asset:Pe,fee:{amount:.04,asset:Pe}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],fc=[new Ie.AssetRoute({source:{asset:Ee,fee:W()},destination:{chain:ls,asset:Ee,fee:{amount:.02,asset:Ee}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],hc=[new Ie.AssetRoute({source:{asset:Se,fee:W()},destination:{chain:cs,asset:Se,fee:{amount:1.1,asset:Se}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],yc=[N(We,is)],bc=[N(Ge,ns)],xc=[or(Xe,st,T)],Ac=[ne(_,_,T),ne(de,de,T),ne(le,le,T),ne(pe,pe,T),ne(fe,fe,T),ne(xe,xe,T),ne(ge,ge,T),ne(we,we,T),ne(Ce,Ce,T),ne(ye,ye,T),ne(he,he,T),ne(be,be,T),ne(Ae,Ae,T),ne(ke,ke,T),ne(it,w,T),ne(at,b,T)],gc=[oe(_,_,T),oe(de,de,T),oe(le,le,T),oe(pe,pe,T),oe(fe,fe,T),oe(xe,xe,T),oe(ge,ge,T),oe(we,we,T),oe(Ce,Ce,T),oe(ye,ye,T),oe(he,he,T),oe(be,be,T),oe(Ae,Ae,T),oe(ke,ke,T),oe(it,w,T),oe(at,b,T)],wc=[vt(x,ft),vt(b,ft),vt(w,ft)],ar=new Ie.ChainRoutes({chain:h,routes:[...bc,...ac,...ic,...cc,...wc,...pc,...xc,...Ac,...gc,...mc,...fc,...rc,...uc,...dc,...yc,...hc,...lc]});var jt=require("@galacticcouncil/xc-core");function en(t,e){return new jt.AssetRoute({source:{asset:t,fee:{asset:H}},destination:{chain:h,asset:t,fee:{amount:E().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:p().xTokens().transfer()})}var Cc=[new jt.AssetRoute({source:{asset:H},destination:{chain:h,asset:H,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:p().xTokens().transfer()}),new jt.AssetRoute({source:{asset:I,fee:{asset:H}},destination:{chain:h,asset:I,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:p().xTokens().transfer()}),new jt.AssetRoute({source:{asset:j,fee:{asset:H}},destination:{chain:h,asset:j,fee:{amount:.5,asset:j}},extrinsic:p().xTokens().transfer()}),en(V,L),en(b,k),en(w,k),en(x,k)],rr=new jt.ChainRoutes({chain:Le,routes:[...Cc]});var Cs=require("@galacticcouncil/xc-core");var Qn=require("@galacticcouncil/xc-core");function kc(t,e,s){return new Qn.AssetRoute({source:{asset:t,fee:{asset:P}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Ec(t,e,s){return new Qn.AssetRoute({source:{asset:t,fee:{asset:P}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:$().PolkadotXcm().transferAssetsToPara32()})}function Pt(t,e){return kc(t,h,e)}function tn(t,e){return Ec(t,h,e)}var vc=[new Cs.AssetRoute({source:{asset:P},destination:{chain:h,asset:P,fee:{amount:.05,asset:P}},contract:$().PolkadotXcm().transferAssetsToPara32()}),tn(j,.6),tn(b,.3),tn(w,.3),Pt(Xe,.004),Pt(nt,.004),Pt(rt,.004),Pt(ot,.004),Pt(mt,1e-7),Pt(ct,2e-6),Pt(De,2e-5)],Tc=[new Cs.AssetRoute({source:{asset:b,fee:{asset:P}},destination:{chain:k,asset:b,fee:{amount:.18,asset:b}},contract:$().PolkadotXcm().transferAssetsToPara32()}),new Cs.AssetRoute({source:{asset:w,fee:{asset:P}},destination:{chain:k,asset:w,fee:{amount:.18,asset:w}},contract:$().PolkadotXcm().transferAssetsToPara32()})],ir=new Cs.ChainRoutes({chain:U,routes:[...vc,...Tc]});var Fs=require("@galacticcouncil/xc-core");var Pc=[new Fs.AssetRoute({source:{asset:M},destination:{chain:h,asset:M,fee:{amount:.01,asset:M}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Xc=[new Fs.AssetRoute({source:{asset:M},destination:{chain:k,asset:M,fee:{amount:.1,asset:M}},extrinsic:p().polkadotXcm().limitedTeleportAssets()})],cr=new Fs.ChainRoutes({chain:xt,routes:[...Pc,...Xc]});var sn=require("@galacticcouncil/xc-core");var Sc=[new sn.AssetRoute({source:{asset:Ke},destination:{chain:h,asset:Ke,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Ke}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],mr=new sn.ChainRoutes({chain:ds,routes:[...Sc]});var nn=require("@galacticcouncil/xc-core");var Fc=[new nn.AssetRoute({source:{asset:Pe},destination:{chain:h,asset:Pe,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Pe}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],ur=new nn.ChainRoutes({chain:os,routes:[...Fc]});var on=require("@galacticcouncil/xc-core");var _c=[new on.AssetRoute({source:{asset:Se},destination:{chain:h,asset:Se,fee:{amount:.2,asset:Se}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],dr=new on.ChainRoutes({chain:cs,routes:[..._c]});var an=require("@galacticcouncil/xc-core");var Bc=[new an.AssetRoute({source:{asset:Ge},destination:{chain:h,asset:Ge,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],lr=new an.ChainRoutes({chain:ns,routes:[...Bc]});var rn=require("@galacticcouncil/xc-core");var Ic=[new rn.AssetRoute({source:{asset:Ee,fee:{asset:Ee,extra:.030555}},destination:{chain:h,asset:Ee,fee:{amount:.03,asset:Ee}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],pr=new rn.ChainRoutes({chain:ls,routes:[...Ic]});var cn=require("@galacticcouncil/xc-core");var Dc=[new cn.AssetRoute({source:{asset:We},destination:{chain:h,asset:We,fee:{amount:.205,asset:We}},extrinsic:p().polkadotXcm().reserveTransferAssets()})],fr=new cn.ChainRoutes({chain:is,routes:[...Dc]});var hr=[lr,tr,er,sr,nr,ar,rr,ir,cr,fr,mr,ur,dr,pr];var yr=require("@galacticcouncil/xc-core");var Rc=[],br=new yr.ChainRoutes({chain:Ls,routes:[...Rc]});var xr=[br];var Ar=require("@galacticcouncil/xc-core");var Lc=[],gr=new Ar.ChainRoutes({chain:Hs,routes:[...Lc]});var wr=[gr];var zt=require("@galacticcouncil/xc-core");var Hc=require("@galacticcouncil/xc-core");var _s=.0015;var Vc=new zt.AssetRoute({source:{asset:v,fee:{asset:v,extra:_s}},destination:{chain:k,asset:v,fee:{amount:.002,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Mc=new zt.AssetRoute({source:{asset:v,fee:{asset:v,extra:_s}},destination:{chain:hs,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Oc=[new zt.AssetRoute({source:{asset:v,fee:{asset:v,extra:_s}},destination:{chain:h,asset:v,fee:{amount:.04,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new zt.AssetRoute({source:{asset:x,fee:{asset:v,extra:_s}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Cr=new zt.ChainRoutes({chain:qe,routes:[Mc,Vc,...Oc]});var Bs=require("@galacticcouncil/xc-core");var Yn=()=>({asset:Xs().multiTransactionPayment().accountCurrencyMap()});var Nc=[new Bs.AssetRoute({source:{asset:b,fee:Yn()},destination:{chain:qe,asset:b,fee:{amount:E().XcmPaymentApi().calculateDestFee(),asset:b}},extrinsic:p().polkadotXcm().limitedReserveTransferAssets()})],Uc=[new Bs.AssetRoute({source:{asset:v,fee:Yn()},destination:{chain:qe,asset:v,fee:{amount:.0012,asset:v}},extrinsic:p().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],kr=new Bs.ChainRoutes({chain:hs,routes:[...Nc,...Uc]});var Er=[Cr,kr];var Gc=[...Ya,...hr,...xr,...wr,...Er],vr=new Map(Gc.map(t=>[t.chain.key,t]));var Zn=require("@galacticcouncil/xc-core");var Xt=require("@galacticcouncil/xc-core"),mn=class extends Xt.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Xt.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},un=class extends Xt.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 Xt.TransferValidationError("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Xt.Parachain)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};var ks=require("@galacticcouncil/xc-core");var dn=class extends ks.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new ve(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new ve(a).getSystemAccountBalance(n)===0n)throw new ks.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},ln=class extends ks.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new ve(a).checkIfFrozen(n,s))throw new ks.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Je=require("@galacticcouncil/xc-core");var Wc=12,Kc=1,qc=18,pn=class extends Je.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new re(n),a=s.balance.amount>0n,r=await o.checkIfSufficient(s.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain,r=new re(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),u=i.min||Kc,f=i.decimals||Wc,l=u*Math.pow(10,f),y=await r.getAssetBalance(n,c);if(BigInt(l*1.1)>y)throw new Je.TransferValidationError("Insufficient_Ed",{amount:l,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},fn=class extends Je.TransferValidation{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new re(a).getAssetDepositLimit(n);if(c.locked)throw new Je.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 Je.TransferValidationError("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},hn=class extends Je.TransferValidation{async validate(e){let{source:s}=e,n=s.chain,a=await new re(n).getGlobalWithdrawLimit();if(a.lockdown)throw new Je.TransferValidationError("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},yn=class extends Je.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 re(a),c=a.getBalanceAssetId(P),i=a.getAssetDecimals(P)||qc,u=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(u))throw new Je.TransferValidationError("Insufficient_Ed",{amount:1,asset:P.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var me={isAny:()=>!0,isHydration:t=>t instanceof Zn.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Zn.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Tr=[new mn(me.isAny,me.isAny),new un(me.isAny,me.isAny),new dn(me.isAny,me.isHub),new ln(me.isHub,me.isAny),new pn(me.isAny,me.isHydration),new yn(me.isHydration,me.isAny),new fn(me.isAny,me.isHydration),new hn(me.isHydration,me.isAny)];var no={};Jt(no,{AssethubDex:()=>so,HydrationDex:()=>eo});var Es=require("@galacticcouncil/sdk-next"),Xr=require("@galacticcouncil/common"),Sr=require("polkadot-api");var Pr=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:bn}=Es.pool,{TradeRouteBuilder:jc,TradeRouter:zc}=Es.sor,{TxBuilderFactory:$c}=Es.tx,eo=class{chain;client;poolCtx;txBuilder;getCtx=Pr(async e=>{console.log("init swap router",e,"\u2705");let s=new zc(this.poolCtx);return s.withFilter({useOnly:[bn.Aave,bn.Omni,bn.Stable,bn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new re(this.chain),this.txBuilder=new $c(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,u=await this.getCtx(1),f=await u.getMostLiquidRoute(r,c),l=await u.getBuy(r,c,i,f),C=await(await this.txBuilder.trade(l).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return Sr.Binary.toHex(C)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let u=await i.getMostLiquidRoute(a,r),f=await i.getBuy(a,r,c,u);return{amount:f.amountIn,route:jc.build(f.swaps)}}catch(u){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw u}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,Xr.RUNTIME_DECIMALS);return a/BigInt(r)}};var to=require("@galacticcouncil/common"),so=class{chain;client;constructor(e){this.chain=e,this.client=new ve(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,to.encodeLocation)(o),(0,to.encodeLocation)(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};var Ir=require("@galacticcouncil/xc-core");var Fr=require("@galacticcouncil/xc-core");function xn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new Fr.Asset({key:[o,s,e].join("_"),originSymbol:n})}function _r(t){let{decimals:e,id:s}=t;return{asset:xn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Br(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:xn(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 An=class extends Ir.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=a=>!!s.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=xn(a),c=_r(a),i=Br(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,Js(r)),this.updateChainRoute(s,Zs(r))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
package/build/index.mjs CHANGED
@@ -1 +1 @@
1
- var qa=Object.defineProperty;var qt=(t,e)=>{for(var s in e)qa(t,s,{get:e[s],enumerable:!0})};import{Asset as A}from"@galacticcouncil/xc-core";var ue=new A({key:"aave",originSymbol:"AAVE"}),Le=new A({key:"ajun",originSymbol:"AJUN"}),de=new A({key:"apyusd",originSymbol:"apyUSD"}),I=new A({key:"astr",originSymbol:"ASTR"}),P=new A({key:"bnc",originSymbol:"BNC"}),Hs=new A({key:"bsx",originSymbol:"BSX"}),le=new A({key:"cfg_new",originSymbol:"CFG"}),Te=new A({key:"cru",originSymbol:"CRU"}),Zt=new A({key:"dai",originSymbol:"DAI"}),ze=new A({...Zt,key:"dai_mwh"}),y=new A({key:"dot",originSymbol:"DOT"}),F=new A({key:"eth",originSymbol:"ETH"}),pe=new A({key:"ena",originSymbol:"ENA"}),Ft=new A({key:"eurc",originSymbol:"EURC"}),At=new A({...Ft,key:"eurc_mwh"}),E=new A({key:"glmr",originSymbol:"GLMR"}),q=new A({key:"hdx",originSymbol:"HDX"}),_=new A({key:"ibtc",originSymbol:"IBTC"}),D=new A({key:"intr",originSymbol:"INTR"}),gt=new A({key:"jitoSol",originSymbol:"jitoSOL"}),k=new A({key:"ksm",originSymbol:"KSM"}),fe=new A({key:"ldo",originSymbol:"LDO"}),he=new A({key:"lbtc",originSymbol:"LBTC"}),Ee=new A({key:"ewt",originSymbol:"EWT"}),ye=new A({key:"link",originSymbol:"LINK"}),V=new A({key:"myth",originSymbol:"MYTH"}),He=new A({key:"neuro",originSymbol:"NEURO"}),Pe=new A({key:"pen",originSymbol:"PEN"}),be=new A({key:"paxg",originSymbol:"PAXG"}),wt=new A({key:"prime",originSymbol:"PRIME"}),xe=new A({key:"sky",originSymbol:"SKY"}),Se=new A({key:"sol",originSymbol:"SOL"}),Ct=new A({key:"sui",originSymbol:"SUI"}),Ae=new A({key:"susde",originSymbol:"sUSDe"}),_t=new A({key:"susds",originSymbol:"sUSDS"}),$e=new A({..._t,key:"susds_mwh"}),ge=new A({key:"tbtc",originSymbol:"tBTC"}),we=new A({key:"trac",originSymbol:"TRAC"}),Ve=new A({key:"unq",originSymbol:"UNQ"}),h=new A({key:"usdt",originSymbol:"USDT"}),Je=new A({...h,key:"usdt_mwh"}),Qe=new A({...h,key:"usdt_eth"}),x=new A({key:"usdc",originSymbol:"USDC"}),Ye=new A({...x,key:"usdc_mwh"}),Ze=new A({...x,key:"usdc_eth"}),z=new A({key:"vastr",originSymbol:"vASTR"}),L=new A({key:"vdot",originSymbol:"vDOT"}),Bt=new A({key:"weth",originSymbol:"WETH"}),et=new A({...Bt,key:"weth_mwh"}),It=new A({key:"wbtc",originSymbol:"WBTC"}),tt=new A({...It,key:"wbtc_mwh"}),Ce=new A({key:"wsteth",originSymbol:"wstETH"}),st=new A({key:"wud",originSymbol:"WUD"}),ja=[ue,Le,de,I,Hs,le,Te,P,Zt,ze,y,pe,Ft,At,F,E,q,_,D,k,fe,he,Ee,gt,ye,V,He,be,Pe,wt,xe,Se,Ct,Ae,_t,$e,we,ge,Ve,x,Ye,Ze,h,Je,Qe,z,L,It,tt,Bt,et,Ce,st],za=new Map(ja.map(t=>[t.key,t]));import{ChainEcosystem as $a,EvmChain as Ja,EvmBalanceType as Qa}from"@galacticcouncil/xc-core";import{base as Ya}from"viem/chains";var es=new Ja({id:8453,key:"base",name:"Base",assetsData:[{asset:F,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:Ft,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Qa.Erc20,ecosystem:$a.Ethereum,evmChain:Ya,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{}}});import{ChainEcosystem as Za,EvmChain as er,EvmBalanceType as En}from"@galacticcouncil/xc-core";import{mainnet as tr}from"viem/chains";var v=new er({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:F,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ue,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:de,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:le,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Bt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:Zt,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ae,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:_t,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ge,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:It,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:he,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:fe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:ye,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:be,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:xe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:we,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ce,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:En.Erc20,balanceOverrides:{[F.key]:En.Native},ecosystem:Za.Ethereum,evmChain:tr,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:{}}});var vn=[es,v];import{ChainEcosystem as sr,Parachain as nr,SubstrateBalanceType as or}from"@galacticcouncil/xc-core";var Rt=new nr({assetsData:[{asset:Le,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:or.System,ecosystem:sr.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 ar,Parachain as Tn,SubstrateBalanceType as ts,SubstrateMinType as rr}from"@galacticcouncil/xc-core";var Pn={assetsData:[{asset:y,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:st,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:V,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:k,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:ts.Assets,balanceOverrides:{[y.key]:ts.System,[k.key]:ts.ForeignAssets,[V.key]:ts.ForeignAssets},min:rr.Assets,ecosystem:ar.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 Tn({...Pn,key:"assethub",name:"AssetHub Polkadot"}),at=new Tn({...Pn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as ir,Parachain as cr,SubstrateBalanceType as Xn}from"@galacticcouncil/xc-core";var Y=new cr({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:y,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:P,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:E,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Xn.Assets,balanceOverrides:{[I.key]:Xn.System},ecosystem:ir.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as mr,Parachain as ur,SubstrateBalanceType as Sn}from"@galacticcouncil/xc-core";var dr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],R=new ur({assetsData:[{asset:P,id:{Native:P.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:z,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:E,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Sn.Tokens,balanceOverrides:{[P.key]:Sn.System},ecosystem:mr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:dr});import{ChainEcosystem as lr,Parachain as pr,XcmVersion as fr,SubstrateBalanceType as hr}from"@galacticcouncil/xc-core";var Dt=new pr({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:hr.System,ecosystem:lr.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:fr.v3});import{ChainEcosystem as Ar,EvmParachain as gr,SubstrateBalanceType as _n}from"@galacticcouncil/xc-core";import{defineChain as wr}from"viem";import{h160 as yr}from"@galacticcouncil/common";import{AccountId as br}from"polkadot-api";var{isEvmAccount:xr,H160:Fn}=yr,ss=class{async toH160(e,s){if(xr(e))return Fn.fromAccount(e);let n=Fn.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=br().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(r.subarray(20))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Cr=new ss,Vs=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Ms=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],kr=wr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Vs,webSocket:Ms},default:{http:Vs,webSocket:Ms}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),p=new gr({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:ue,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:Le,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:P,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:le,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Te,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:y,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ze,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:F,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:de,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:pe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:E,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:gt,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:wt,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ee,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:fe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:k,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:he,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ye,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:be,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:V,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:He,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Pe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:xe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Se,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:Ct,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ae,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:_t,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:$e,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ge,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:we,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ve,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:Ye,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:At,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:Ze,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:Je,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Qe,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:L,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:It,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:tt,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Bt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:et,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ce,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:st,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:_n.Tokens,balanceOverrides:{[q.key]:_n.System},ecosystem:Ar.Polkadot,evmChain:kr,evmResolver:Cr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{}},ws:Ms,rpcs:Vs});import{ChainEcosystem as Er,Parachain as vr,XcmVersion as Tr,SubstrateBalanceType as Pr}from"@galacticcouncil/xc-core";var Fe=new vr({assetsData:[{asset:D,decimals:10,id:{Token:D.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:y,decimals:10,id:{Token:y.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:q,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:L,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Pr.Tokens,ecosystem:Er.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Tr.v3});import{ChainEcosystem as Xr,EvmParachain as Sr,EvmBalanceType as Fr,SubstrateBalanceType as _r}from"@galacticcouncil/xc-core";import{defineChain as Br}from"viem";var Ir=Br({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}),N=new Sr({assetsData:[{asset:E,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ze,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:At,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Se,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:gt,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:wt,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:$e,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ct,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ye,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Je,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:tt,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:et,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:y,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:q,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:Fr.Erc20,balanceOverrides:{[E.key]:_r.System},ecosystem:Xr.Polkadot,evmChain:Ir,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 Rr,Parachain as Dr,SubstrateBalanceType as Lr}from"@galacticcouncil/xc-core";var rt=new Dr({assetsData:[{asset:V,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Lr.System,ecosystem:Rr.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 Hr,Parachain as Vr,SubstrateBalanceType as Mr}from"@galacticcouncil/xc-core";var Lt=new Vr({assetsData:[{asset:He,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Mr.System,ecosystem:Hr.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 Or,Parachain as Nr,XcmVersion as Ur,SubstrateBalanceType as Gr}from"@galacticcouncil/xc-core";var Ht=new Nr({assetsData:[{asset:Pe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Gr.System,ecosystem:Or.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Ur.v3});import{ChainEcosystem as Wr,Parachain as Kr,SubstrateBalanceType as qr}from"@galacticcouncil/xc-core";var jr={assetsData:[{asset:y,xcmLocation:{parents:0,interior:"Here"}}],balance:qr.System,ecosystem:Wr.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"},Bn=new Kr({...jr,key:"polkadot"});import{ChainEcosystem as zr,Parachain as $r,SubstrateBalanceType as Jr}from"@galacticcouncil/xc-core";var Vt=new $r({assetsData:[{asset:Ve,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Jr.System,ecosystem:zr.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 Qr,Parachain as Yr,XcmVersion as Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Mt=new Yr({assetsData:[{asset:Ee,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:ei.System,ecosystem:Qr.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:Zr.v3});var In=[Rt,w,at,Y,R,Dt,p,Lt,Fe,N,rt,Ht,Bn,Vt,Mt];import{ChainEcosystem as ti,SolanaChain as si,SolanaBalanceType as Rn}from"@galacticcouncil/xc-core";var ns=new si({id:101,key:"solana",name:"Solana",assetsData:[{asset:Se,decimals:9},{asset:gt,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:wt,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Rn.Token,balanceOverrides:{[Se.key]:Rn.Native},ecosystem:ti.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:{},platformAddressFormat:"base58"}});var Dn=[ns];import{ChainEcosystem as ni,SuiChain as oi,SuiBalanceType as ai}from"@galacticcouncil/xc-core";var os=new oi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:Ct,decimals:9}],balance:ai.Native,ecosystem:ni.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var Ln=[os];import{ChainEcosystem as ri,Parachain as ii,SubstrateBalanceType as Hn,SubstrateMinType as ci}from"@galacticcouncil/xc-core";var Me=new ii({assetsData:[{asset:k,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Hn.Assets,balanceOverrides:{[k.key]:Hn.System},min:ci.Assets,ecosystem:ri.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 mi,Parachain as ui,SubstrateBalanceType as di}from"@galacticcouncil/xc-core";var Ot=new ui({assetsData:[{asset:Hs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:k,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:di.Tokens,ecosystem:mi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Vn=[Me,Ot];var li=[...vn,...In,...Dn,...Ln,...Vn],pi=new Map(li.map(t=>[t.key,t]));import{ChainRoutes as P0}from"@galacticcouncil/xc-core";import{AssetRoute as T0}from"@galacticcouncil/xc-core";var Zo={};qt(Zo,{ContractBuilder:()=>Z,ExtrinsicBuilder:()=>u,ExtrinsicDecorator:()=>nt,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>$t,XcmTransferType:()=>Xe,XcmVersion:()=>Ke});import{Abi as Mn,ContractConfig as fi,Precompile as hi}from"@galacticcouncil/xc-core";import{encodeFunctionData as yi}from"viem";var bi=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=>yi({abi:Mn[r.module],functionName:r.func,args:r.args}));return new fi({abi:Mn.Batch,address:hi.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),On=()=>({batchAll:bi});import{Abi as xi,ContractConfig as Ai,Wormhole as gi}from"@galacticcouncil/xc-core";function $(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function kt(t){return typeof t=="object"?Object.values(t)[0]:t}function Nn(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=gi.fromChain(r),i=r.getAssetId(n);return new Ai({abi:xi.Erc20,address:kt(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as wi,Basejump as Ci,ContractConfig as ki}from"@galacticcouncil/xc-core";import{h160 as Ei}from"@galacticcouncil/common";import{AccountId as vi}from"polkadot-api";import{toHex as Ti}from"@polkadot-api/utils";var{H160:Pi,isEvmAddress:Xi}=Ei;function Si(t){let e=Xi(t)?Pi.toAccount(t):t;return Ti(vi().enc(e))}var Fi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Ci.fromChain(a),c=a.getAssetId(n);return new ki({abi:wi.Basejump,address:r.getAddress(),args:[kt(c),s,Si(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Un=()=>({bridgeViaWormhole:Fi});import{addr as _i,Abi as Gn,ContractConfig as Wn,Precompile as Kn}from"@galacticcouncil/xc-core";import{big as Bi}from"@galacticcouncil/common";var{Ss58Addr:qn}=_i;function Ii(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 Os(t,e){let s=t.getAssetId(e);return typeof s=="string"?Ii(s):s}function jn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Os(o.chain,s);return new Wn({abi:Gn.PolkadotXcm,address:Kn.PolkadotXcm,args:[n.chain.parachainId,qn.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=Os(o.chain,s),r=Os(o.chain,o.destinationFeeBalance),c=Bi.toBigInt(n.fee.amount,n.fee.decimals);return new Wn({abi:Gn.PolkadotXcm,address:Kn.PolkadotXcm,args:[n.chain.parachainId,qn.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Oi,Abi as eo,ContractConfig as to,Snowbridge as so}from"@galacticcouncil/xc-core";import{XcmV5Junctions as Ni,XcmV5Junction as Ui,XcmVersionedXcm as Gi,XcmVersionedLocation as Wi}from"@galacticcouncil/descriptors";import{Blake2256 as Ki}from"@polkadot-api/substrate-bindings";import{toHex as qs}from"@polkadot-api/utils";import{encodeAbiParameters as qi}from"viem";import{codec as Ri}from"@galacticcouncil/xc-core";var as=null;async function zn(){if(as)return as;let t=await Ri.getHubCodecs();return as={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},as}import{multiloc as Li}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as ke,XcmV5AssetFilter as se,XcmV5Instruction as X,XcmV5Junctions as ct,XcmV5Junction as We,XcmV5NetworkId as Ns,XcmV5WildAsset as Ge,XcmVersionedXcm as Hi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Vi}from"@polkadot-api/substrate-bindings";import{toHex as Mi}from"@polkadot-api/utils";import{XcmV3Junctions as Di}from"@galacticcouncil/descriptors";var J=340282366920938463463374607431768211455n,Oe="0x0000000000000000000000000000000000000000000000000000000000000000",j={parents:1,interior:Di.Here()},$n=0,it=1e3,rs=1002,_e=1,Et="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Jn="0x0000000000000000000000000000000000000000000000000000000000000000",Qn="0x0000000000000000000000000000000000000000";var Us="0x0000000000000000000000000000000000000000",Nt=t=>({parents:2,interior:ct.X1(We.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(t)})))}),Gs=(t,e)=>({parents:2,interior:ct.X2([We.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(t)})),We.AccountKey20({key:e,network:void 0})])});function Yn(t,e){let s=Nt(t),n=Gs(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[X.ReserveAssetDeposited([{id:s,fun:ke.Fungible(o)},{id:n,fun:ke.Fungible(o)}]),X.ExchangeAsset({give:se.Wild(Ge.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:j,fun:ke.Fungible(a)}],maximal:!1}),X.PayFees({asset:{id:j,fun:ke.Fungible(a)}})],c=Ws({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 Ws(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Nt(e),m=n===Us?i:Gs(e,n),d=o.length===42&&o.startsWith("0x")?We.AccountKey20({key:o,network:void 0}):We.AccountId32({id:o,network:void 0}),f={parents:0,interior:ct.X1(d)};return[X.SetAppendix([X.RefundSurplus(),X.DepositAsset({assets:se.Wild(Ge.All()),beneficiary:f})]),X.ExchangeAsset({give:se.Wild(Ge.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:j,fun:ke.Fungible(r)}],maximal:!1}),X.InitiateTransfer({destination:{parents:1,interior:ct.X1(We.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:se.Definite([{id:j,fun:ke.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:se.Definite([{id:m,fun:ke.Fungible(a)}])}],remote_xcm:[X.DepositAsset({assets:se.Wild(Ge.AllCounted(3)),beneficiary:f}),X.SetTopic(c)]}),X.RefundSurplus(),X.DepositAsset({assets:se.Wild(Ge.All()),beneficiary:f}),X.SetTopic(c)]}function Ks(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=Nt(_e),d=e===Us?l:Gs(_e,e),f={parents:0,interior:ct.X1(We.AccountId32({id:s,network:void 0}))},b={parents:0,interior:ct.X1(We.AccountKey20({key:n,network:void 0}))},g={parents:2,interior:ct.X1(We.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(_e)})))},T=[X.DepositAsset({assets:se.Wild(Ge.AllCounted(3)),beneficiary:b}),X.SetTopic(m)],S=[X.SetAppendix([X.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),X.RefundSurplus(),X.DepositAsset({assets:se.Wild(Ge.All()),beneficiary:f})])];S.push(X.ExchangeAsset({give:se.Definite([{id:j,fun:ke.Fungible(c)}]),want:[{id:l,fun:ke.Fungible(i)}],maximal:!1}));let B=[{type:"ReserveWithdraw",value:se.Wild(Ge.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))}],G=se.Definite([{id:l,fun:ke.Fungible(i)}]);S.push(X.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:G},preserve_origin:!0,assets:B,remote_xcm:T}),X.SetTopic(m));let Q=a+r+c,me=[{id:j,fun:ke.Fungible(Q)},{id:d,fun:ke.Fungible(o)}],Re=[{id:j,fun:ke.Fungible(a)}],Ue={type:"ReserveWithdraw",value:se.Wild(Ge.AllOf({id:d,fun:{type:"Fungible",value:void 0}}))},De=[{type:"ReserveWithdraw",value:se.Definite([{id:j,fun:ke.Fungible(c)}])},Ue];return[X.WithdrawAsset(me),X.PayFees({asset:Re[0]}),X.SetAppendix([X.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),X.RefundSurplus(),X.DepositAsset({assets:se.Wild(Ge.All()),beneficiary:f})]),X.InitiateTransfer({destination:{parents:1,interior:ct.X1(We.Parachain(it))},remote_fees:{type:"ReserveWithdraw",value:se.Definite([{id:j,fun:ke.Fungible(r)}])},preserve_origin:!0,assets:De,remote_xcm:S}),X.SetTopic(m)]}function Zn(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Vi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=Mi(m.publicKey),d=i.getAssetXcmLocation(n),f=d?Li.findNestedKey(d,"key"):void 0,b=f?f.key:Us,g=r.feeBreakdown,T=g.sourceExecutionFee??0n,S=g.dotRemoteFee??0n,B=g.dotToEtherSwapAmount??0n,G=g.etherFeeAmount??0n,me=Ks({tokenAddress:b,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:T,dotRemoteFee:S,dotToEtherSwapAmount:B,etherFeeAmount:G,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Hi.V5(me)}var{Ss58Addr:no}=Oi,ji="0x0000000000000000000000000000000000000000",zi=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=so.fromChain(c),l=c.getAssetId(n),d=kt(l),f=n.originSymbol==="ETH",b=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,T=r.feeBreakdown.hydrationDotFee,S=r.fee.amount,B=no.getPubKey(e),G=new TextEncoder().encode(`${i.parachainId}${o}${d}${B}${s}${Date.now()}`),Q=qs(Ki(G)),me=Ws({ethChainId:_e,destinationParaId:i.parachainId,tokenAddress:f?ji:d,beneficiaryHex:B,tokenAmount:s,hydrationDotFee:T,topic:Q}),Re=await zn(),Ue=qs(Re.message.enc(Gi.V5(me))),De=[];f||De.push(qi([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,d,s]));let St=Re.location.enc(Wi.V5({parents:0,interior:Ni.X1(Ui.AccountId32({id:B,network:void 0}))})),xt=qs(St.slice(1));return new to({abi:eo.Snowbridge,address:m.getGateway(),args:[Ue,De,xt,b,g],value:f?S+s:S,func:"v2_sendMessage",module:"Snowbridge"})}}),$i=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=so.fromChain(r),m=r.getAssetId(n),l=kt(m),d=n.originSymbol==="ETH",f=a.feeBreakdown.bridgeFeeInDot,b=a.fee.amount;return new to({abi:eo.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,no.getPubKey(e)],f,s],value:d?b+s:b,func:"sendToken",module:"Snowbridge"})}}),oo=()=>({v2SendMessage:zi,sendToken:$i});import{Abi as ao,ContractConfig as Ji,EvmParachain as Qi,Ntt as Yi,Wormhole as Zi}from"@galacticcouncil/xc-core";var ec="0x00",ro=8,tc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=Yi.fromChain(r,n),m=Zi.fromChain(c),l=e;c instanceof Qi&&(l=await c.getDerivatedAddress(e));let d=r,f=await d.evmClient.getProvider().readContract({abi:ao.NttManager,address:i.manager,args:[m.getWormholeId(),ec],functionName:"quoteDeliveryPrice"}),b=d.getAssetDecimals(n)??0,g=s;if(b>ro){let T=10n**BigInt(b-ro);g=s-s%T}return new Ji({abi:ao.NttManager,address:i.manager,args:[g,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,value:f[1],func:"transfer",module:"NttManager"})}}),io=()=>({transfer:tc});function co(){return{Ntt:io}}function Z(){return{Batch:On,Erc20:Nn,Basejump:Un,PolkadotXcm:jn,Snowbridge:oo,Wormhole:co}}import{encodeLocation as mo}from"@galacticcouncil/common";import{ExtrinsicConfig as sc}from"@galacticcouncil/xc-core";var uo="AssetConversion",nc=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=mo(i.getAssetXcmLocation(r)),l=mo(i.getAssetXcmLocation(c)),d=r.amount+r.amount*BigInt(t.slippage)/100n,f=c.amount;return new sc({module:uo,func:e,getTx:b=>b.getUnsafeApi().tx[uo][e]({path:[m,l],amount_out:f,amount_in_max:d,send_to:s,keep_alive:!0})})}}},lo=()=>({swapTokensForExactTokens:nc});import{hub as oc,MultiAddress as ac}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as rc}from"@galacticcouncil/xc-core";var ic="Assets",cc=()=>{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 rc({module:ic,func:t,getTx:m=>m.getTypedApi(oc).tx.Assets.transfer({id:Number(i),target:ac.Id(n),amount:c})})}}},po=()=>({transfer:cc});import{ExtrinsicConfig as mc}from"@galacticcouncil/xc-core";var fo="Balances",uc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new mc({module:fo,func:e,getTx:n=>n.getUnsafeApi().tx[fo][e]({dest:s,keep_alive:t})})}},ho=()=>({transferAll:uc});import{hydration as dc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as lc}from"@galacticcouncil/xc-core";var pc="Router",fc=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),d=r.amount,f=a.amount+a.amount*BigInt(t.slippage)/100n;return new lc({module:pc,func:"buy",getTx:b=>b.getTypedApi(dc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:d,max_amount_in:f,route:c})})}}),yo=()=>({buy:fc});import{ExtrinsicConfig as hc}from"@galacticcouncil/xc-core";var bo="Utility",yc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new hc({module:bo,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[bo][e]({calls:a})}})}}},xo=()=>({batchAll:yc});import{Abi as bc,ExtrinsicConfig as xc}from"@galacticcouncil/xc-core";import{Binary as Ac}from"polkadot-api";import{encodeFunctionData as gc}from"viem";var Ke=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(Ke||{}),Xe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Xe||{});var Ao="EthereumXcm",wc=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=gc({abi:bc[n.module],functionName:n.func,args:n.args});return new xc({module:Ao,func:e,getTx:r=>r.getUnsafeApi().tx[Ao][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:Ac.fromHex(a),access_list:void 0}}})})}}},js=()=>({transact:wc});import{ExtrinsicConfig as pt}from"@galacticcouncil/xc-core";import{big as ps}from"@galacticcouncil/common";import{multiloc as Bo,ChainEcosystem as an}from"@galacticcouncil/xc-core";import{XcmV3Junctions as ne,XcmV3Junction as vt,XcmV3JunctionNetworkId as Fo,XcmV3MultiassetFungibility as mt,XcmV4Instruction as H,XcmV4AssetAssetFilter as ut,XcmV4AssetWildAsset as dt,XcmV3WeightLimit as ls,XcmV2MultiassetWildFungibility as Kc,XcmV2OriginKind as qc}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Dc,XcmV3MultiassetFungibility as $s,XcmV3WeightLimit as Lc,XcmV4AssetAssetFilter as Hc,XcmV4AssetWildAsset as Vc,XcmV4Instruction as jt}from"@galacticcouncil/descriptors";import{acc as Cc}from"@galacticcouncil/common";import{XcmV3Junction as go}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as kc}from"@polkadot-api/substrate-bindings";import{toHex as Ec}from"@polkadot-api/utils";function W(t){if(t.length===42&&t.startsWith("0x"))return go.AccountKey20({key:t,network:void 0});let s=kc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return go.AccountId32({id:Ec(s.publicKey),network:void 0})}function Ut(t,e,s){return Cc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as wo}from"@galacticcouncil/xc-core";function Co(t,e){let s=wo.findNestedKey(t,"GeneralIndex"),n=wo.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function M(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ms={};qt(ms,{ETHER_TOKEN_ADDRESS:()=>zs,erc20Location:()=>Pc,erc20LocationReanchored:()=>Xc,ethereumLocation:()=>Eo,parachainLocation:()=>Tc});import{XcmV3Junctions as is,XcmV3Junction as cs,XcmV3JunctionNetworkId as vc}from"@galacticcouncil/descriptors";var zs="0x0000000000000000000000000000000000000000",ko=t=>cs.GlobalConsensus(vc.Ethereum({chain_id:BigInt(t)}));function Eo(t){return{parents:2,interior:is.X1(ko(t))}}function Tc(t){return{parents:1,interior:is.X1(cs.Parachain(t))}}function Pc(t,e){return e===zs?Eo(t):{parents:2,interior:is.X2([ko(t),cs.AccountKey20({key:e})])}}function Xc(t){return t===zs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:is.X1(cs.AccountKey20({key:t}))}}import{encodeLocation as vo}from"@galacticcouncil/common";import{multiloc as Sc}from"@galacticcouncil/xc-core";function U(t,e){return Fc(e)>=4?vo(t):_c(t)}function Fc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function _c(t){return{type:"Concrete",value:vo(t)}}var Bc=1e3;function Ic(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 Rc(t){if(t)return Ic(t)?Bc:Sc.findParachain(t)}function To(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Rc(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 us(t,e){let s="V4",n=U(M(e,t),s),o=Oe;return[jt.ReserveAssetDeposited([{id:j,fun:$s.Fungible(J)},{id:n,fun:$s.Fungible(J)}]),jt.ClearOrigin(),jt.BuyExecution({fees:{id:j,fun:$s.Fungible(J)},weight_limit:Lc.Unlimited()}),jt.DepositAsset({assets:Hc.Wild(Vc.AllCounted(2)),beneficiary:{parents:0,interior:Dc.X1(W(Et))}}),jt.SetTopic(o)]}import{XcmV4Instruction as Js,XcmV3MultiassetFungibility as Qs,XcmV3WeightLimit as Mc}from"@galacticcouncil/descriptors";function Ys(t,e){let s="V4",n=U(M(e,t),s),o=ds("V4",W(Qn),W(Et),n,Oe);return[Js.WithdrawAsset([{id:j,fun:Qs.Fungible(J)},{id:n,fun:Qs.Fungible(J)}]),Js.ClearOrigin(),Js.BuyExecution({fees:{id:j,fun:Qs.Fungible(J)},weight_limit:Mc.Unlimited()}),...o.value]}import{XcmV3Junctions as Zs,XcmV3Junction as Oc,XcmV3MultiassetFungibility as zt,XcmV3WeightLimit as en,XcmV4AssetAssetFilter as tn,XcmV4AssetWildAsset as sn,XcmV4Instruction as Be}from"@galacticcouncil/descriptors";function Po(t,e){let s="V4",n=U(M(e,t),s),o=Oe;return[Be.WithdrawAsset([{id:n,fun:zt.Fungible(J)}]),Be.ClearOrigin(),Be.BuyExecution({fees:{id:n,fun:zt.Fungible(J)},weight_limit:en.Unlimited()}),Be.DepositAsset({assets:tn.Wild(sn.AllCounted(1)),beneficiary:{parents:0,interior:Zs.X1(W(Et))}}),Be.SetTopic(o)]}function nn(t,e){let s="V4",n=U(M(e,t),s);return[Be.BuyExecution({fees:{id:n,fun:zt.Fungible(J)},weight_limit:en.Unlimited()}),Be.DepositAsset({assets:tn.Wild(sn.AllCounted(1)),beneficiary:{parents:0,interior:Zs.X1(W(Et))}})]}function Xo(t,e,s){let n="V4",o=U(M(e,t),n),a=Oe,r=nn(t,s);return[Be.WithdrawAsset([{id:o,fun:zt.Fungible(J)}]),Be.ClearOrigin(),Be.BuyExecution({fees:{id:o,fun:zt.Fungible(J)},weight_limit:en.Unlimited()}),Be.DepositReserveAsset({assets:tn.Wild(sn.AllCounted(1)),dest:{parents:1,interior:Zs.X1(Oc.Parachain(s.parachainId))},xcm:r}),Be.SetTopic(a)]}import{XcmV3MultiassetFungibility as on,XcmV5AssetFilter as Nc,XcmV5Instruction as Gt,XcmV5Junctions as Uc,XcmV5Junction as Gc,XcmV5WildAsset as Wc}from"@galacticcouncil/descriptors";function So(t,e){let s="V5",n=U(M(e,t),s),o={parents:0,interior:Uc.X1(Gc.AccountId32({id:Jn,network:void 0}))};return[Gt.ReserveAssetDeposited([{id:j,fun:on.Fungible(J)}]),Gt.PayFees({asset:{id:j,fun:on.Fungible(J)}}),Gt.ReserveAssetDeposited([{id:n,fun:on.Fungible(J)}]),Gt.ClearOrigin(),Gt.DepositAsset({assets:Nc.Wild(Wc.AllCounted(3)),beneficiary:o}),Gt.SetTopic(Oe)]}var _o=[an.Polkadot,an.Kusama],jc={parents:1,interior:ne.X1(vt.Parachain(1e3))},zc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Io=(t,e)=>!t.ecosystem||!e.ecosystem?!1:_o.includes(t.ecosystem)&&_o.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ro=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let s=e.value[0];return s.type==="GlobalConsensus"&&s.value.type==="Ethereum"}return!1},qe=(t,e,s)=>{if(Io(e,s))return{type:t,value:rn(s.ecosystem,s.parachainId)};if(s.parachainId===$n)return{type:t,value:{parents:1,interior:ne.Here()}};let n=s.key==="ethereum"?it:s.parachainId;return{type:t,value:{parents:1,interior:ne.X1(vt.Parachain(n))}}},$c=t=>t===an.Kusama?Fo.Kusama():Fo.Polkadot(),rn=(t,e)=>({parents:2,interior:ne.X2([vt.GlobalConsensus($c(t)),vt.Parachain(e)])}),Do=(t,e,s,n)=>{if(Io(e,s)){if(e.parachainId!==it){let o=Bo.findGlobalConsensus(M(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:ne.X1(vt.Parachain(it))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==it)return{dest:{type:t,value:rn(s.ecosystem,it)},mode:"onward"}}},Tt=(t,e)=>({type:t,value:{parents:0,interior:ne.X1(e)}}),cn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:zc(s)?jc:s}}:{type:e},lt=(t,e)=>({id:t,fun:mt.Fungible(e)}),Lo=(t,e,s)=>({type:t,value:[H.DepositAsset({assets:ut.Wild(dt.AllCounted(s)),beneficiary:{parents:0,interior:ne.X1(e)}})]}),ds=(t,e,s,n,o)=>{let a=o;return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:ut.Wild(dt.All()),beneficiary:{parents:0,interior:ne.X1(s)}})]),H.InitiateReserveWithdraw({assets:ut.Wild(dt.AllOf({id:n,fun:Kc.Fungible()})),reserve:ms.ethereumLocation(_e),xcm:[H.BuyExecution({fees:{id:Jc(n),fun:mt.Fungible(1n)},weight_limit:ls.Unlimited()}),H.DepositAsset({assets:ut.Wild(dt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}}),H.SetTopic(a)]}),H.SetTopic(a)]}},Ho=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:ne.X1(vt.Parachain(s.parachainId))}:rn(s.ecosystem,s.parachainId),c={parents:0,interior:ne.X1(e)},i=ut.Wild(dt.AllCounted(1)),m=[H.BuyExecution({fees:{id:o,fun:mt.Fungible(a)},weight_limit:ls.Unlimited()}),H.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?H.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):H.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:ut.Wild(dt.All()),beneficiary:c})]),l]}},Jc=t=>{let e=Bo.findNestedKey(t,"key");return e?{parents:0,interior:ne.X1(vt.AccountKey20({key:e.key}))}:{parents:0,interior:ne.Here()}},Vo=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:mt.Fungible(n)}]),H.BuyExecution({fees:{id:s,fun:mt.Fungible(n)},weight_limit:ls.Unlimited()}),H.Transact({origin_kind:qc.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),H.RefundSurplus(),H.DepositAsset({assets:ut.Wild(dt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}})]}),Mo=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:mt.Fungible(o)}]),H.BuyExecution({fees:{id:s,fun:mt.Fungible(o)},weight_limit:ls.Unlimited()}),H.TransferAsset({assets:[{id:s,fun:mt.Fungible(n)}],beneficiary:{parents:0,interior:ne.X1(a)}}),H.RefundSurplus(),H.DepositAsset({assets:ut.Wild(dt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}})]});var oe="PolkadotXcm",Qc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=W(t),r=o.chain,c=n.chain,i="V4",m=M(r,s),l=M(r,n.fee),d=U(m,i),f=U(l,i),b=lt(d,e),g=lt(f,n.fee.amount),T="limited_reserve_transfer_assets";return new pt({module:oe,func:T,getTx:S=>{let B=S.getUnsafeApi().tx[oe][T];return s.key===n.fee.key?B({dest:qe(i,r,c),beneficiary:Tt(i,a),assets:{type:i,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Co(m,l)?B({dest:qe(i,r,c),beneficiary:Tt(i,a),assets:{type:i,value:[g,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):B({dest:qe(i,r,c),beneficiary:Tt(i,a),assets:{type:i,value:[b,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),Yc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=W(t),r=o.chain,c=n.chain,i="V4",m=U(M(r,s),i),l=lt(m,e),d=qe(i,r,c),f=Tt(i,a),b={type:i,value:[l]},g="limited_teleport_assets";return new pt({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:d,beneficiary:f,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Zc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=W(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=U(M(r,s),i),l=lt(m,e),d=qe(i,r,c),f=Tt(i,a),b={type:i,value:[l]},g="reserve_transfer_assets";return new pt({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:d,beneficiary:f,assets:b,fee_asset_item:0})})}}),e0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=W(t),r=o.chain,c=n.chain,i="V4",m=U(M(r,s),i),l=lt(m,e),d=qe(i,r,c),f=Tt(i,a),b={type:i,value:[l]},g="transfer_assets";return new pt({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:d,beneficiary:f,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),t0=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,d=o.chain,f=o.fee.amount,b=o.fee;i&&(d=i.chain,f=ps.toBigInt(i.fee.amount,i.fee.decimals),b=i.fee);let g=W(r),T=i||d.usesCexForwarding?Ut(l,r,d):e,S=W(T),{transferType:B}=t,G=U(M(l,s),m),Q=U(M(l,b),m),me=lt(G,n),Re=lt(Q,f),Ue=s.isEqual(b),De=Do(m,l,d,s),St=De?.dest??qe(m,l,d),xt={type:m,value:Ue?[me]:[Re,me]},Cn=cn(m,B,G),Ga={type:m,value:Ue?G:Q},Wa=cn(m,B,Q),Yt;if(Ro(G)&&o.chain.isEvmChain())Yt=ds(m,S,g,G,a);else if(De){let Ls=ps.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Ka=U(M(d,s),m);Yt=Ho(m,S,d,De.mode,Ka,Ls)}else Yt=Lo(m,S,xt.value.length);let kn="transfer_assets_using_type_and_then";return new pt({module:oe,func:kn,getTx:Ls=>Ls.getUnsafeApi().tx[oe][kn]({dest:St,assets:xt,assets_transfer_type:Cn,remote_fees_id:Ga,fees_transfer_type:Wa,custom_xcm_on_dest:Yt,weight_limit:{type:"Unlimited"}})})}}),s0=()=>{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=Ut(c,n,i),l=W(m),{fee:d}=a,f=U(M(i,d),r),b=ps.toBigInt(e.fee,d.decimals);return new pt({module:oe,func:t,getTx:g=>g.getUnsafeApi().tx[oe][t]({dest:qe(r,c,i),message:Vo(r,l,f,b,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,m="V4",l=c.chain,d=i.chain,f=Ut(l,r,d),b=W(f),g=W(o),T=U(M(d,a),m),{fee:S}=i,B=ps.toBigInt(e.fee,S.decimals),G=n>S.amount?n-(S.amount+B):n;return new pt({module:oe,func:t,getTx:Q=>Q.getUnsafeApi().tx[oe][t]({dest:qe(m,l,d),message:Mo(m,b,T,G,B,g)})})}})}};function n0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new pt({module:oe,func:a,getTx:r=>r.getUnsafeApi().tx[oe][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Zn)}}var mn=()=>({limitedReserveTransferAssets:Qc,limitedTeleportAssets:Yc,reserveTransferAssets:Zc,transferAssets:e0,transferAssetsUsingTypeAndThen:t0,execute:n0,send:s0});import{ExtrinsicConfig as a0}from"@galacticcouncil/xc-core";import{encodeAssetId as r0}from"@galacticcouncil/common";import{XcmV3Junctions as Oo,XcmV3Junction as o0}from"@galacticcouncil/descriptors";var No=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:Oo.X1(s)}}:{type:t,value:{parents:1,interior:Oo.X2([o0.Parachain(e.parachainId),s])}};var Uo="XTokens",i0=()=>({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?Ut(r,o,c):t,l=W(m),d=r.getAssetId(s),f=r0(d),b="transfer";return new a0({module:Uo,func:b,getTx:g=>g.getUnsafeApi().tx[Uo][b]({currency_id:f,amount:e,dest:No(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),un=()=>({transfer:i0});function u(){return{assetConversion:lo,assets:po,balances:ho,ethereumXcm:js,polkadotXcm:mn,router:yo,utility:xo,xTokens:un}}function nt(t,e){return{prior:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?u().utility().batchAll([e,...s]).build(n):u().utility().batchAll([...s]).build(n)}}}}import{Abi as Yo,Snowbridge as x0,Basejump as A0}from"@galacticcouncil/xc-core";var Go=80000n,Wo=120000n,Ko=100000n,qo=2000000n,dn=15000000000000n;var Qo={};qt(Qo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>$o,AssethubClient:()=>ve,BaseClient:()=>Ie,HydrationClient:()=>ae,getAllAssetDepositLimits:()=>pn,getAssetDepositLimit:()=>ln,getGlobalWithdrawLimit:()=>fn});import{encodeLocation as jo}from"@galacticcouncil/common";import{hub as c0,XcmVersionedAssetId as zo}from"@galacticcouncil/descriptors";var Ie=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??c0}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=jo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,zo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!n.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let a=jo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,zo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as fs,XcmV5Junction as m0,XcmVersionedLocation as u0,XcmVersionedXcm as d0,XcmVersionedAssetId as l0}from"@galacticcouncil/descriptors";import{encodeLocation as p0}from"@galacticcouncil/common";import{Twox128 as f0,u128 as h0}from"@polkadot-api/substrate-bindings";import{toHex as y0}from"@polkadot-api/utils";var ve=class extends Ie{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=p0(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=y0(f0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=h0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=u0.V5({parents:1,interior:fs.X1(m0.Parachain(s))}),o=l0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,d0.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:fs.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:fs.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:fs.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 b0}from"@galacticcouncil/descriptors";var $o=14400;function Jo(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,d,f;s&&(s.type==="Locked"?(l=s.value,m=o<s.value):(d=s.value[0],f=s.value[1]));let b=n?.type==="Local"?"Local":"External",g=!m&&d!==void 0&&d+$o<=o,T=null;if(r!==null)if(m)T=0n;else if(g)T=r;else{let S=f??a,B=a>S?a-S:0n;T=r>B?r-B:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:d,baselineIssuance:f,currentIssuance:a,headroom:T,category:b,periodExpired:g}}async function ln(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 Jo(e,n,o,a,r,c)}async function pn(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])),l=new Map;for(let d of e){let f=d.keyArgs[0],b=d.value;if(b?.xcm_rate_limit==null)continue;let g=f===0?a:m.get(f)??0n,T=Jo(f,b,c.get(f),i.get(f),o,g);l.set(f.toString(),T)}return l}async function fn(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,d=c;if(!r&&l>0n){let b=o>i?o-i:0n;if(b>0n){let g=b>l?l:b,T=c*g/l;d=c>T?c-T:0n}}let f=r||d>=m?0n:m-d;return{configured:!0,limit:m,windowMs:l,used:d,lastUpdateMs:i,headroom:f,lockdown:r,lockdownUntilMs:a}}var ae=class extends Ie{constructor(e){super(e,b0)}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 ln(this.api(),s)}getAllAssetDepositLimits(){return pn(this.api())}getGlobalWithdrawLimit(){return fn(this.api())}};function g0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ae(n),a=new ve(t.hub),r=us(e,n),c=So(e,n),i=Nt(_e),m=250000000n,l=Yn(_e,n.parachainId),[d,f,b,g]=await Promise.all([o.calculateDestinationFeeV5(c,y),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,rs),a.calculateDestinationFeeV5(l,y)]),T=$(d,33n),S=$(f,33n),B=$(b,33n),Q=$(g,33n)+S,me=T,Re=await a.quoteEtherForDot(i,Q),Ue=$(Re,30n),De=Ue<dn*2n?dn*2n:Ue,St=$(await a.quoteEtherForDot(i,me),100n),xt=$(await a.quoteDotToEther(i,m+B),30n);return{amount:De+xt+St,breakdown:{executionFee:De,relayerFee:xt,remoteEtherFee:St,hydrationDotFee:me}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new ve(t.hub),i=Nt(_e),m=Ys(e,a),[l,d,f]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,rs),c.calculateDestinationFee(m,s)]),b=await r.evmClient.getProvider().getGasPrice(),g=qo+Wo+Go+Ko,T=b*g,S=$(T,10n),B=l+$(d,33n)+$(f,33n),G=$(await c.quoteDotForExactEther(i,S),20n),Q=new ae(a),me=Ks({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Oe}),Re=$(await Q.calculateDestinationFeeV5(me,y),33n);return{amount:B+G+Re,breakdown:{dotRemoteFee:B,dotToEtherSwapAmount:G,etherFeeAmount:S,sourceExecutionFee:Re}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=x0.fromChain(o),c=new Ie(a),i=new ve(t.hub),m=us(e,a),[l,d]=await Promise.all([c.calculateDestinationFee(m,y),i.calculateDeliveryFee(m,a.parachainId)]),f=d+$(l,25n),b=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Yo.Snowbridge,address:r.getGateway(),args:[b,a.parachainId,f],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:f}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new ve(t.hub),r=Ys(e,o),c=us(e,o),[i,m,l,d,f]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,rs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+$(l,25n)+d+$(f,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:d,returnToSenderDestinationFee:f}}}})}}function w0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(To(e,o,a,r),r){let f=new Ie(a),b=new Ie(r),g=nn(e,a),T=Xo(e,r,a),[S,B]=await Promise.all([f.calculateDestinationFee(g,e),b.calculateDestinationFee(T,e)]),G=B+S,Q=$(G,20n),me=Q-G;return{amount:Q,breakdown:{reserveFee:B,destinationFee:S,margin:me}}}let c=new Ie(a),i=Po(e,a),m=await c.calculateDestinationFee(i,e),l=$(m,20n),d=l-m;return{amount:l,breakdown:{totalFee:m,margin:d}}}})}}function C0(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let s=e,n=A0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Yo.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:C0,XcmPaymentApi:w0,Snowbridge:g0}}var k0="0";function E0(){return{build:async({address:t,chain:e})=>{let n=await new ae(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():k0,a=e.findAssetById(o);return a?a.asset:q}}}var v0=()=>({accountCurrencyMap:E0});function $t(){return{multiTransactionPayment:v0}}var ea={};qt(ea,{Tag:()=>Wt});var Wt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Wt||{});function ta(t,e){return new T0({source:{asset:t,fee:{asset:F},destinationFee:t},destination:{chain:p,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:Z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var X0=[ta(Ft,At)],sa=new P0({chain:es,routes:[...X0]});import{AssetRoute as oa,ChainRoutes as S0}from"@galacticcouncil/xc-core";import{AssetRoute as na}from"@galacticcouncil/xc-core";function re(t,e){return new na({source:{asset:t,fee:{asset:F}},destination:{chain:p,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:F}},contract:Z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ie(t,e){return new na({source:{asset:t,fee:{asset:F}},destination:{chain:p,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:F}},contract:Z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var F0=[new oa({source:{asset:F,fee:{asset:F}},destination:{chain:p,asset:F,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:F}},contract:Z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),re(ue,ue),re(de,de),re(le,le),re(pe,pe),re(be,be),re(Ae,Ae),re(ge,ge),re(he,he),re(fe,fe),re(ye,ye),re(xe,xe),re(we,we),re(Ce,Ce),re(x,Ze),re(h,Qe)],_0=[new oa({source:{asset:F,fee:{asset:F}},destination:{chain:p,asset:F,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:F}},contract:Z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ie(ue,ue),ie(de,de),ie(le,le),ie(pe,pe),ie(be,be),ie(Ae,Ae),ie(ge,ge),ie(he,he),ie(fe,fe),ie(ye,ye),ie(xe,xe),ie(we,we),ie(Ce,Ce),ie(x,Ze),ie(h,Qe)],aa=new S0({chain:v,routes:[...F0,..._0]});var ra=[sa,aa];import{AssetRoute as bs,ChainRoutes as ca}from"@galacticcouncil/xc-core";import{AssetRoute as hn}from"@galacticcouncil/xc-core";var Pt=0,B0=t=>{let{source:e}=t;return!!e.feeSwap},I0=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ia=u().assetConversion().swapTokensForExactTokens({slippage:30});function R0(t,e,s){return new hn({source:{asset:t,fee:{asset:y,extra:Pt}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:nt(I0,ia).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function hs(t,e,s){return new hn({source:{asset:t,fee:{asset:t,swap:!t.isEqual(y)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:nt(B0,ia).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Xt(t,e,s){return new hn({source:{asset:t,fee:{asset:y,extra:Pt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ys(t){return R0(t,p,.02)}var D0=[new bs({source:{asset:y,fee:{asset:y,extra:Pt}},destination:{chain:p,asset:y,fee:{amount:.001,asset:y}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new bs({source:{asset:k,fee:{asset:y,extra:Pt}},destination:{chain:p,asset:k,fee:{amount:1e-4,asset:k}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Xt(h,p,.02),Xt(x,p,.02),ys(st)],L0=[new bs({source:{asset:k,fee:{asset:y,extra:Pt}},destination:{chain:Me,asset:k,fee:{amount:.001,asset:k}},extrinsic:u().polkadotXcm().transferAssets()})],H0=[Xt(h,N,.25),Xt(x,N,.25)],V0=[Xt(h,R,.03),Xt(x,R,.03)],M0=[new bs({source:{asset:V,fee:{asset:y,extra:Pt}},destination:{chain:rt,asset:V,fee:{amount:2.5,asset:V}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],ma=new ca({chain:at,routes:[hs(h,p,.02),hs(x,p,.02),hs(y,p,.001)]}),ua=new ca({chain:w,routes:[...D0,...L0,...H0,...V0,...M0]});import{AssetRoute as ot,ChainRoutes as O0}from"@galacticcouncil/xc-core";var N0=[new ot({source:{asset:I},destination:{chain:p,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:u().polkadotXcm().reserveTransferAssets()}),new ot({source:{asset:P,fee:{asset:I}},destination:{chain:p,asset:P,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:R}),asset:P}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:E,fee:{asset:I}},destination:{chain:p,asset:E,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:N}),asset:E}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:_,fee:{asset:I}},destination:{chain:p,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:D,fee:{asset:I}},destination:{chain:p,asset:D,fee:{amount:.01,asset:D}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:L,fee:{asset:I}},destination:{chain:p,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:R}),asset:L}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:z,fee:{asset:I}},destination:{chain:p,asset:z,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:R}),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:h,fee:{asset:I}},destination:{chain:p,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new ot({source:{asset:x,fee:{asset:I}},destination:{chain:p,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],da=new O0({chain:Y,routes:[...N0]});import{AssetRoute as Ne,ChainRoutes as U0}from"@galacticcouncil/xc-core";var G0=[new Ne({source:{asset:P},destination:{chain:p,asset:P,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:P}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:L,fee:{asset:P}},destination:{chain:p,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:z,fee:{asset:P}},destination:{chain:p,asset:z,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:y,fee:{asset:P}},destination:{chain:p,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ne({source:{asset:I,fee:{asset:P}},destination:{chain:p,asset:I,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:E,fee:{asset:P}},destination:{chain:p,asset:E,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:N}),asset:E}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:_,fee:{asset:P}},destination:{chain:p,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:h,fee:{asset:P}},destination:{chain:p,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:x,fee:{asset:P}},destination:{chain:p,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],W0=[new Ne({source:{asset:h,fee:{asset:P}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new Ne({source:{asset:x,fee:{asset:P}},destination:{chain:w,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],la=new U0({chain:R,routes:[...G0,...W0]});import{AssetRoute as je,ChainRoutes as z0}from"@galacticcouncil/xc-core";var K=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as ft}from"@galacticcouncil/xc-core";var K0=1,q0=.02,xs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},As=u().router().buy({slippage:30});function O(t,e,s){return new ft({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function Kt(t,e,s){return new ft({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})}function ht(t,e){return new ft({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function gs(t){return new ft({source:{asset:t,fee:K()},destination:{chain:w,asset:t,fee:{amount:q0,asset:h}},extrinsic:nt(xs,As).prior(u().polkadotXcm().limitedReserveTransferAssets())})}function yn(t,e,s){return new ft({source:{asset:t,fee:K()},destination:{chain:Me,asset:t,fee:{amount:e,asset:t}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function j0(t,e,s="LocalReserve"){return new ft({source:{asset:t,fee:K()},destination:{chain:e,asset:t,fee:{amount:K0,asset:E}},extrinsic:nt(xs,As).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function yt(t){return j0(t,N,"DestinationReserve")}function ee(t,e,s){return new ft({source:{asset:t,fee:K()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:y}},extrinsic:nt(xs,As).prior(u().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function te(t,e,s){return new ft({source:{asset:t,fee:K()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:y}},extrinsic:nt(xs,As).prior(u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var $0=[ht(y,w),ht(k,w),ht(h,w),ht(x,w),gs(st)],J0=[yn(k,.05,.005),yn(y,.2,.02)],Q0=[O(I,Y),O(P,Y,R),O(E,Y,N),new je({source:{asset:_,fee:K()},destination:{chain:Y,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new je({source:{asset:D,fee:K()},destination:{chain:Y,asset:D,fee:{amount:.01,asset:D}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(L,Y,R),O(z,Y,R),O(h,Y,w),O(x,Y,w)],Y0=[O(P,R),O(L,R),O(z,R),O(I,R,Y),O(E,R,N),new je({source:{asset:_,fee:K()},destination:{chain:R,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),O(h,R,w),O(x,R,w),new je({source:{asset:y,fee:K()},destination:{chain:R,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Z0=[Kt(_,Fe,62e-8),Kt(D,Fe,.0019213457),Kt(q,Fe,.5),Kt(h,Fe,.3),Kt(x,Fe,.3),new je({source:{asset:L,fee:K()},destination:{chain:Fe,asset:L,fee:{amount:.01,asset:y}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()}),new je({source:{asset:y,fee:K()},destination:{chain:Fe,asset:y,fee:{amount:.05,asset:y}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],em=[O(q,N),O(E,N),O(h,N,w),O(x,N,w),yt(ze),yt($e),yt(Ye),yt(Je),yt(tt),yt(et),yt(Se)],tm=[new je({source:{asset:V,fee:K()},destination:{chain:rt,asset:V,fee:{amount:2.5,asset:V}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],sm=[O(Ve,Vt)],nm=[new je({source:{asset:Te,fee:K()},destination:{chain:Dt,asset:Te,fee:{amount:.04,asset:Te}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],om=[new je({source:{asset:Ee,fee:K()},destination:{chain:Mt,asset:Ee,fee:{amount:.02,asset:Ee}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],am=[new je({source:{asset:Pe,fee:K()},destination:{chain:Ht,asset:Pe,fee:{amount:1.1,asset:Pe}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],rm=[O(He,Lt)],im=[O(Le,Rt)],cm=[ee(F,F,v),ee(ue,ue,v),ee(de,de,v),ee(le,le,v),ee(pe,pe,v),ee(be,be,v),ee(Ae,Ae,v),ee(ge,ge,v),ee(we,we,v),ee(he,he,v),ee(fe,fe,v),ee(ye,ye,v),ee(xe,xe,v),ee(Ce,Ce,v),ee(Ze,x,v),ee(Qe,h,v)],mm=[te(F,F,v),te(ue,ue,v),te(de,de,v),te(le,le,v),te(pe,pe,v),te(be,be,v),te(Ae,Ae,v),te(ge,ge,v),te(we,we,v),te(he,he,v),te(fe,fe,v),te(ye,ye,v),te(xe,xe,v),te(Ce,Ce,v),te(Ze,x,v),te(Qe,h,v)],um=[ht(y,at),ht(h,at),ht(x,at)],pa=new z0({chain:p,routes:[...im,...$0,...Q0,...Y0,...um,...nm,...cm,...mm,...Z0,...om,...J0,...em,...tm,...rm,...am,...sm]});import{AssetRoute as Cs,ChainRoutes as dm}from"@galacticcouncil/xc-core";function ws(t,e){return new Cs({source:{asset:t,fee:{asset:D}},destination:{chain:p,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:u().xTokens().transfer()})}var lm=[new Cs({source:{asset:D},destination:{chain:p,asset:D,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:u().xTokens().transfer()}),new Cs({source:{asset:_,fee:{asset:D}},destination:{chain:p,asset:_,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:u().xTokens().transfer()}),new Cs({source:{asset:q,fee:{asset:D}},destination:{chain:p,asset:q,fee:{amount:.5,asset:q}},extrinsic:u().xTokens().transfer()}),ws(L,R),ws(h,w),ws(x,w),ws(y,w)],fa=new dm({chain:Fe,routes:[...lm]});import{AssetRoute as bn,ChainRoutes as hm}from"@galacticcouncil/xc-core";import{AssetRoute as ha}from"@galacticcouncil/xc-core";function pm(t,e,s){return new ha({source:{asset:t,fee:{asset:E}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:Z().PolkadotXcm().transferAssetsToPara32()})}function fm(t,e,s){return new ha({source:{asset:t,fee:{asset:E}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:Z().PolkadotXcm().transferAssetsToPara32()})}function bt(t,e){return pm(t,p,e)}function ks(t,e){return fm(t,p,e)}var ym=[new bn({source:{asset:E},destination:{chain:p,asset:E,fee:{amount:.05,asset:E}},contract:Z().PolkadotXcm().transferAssetsToPara32()}),ks(q,.6),ks(h,.3),ks(x,.3),bt(ze,.004),bt($e,.004),bt(Ye,.004),bt(Je,.004),bt(tt,1e-7),bt(et,2e-6),bt(Se,2e-5)],bm=[new bn({source:{asset:h,fee:{asset:E}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:Z().PolkadotXcm().transferAssetsToPara32()}),new bn({source:{asset:x,fee:{asset:E}},destination:{chain:w,asset:x,fee:{amount:.18,asset:x}},contract:Z().PolkadotXcm().transferAssetsToPara32()})],ya=new hm({chain:N,routes:[...ym,...bm]});import{AssetRoute as ba,ChainRoutes as xm}from"@galacticcouncil/xc-core";var Am=[new ba({source:{asset:V},destination:{chain:p,asset:V,fee:{amount:.01,asset:V}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],gm=[new ba({source:{asset:V},destination:{chain:w,asset:V,fee:{amount:.1,asset:V}},extrinsic:u().polkadotXcm().limitedTeleportAssets()})],xa=new xm({chain:rt,routes:[...Am,...gm]});import{AssetRoute as wm,ChainRoutes as Cm}from"@galacticcouncil/xc-core";var km=[new wm({source:{asset:Ve},destination:{chain:p,asset:Ve,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Ve}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Aa=new Cm({chain:Vt,routes:[...km]});import{AssetRoute as Em,ChainRoutes as vm}from"@galacticcouncil/xc-core";var Tm=[new Em({source:{asset:Te},destination:{chain:p,asset:Te,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Te}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ga=new vm({chain:Dt,routes:[...Tm]});import{AssetRoute as Pm,ChainRoutes as Xm}from"@galacticcouncil/xc-core";var Sm=[new Pm({source:{asset:Pe},destination:{chain:p,asset:Pe,fee:{amount:.2,asset:Pe}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],wa=new Xm({chain:Ht,routes:[...Sm]});import{AssetRoute as Fm,ChainRoutes as _m}from"@galacticcouncil/xc-core";var Bm=[new Fm({source:{asset:Le},destination:{chain:p,asset:Le,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Le}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],Ca=new _m({chain:Rt,routes:[...Bm]});import{AssetRoute as Im,ChainRoutes as Rm}from"@galacticcouncil/xc-core";var Dm=[new Im({source:{asset:Ee,fee:{asset:Ee,extra:.030555}},destination:{chain:p,asset:Ee,fee:{amount:.03,asset:Ee}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],ka=new Rm({chain:Mt,routes:[...Dm]});import{AssetRoute as Lm,ChainRoutes as Hm}from"@galacticcouncil/xc-core";var Vm=[new Lm({source:{asset:He},destination:{chain:p,asset:He,fee:{amount:.205,asset:He}},extrinsic:u().polkadotXcm().reserveTransferAssets()})],Ea=new Hm({chain:Lt,routes:[...Vm]});var va=[Ca,ua,ma,da,la,pa,fa,ya,xa,Ea,Aa,ga,wa,ka];import{ChainRoutes as Mm}from"@galacticcouncil/xc-core";var Om=[],Ta=new Mm({chain:ns,routes:[...Om]});var Pa=[Ta];import{ChainRoutes as Nm}from"@galacticcouncil/xc-core";var Um=[],Xa=new Nm({chain:os,routes:[...Um]});var Sa=[Xa];import{AssetRoute as Es,ChainRoutes as Gm}from"@galacticcouncil/xc-core";import{AssetRoute as GA}from"@galacticcouncil/xc-core";var Jt=.0015;var Wm=new Es({source:{asset:k,fee:{asset:k,extra:Jt}},destination:{chain:w,asset:k,fee:{amount:.002,asset:k}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Km=new Es({source:{asset:k,fee:{asset:k,extra:Jt}},destination:{chain:Ot,asset:k,fee:{amount:.0012,asset:k}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),qm=[new Es({source:{asset:k,fee:{asset:k,extra:Jt}},destination:{chain:p,asset:k,fee:{amount:.04,asset:k}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Es({source:{asset:y,fee:{asset:k,extra:Jt}},destination:{chain:p,asset:y,fee:{amount:.15,asset:y}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Fa=new Gm({chain:Me,routes:[Km,Wm,...qm]});import{AssetRoute as _a,ChainRoutes as jm}from"@galacticcouncil/xc-core";var xn=()=>({asset:$t().multiTransactionPayment().accountCurrencyMap()});var zm=[new _a({source:{asset:h,fee:xn()},destination:{chain:Me,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:u().polkadotXcm().limitedReserveTransferAssets()})],$m=[new _a({source:{asset:k,fee:xn()},destination:{chain:Me,asset:k,fee:{amount:.0012,asset:k}},extrinsic:u().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Ba=new jm({chain:Ot,routes:[...zm,...$m]});var Ia=[Fa,Ba];var Jm=[...ra,...va,...Pa,...Sa,...Ia],Qm=new Map(Jm.map(t=>[t.chain.key,t]));import{Parachain as Va}from"@galacticcouncil/xc-core";import{Parachain as Ym,TransferValidation as Ra,TransferValidationError as Da}from"@galacticcouncil/xc-core";var vs=class extends Ra{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Da("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Ts=class extends Ra{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 Da("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof Ym)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as La,TransferValidationError as Ha}from"@galacticcouncil/xc-core";var Ps=class extends La{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new ve(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new ve(a).getSystemAccountBalance(n)===0n)throw new Ha("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Xs=class extends La{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new ve(a).checkIfFrozen(n,s))throw new Ha("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Is,TransferValidationError as Qt}from"@galacticcouncil/xc-core";var Zm=12,eu=1,tu=18,Ss=class extends Is{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ae(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 ae(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||eu,l=i.decimals||Zm,d=m*Math.pow(10,l),f=await r.getAssetBalance(n,c);if(BigInt(d*1.1)>f)throw new Qt("Insufficient_Ed",{amount:d,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Fs=class extends Is{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ae(a).getAssetDepositLimit(n);if(c.locked)throw new Qt("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new Qt("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},_s=class extends Is{async validate(e){let{source:s}=e,n=s.chain,a=await new ae(n).getGlobalWithdrawLimit();if(a.lockdown)throw new Qt("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Bs=class extends Is{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 ae(a),c=a.getBalanceAssetId(E),i=a.getAssetDecimals(E)||tu,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new Qt("Insufficient_Ed",{amount:1,asset:E.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ce={isAny:()=>!0,isHydration:t=>t instanceof Va&&t.parachainId===2034,isHub:t=>t instanceof Va&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},su=[new vs(ce.isAny,ce.isAny),new Ts(ce.isAny,ce.isAny),new Ps(ce.isAny,ce.isHub),new Xs(ce.isHub,ce.isAny),new Ss(ce.isAny,ce.isHydration),new Bs(ce.isHydration,ce.isAny),new Fs(ce.isAny,ce.isHydration),new _s(ce.isHydration,ce.isAny)];var Oa={};qt(Oa,{AssethubDex:()=>gn,HydrationDex:()=>An});import{pool as nu,sor as ou,tx as au}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as ru}from"@galacticcouncil/common";import{Binary as iu}from"polkadot-api";import{memoize1 as cu}from"@thi.ng/memoize";var{PoolType:Rs}=nu,{TradeRouteBuilder:mu,TradeRouter:uu}=ou,{TxBuilderFactory:du}=au,An=class{chain;client;poolCtx;txBuilder;getCtx=cu(async e=>{console.log("init swap router",e,"\u2705");let s=new uu(this.poolCtx);return s.withFilter({useOnly:[Rs.Aave,Rs.Omni,Rs.Stable,Rs.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ae(this.chain),this.txBuilder=new du(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),d=await m.getBuy(r,c,i,l),g=await(await this.txBuilder.trade(d).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return iu.toHex(g)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),l=await i.getBuy(a,r,c,m);return{amount:l.amountIn,route:mu.build(l.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw m}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(n));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*s,r=Math.pow(10,ru);return a/BigInt(r)}};import{encodeLocation as Ma}from"@galacticcouncil/common";var gn=class{chain;client;constructor(e){this.chain=e,this.client=new ve(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(Ma(o),Ma(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as pu}from"@galacticcouncil/xc-core";import{Asset as lu}from"@galacticcouncil/xc-core";function Ds(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new lu({key:[o,s,e].join("_"),originSymbol:n})}function Na(t){let{decimals:e,id:s}=t;return{asset:Ds(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Ua(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Ds(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var wn=class extends pu{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=Ds(a),c=Na(a),i=Ua(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,ys(r)),this.updateChainRoute(s,gs(r))})}};export{wn as HydrationConfigService,za as assetsMap,Zo as builders,pi as chainsMap,Qo as clients,Oa as dex,Qm as routesMap,ea as tags,su as validations};
1
+ var za=Object.defineProperty;var jt=(t,e)=>{for(var s in e)za(t,s,{get:e[s],enumerable:!0})};import{Asset as A}from"@galacticcouncil/xc-core";var ue=new A({key:"aave",originSymbol:"AAVE"}),He=new A({key:"ajun",originSymbol:"AJUN"}),de=new A({key:"apyusd",originSymbol:"apyUSD"}),I=new A({key:"astr",originSymbol:"ASTR"}),P=new A({key:"bnc",originSymbol:"BNC"}),Hs=new A({key:"bsx",originSymbol:"BSX"}),le=new A({key:"cfg_new",originSymbol:"CFG"}),Te=new A({key:"cru",originSymbol:"CRU"}),$e=new A({key:"dai",originSymbol:"DAI"}),Pe=new A({...$e,key:"dai_mwh"}),y=new A({key:"dot",originSymbol:"DOT"}),X=new A({key:"eth",originSymbol:"ETH"}),pe=new A({key:"ena",originSymbol:"ENA"}),_t=new A({key:"eurc",originSymbol:"EURC"}),gt=new A({..._t,key:"eurc_mwh"}),v=new A({key:"glmr",originSymbol:"GLMR"}),q=new A({key:"hdx",originSymbol:"HDX"}),_=new A({key:"ibtc",originSymbol:"IBTC"}),R=new A({key:"intr",originSymbol:"INTR"}),wt=new A({key:"jitoSol",originSymbol:"jitoSOL"}),k=new A({key:"ksm",originSymbol:"KSM"}),fe=new A({key:"ldo",originSymbol:"LDO"}),he=new A({key:"lbtc",originSymbol:"LBTC"}),Ee=new A({key:"ewt",originSymbol:"EWT"}),ye=new A({key:"link",originSymbol:"LINK"}),V=new A({key:"myth",originSymbol:"MYTH"}),Ve=new A({key:"neuro",originSymbol:"NEURO"}),Xe=new A({key:"pen",originSymbol:"PEN"}),be=new A({key:"paxg",originSymbol:"PAXG"}),Ct=new A({key:"prime",originSymbol:"PRIME"}),xe=new A({key:"sky",originSymbol:"SKY"}),Fe=new A({key:"sol",originSymbol:"SOL"}),kt=new A({key:"sui",originSymbol:"SUI"}),Ae=new A({key:"susde",originSymbol:"sUSDe"}),Bt=new A({key:"susds",originSymbol:"sUSDS"}),Je=new A({...Bt,key:"susds_mwh"}),ge=new A({key:"tbtc",originSymbol:"tBTC"}),we=new A({key:"trac",originSymbol:"TRAC"}),Me=new A({key:"unq",originSymbol:"UNQ"}),h=new A({key:"usdt",originSymbol:"USDT"}),Qe=new A({...h,key:"usdt_mwh"}),Ye=new A({...h,key:"usdt_eth"}),x=new A({key:"usdc",originSymbol:"USDC"}),Ze=new A({...x,key:"usdc_mwh"}),et=new A({...x,key:"usdc_eth"}),$=new A({key:"vastr",originSymbol:"vASTR"}),L=new A({key:"vdot",originSymbol:"vDOT"}),It=new A({key:"weth",originSymbol:"WETH"}),tt=new A({...It,key:"weth_mwh"}),Dt=new A({key:"wbtc",originSymbol:"WBTC"}),st=new A({...Dt,key:"wbtc_mwh"}),Ce=new A({key:"wsteth",originSymbol:"wstETH"}),nt=new A({key:"wud",originSymbol:"WUD"}),$a=[ue,He,de,I,Hs,le,Te,P,$e,Pe,y,pe,_t,gt,X,v,q,_,R,k,fe,he,Ee,wt,ye,V,Ve,be,Xe,Ct,xe,Fe,kt,Ae,Bt,Je,we,ge,Me,x,Ze,et,h,Qe,Ye,$,L,Dt,st,It,tt,Ce,nt],Ja=new Map($a.map(t=>[t.key,t]));import{ChainEcosystem as Qa,EvmChain as Ya,EvmBalanceType as Za}from"@galacticcouncil/xc-core";import{base as er}from"viem/chains";var es=new Ya({id:8453,key:"base",name:"Base",assetsData:[{asset:X,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:_t,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:x,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Za.Erc20,ecosystem:Qa.Ethereum,evmChain:er,explorer:"https://basescan.org/",rpcs:["https://stylish-quick-firefly.base-mainnet.quiknode.pro/"],basejump:{address:"0xf5b9334e44f800382cb47fc19669401d694e529b"},wormhole:{id:30,coreBridge:"0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",executor:"0x9E1936E91A4a5AE5A5F75fFc472D6cb8e93597ea",ntt:{}}});import{ChainEcosystem as tr,EvmChain as sr,EvmBalanceType as vn}from"@galacticcouncil/xc-core";import{mainnet as nr}from"viem/chains";var E=new sr({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:X,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:ue,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:de,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:le,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:It,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:$e,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:pe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ae,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Bt,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:ge,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Dt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:he,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:fe,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:ye,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:be,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:xe,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:we,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ce,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:vn.Erc20,balanceOverrides:{[X.key]:vn.Native},ecosystem:tr.Ethereum,evmChain:nr,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:{[$e.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}}}}});var Tn=[es,E];import{ChainEcosystem as or,Parachain as ar,SubstrateBalanceType as rr}from"@galacticcouncil/xc-core";var Rt=new ar({assetsData:[{asset:He,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],balance:rr.System,ecosystem:or.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 ir,Parachain as Pn,SubstrateBalanceType as ts,SubstrateMinType as cr}from"@galacticcouncil/xc-core";var Xn={assetsData:[{asset:y,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:V,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:k,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],balance:ts.Assets,balanceOverrides:{[y.key]:ts.System,[k.key]:ts.ForeignAssets,[V.key]:ts.ForeignAssets},min:cr.Assets,ecosystem:ir.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 Pn({...Xn,key:"assethub",name:"AssetHub Polkadot"}),it=new Pn({...Xn,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as mr,Parachain as ur,SubstrateBalanceType as Sn}from"@galacticcouncil/xc-core";var Z=new ur({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:y,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:"4294969281",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:P,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:v,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Sn.Assets,balanceOverrides:{[I.key]:Sn.System},ecosystem:mr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as dr,Parachain as lr,SubstrateBalanceType as Fn}from"@galacticcouncil/xc-core";var pr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],D=new lr({assetsData:[{asset:P,id:{Native:P.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:I,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:v,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Fn.Tokens,balanceOverrides:{[P.key]:Fn.System},ecosystem:dr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:pr});import{ChainEcosystem as fr,Parachain as hr,XcmVersion as yr,SubstrateBalanceType as br}from"@galacticcouncil/xc-core";var Lt=new hr({assetsData:[{asset:Te,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:br.System,ecosystem:fr.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:yr.v3});import{ChainEcosystem as wr,EvmParachain as Cr,SubstrateBalanceType as Bn}from"@galacticcouncil/xc-core";import{defineChain as kr}from"viem";import{h160 as xr}from"@galacticcouncil/common";import{AccountId as Ar}from"polkadot-api";var{isEvmAccount:gr,H160:_n}=xr,ss=class{async toH160(e,s){if(gr(e))return _n.fromAccount(e);let n=_n.fromSS58(e);if(s&&await this.isBound(s,n,e))return n;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,s,n){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(s);if(!a)return!1;let r=Ar().enc(n),c=this.asBytes(a);return Buffer.from(c).equals(r.subarray(20))}asBytes(e){return e instanceof Uint8Array?e:typeof e=="string"?Buffer.from(e.replace("0x",""),"hex"):e.asBytes()}};var Er=new ss,Vs=["https://hydration-rpc.n.dwellir.com","https://hydration.dotters.network","https://hydration.rotko.net","https://rpc.sin.hydration.cloud","https://rpc.coke.hydration.cloud"],Ms=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://hydration.rotko.net","wss://rpc.sin.hydration.cloud","wss://rpc.coke.hydration.cloud"],vr=kr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Vs,webSocket:Ms},default:{http:Vs,webSocket:Ms}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),p=new Cr({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:ue,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:He,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:P,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:le,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Te,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:y,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:Pe,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:de,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:pe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:v,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:_,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:R,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:wt,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Ct,decimals:6,id:43,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Ee,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:fe,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:k,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:he,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ye,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:be,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:V,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ve,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:Xe,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:xe,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Fe,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:kt,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ae,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Bt,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Je,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ge,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:we,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Me,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:Ze,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:gt,decimals:6,id:44,min:.014,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610a50630bc7d4530736942ee2bc9e00e8de8"}}]}}},{asset:et,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:Qe,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Ye,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:$,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:L,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Dt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:st,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:It,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:tt,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ce,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:nt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Bn.Tokens,balanceOverrides:{[q.key]:Bn.System},ecosystem:wr.Polkadot,evmChain:vr,evmResolver:Er,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",ntt:{[Pe.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}}}},ws:Ms,rpcs:Vs});import{ChainEcosystem as Tr,Parachain as Pr,XcmVersion as Xr,SubstrateBalanceType as Sr}from"@galacticcouncil/xc-core";var _e=new Pr({assetsData:[{asset:R,decimals:10,id:{Token:R.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:_,decimals:8,id:{Token:_.originSymbol},xcmLocation:{parents:0,interior:{X1:{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}}}},{asset:y,decimals:10,id:{Token:y.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:x,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:q,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:L,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Sr.Tokens,ecosystem:Tr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain",xcmVersion:Xr.v3});import{ChainEcosystem as Fr,EvmParachain as _r,EvmBalanceType as Br,SubstrateBalanceType as Ir}from"@galacticcouncil/xc-core";import{defineChain as Dr}from"viem";var Rr=Dr({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}),N=new _r({assetsData:[{asset:v,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:Pe,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:gt,decimals:6,id:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x3f9610A50630Bc7D4530736942ee2bC9e00E8De8"}}]}}},{asset:Fe,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:wt,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Ct,decimals:6,id:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x52b2f622f5676e92dbea3092004eb9ffb85a8d07"}}]}}},{asset:Je,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:kt,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ze,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Qe,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:st,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:tt,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:y,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:q,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:Br.Erc20,balanceOverrides:{[v.key]:Ir.System},ecosystem:Fr.Polkadot,evmChain:Rr,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 Lr,Parachain as Hr,SubstrateBalanceType as Vr}from"@galacticcouncil/xc-core";var ct=new Hr({assetsData:[{asset:V,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Vr.System,ecosystem:Lr.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 Mr,Parachain as Or,SubstrateBalanceType as Nr}from"@galacticcouncil/xc-core";var Ht=new Or({assetsData:[{asset:Ve,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Nr.System,ecosystem:Mr.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 Ur,Parachain as Gr,XcmVersion as Wr,SubstrateBalanceType as Kr}from"@galacticcouncil/xc-core";var Vt=new Gr({assetsData:[{asset:Xe,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:Kr.System,ecosystem:Ur.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:Wr.v3});import{ChainEcosystem as qr,Parachain as jr,SubstrateBalanceType as zr}from"@galacticcouncil/xc-core";var $r={assetsData:[{asset:y,xcmLocation:{parents:0,interior:"Here"}}],balance:zr.System,ecosystem:qr.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"},In=new jr({...$r,key:"polkadot"});import{ChainEcosystem as Jr,Parachain as Qr,SubstrateBalanceType as Yr}from"@galacticcouncil/xc-core";var Mt=new Qr({assetsData:[{asset:Me,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Yr.System,ecosystem:Jr.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 Zr,Parachain as ei,XcmVersion as ti,SubstrateBalanceType as si}from"@galacticcouncil/xc-core";var Ot=new ei({assetsData:[{asset:Ee,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:si.System,ecosystem:Zr.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:ti.v3});var Dn=[Rt,w,it,Z,D,Lt,p,Ht,_e,N,ct,Vt,In,Mt,Ot];import{ChainEcosystem as ni,SolanaChain as oi,SolanaBalanceType as Rn}from"@galacticcouncil/xc-core";var ns=new oi({id:101,key:"solana",name:"Solana",assetsData:[{asset:Fe,decimals:9},{asset:wt,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Ct,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:Rn.Token,balanceOverrides:{[Fe.key]:Rn.Native},ecosystem:ni.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:{},platformAddressFormat:"base58"}});var Ln=[ns];import{ChainEcosystem as ai,SuiChain as ri,SuiBalanceType as ii}from"@galacticcouncil/xc-core";var os=new ri({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:kt,decimals:9}],balance:ii.Native,ecosystem:ai.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{}}});var Hn=[os];import{ChainEcosystem as ci,Parachain as mi,SubstrateBalanceType as Vn,SubstrateMinType as ui}from"@galacticcouncil/xc-core";var Oe=new mi({assetsData:[{asset:k,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:10,min:.001,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Polkadot"}]}}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Vn.Assets,balanceOverrides:{[k.key]:Vn.System},min:ui.Assets,ecosystem:ci.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 di,Parachain as li,SubstrateBalanceType as pi}from"@galacticcouncil/xc-core";var Nt=new li({assetsData:[{asset:Hs,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:k,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:pi.Tokens,ecosystem:di.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Mn=[Oe,Nt];var fi=[...Tn,...Dn,...Ln,...Hn,...Mn],hi=new Map(fi.map(t=>[t.key,t]));import{ChainRoutes as F0}from"@galacticcouncil/xc-core";import{AssetRoute as S0}from"@galacticcouncil/xc-core";var ea={};jt(ea,{ContractBuilder:()=>z,ExtrinsicBuilder:()=>d,ExtrinsicDecorator:()=>ot,FeeAmountBuilder:()=>C,FeeAssetBuilder:()=>Jt,XcmTransferType:()=>Se,XcmVersion:()=>qe});import{Abi as On,ContractConfig as yi,Precompile as bi}from"@galacticcouncil/xc-core";import{encodeFunctionData as xi}from"viem";var Ai=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=>xi({abi:On[r.module],functionName:r.func,args:r.args}));return new yi({abi:On.Batch,address:bi.Batch,args:[n,o,a,[]],func:"batchAll",module:"Batch"})}}),Nn=()=>({batchAll:Ai});import{Abi as gi,ContractConfig as wi,Wormhole as Ci}from"@galacticcouncil/xc-core";function J(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Et(t){return typeof t=="object"?Object.values(t)[0]:t}function Un(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:a}=e,r=a?a.chain:o.chain,c=Ci.fromChain(r),i=r.getAssetId(n);return new wi({abi:gi.Erc20,address:Et(i).toString(),args:[t(c),s],func:"approve",module:"Erc20"})}})}}import{Abi as ki,Basejump as Ei,ContractConfig as vi}from"@galacticcouncil/xc-core";import{h160 as Ti}from"@galacticcouncil/common";import{AccountId as Pi}from"polkadot-api";import{toHex as Xi}from"@polkadot-api/utils";var{H160:Si,isEvmAddress:Fi}=Ti;function _i(t){let e=Fi(t)?Si.toAccount(t):t;return Xi(Pi().enc(e))}var Bi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o}=t,a=o.chain,r=Ei.fromChain(a),c=a.getAssetId(n);return new vi({abi:ki.Basejump,address:r.getAddress(),args:[Et(c),s,_i(e)],func:"bridgeViaWormhole",module:"Basejump"})}}),Gn=()=>({bridgeViaWormhole:Bi});import{addr as Ii,Abi as Wn,ContractConfig as Kn,Precompile as qn}from"@galacticcouncil/xc-core";import{big as Di}from"@galacticcouncil/common";var{Ss58Addr:jn}=Ii;function Ri(t){if(t.startsWith("0x"))return t;if(!/^\d{38,39}$/.test(t))throw new Error(`Asset id: ${t} must be a string and have 38-39 digits`);return`0xffffffff${BigInt(t).toString(16).padStart(32,"0")}`}function Os(t,e){let s=t.getAssetId(e);return typeof s=="string"?Ri(s):s}function zn(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Os(o.chain,s);return new Kn({abi:Wn.PolkadotXcm,address:qn.PolkadotXcm,args:[n.chain.parachainId,jn.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=Os(o.chain,s),r=Os(o.chain,o.destinationFeeBalance),c=Di.toBigInt(n.fee.amount,n.fee.decimals);return new Kn({abi:Wn.PolkadotXcm,address:qn.PolkadotXcm,args:[n.chain.parachainId,jn.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:c}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})}})}}import{addr as Ui,Abi as to,ContractConfig as so,Snowbridge as no}from"@galacticcouncil/xc-core";import{XcmV5Junctions as Gi,XcmV5Junction as Wi,XcmVersionedXcm as Ki,XcmVersionedLocation as qi}from"@galacticcouncil/descriptors";import{Blake2256 as ji}from"@polkadot-api/substrate-bindings";import{toHex as qs}from"@polkadot-api/utils";import{encodeAbiParameters as zi}from"viem";import{codec as Li}from"@galacticcouncil/xc-core";var as=null;async function $n(){if(as)return as;let t=await Li.getHubCodecs();return as={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},as}import{multiloc as Vi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as ke,XcmV5AssetFilter as se,XcmV5Instruction as S,XcmV5Junctions as ut,XcmV5Junction as Ke,XcmV5NetworkId as Ns,XcmV5WildAsset as We,XcmVersionedXcm as Mi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Oi}from"@polkadot-api/substrate-bindings";import{toHex as Ni}from"@polkadot-api/utils";import{XcmV3Junctions as Hi}from"@galacticcouncil/descriptors";var Q=340282366920938463463374607431768211455n,Ne="0x0000000000000000000000000000000000000000000000000000000000000000",j={parents:1,interior:Hi.Here()},Jn=0,mt=1e3,rs=1002,Be=1,vt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",Qn="0x0000000000000000000000000000000000000000000000000000000000000000",Yn="0x0000000000000000000000000000000000000000";var Us="0x0000000000000000000000000000000000000000",Ut=t=>({parents:2,interior:ut.X1(Ke.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(t)})))}),Gs=(t,e)=>({parents:2,interior:ut.X2([Ke.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(t)})),Ke.AccountKey20({key:e,network:void 0})])});function Zn(t,e){let s=Ut(t),n=Gs(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[S.ReserveAssetDeposited([{id:s,fun:ke.Fungible(o)},{id:n,fun:ke.Fungible(o)}]),S.ExchangeAsset({give:se.Wild(We.AllOf({id:s,fun:{type:"Fungible",value:void 0}})),want:[{id:j,fun:ke.Fungible(a)}],maximal:!1}),S.PayFees({asset:{id:j,fun:ke.Fungible(a)}})],c=Ws({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 Ws(t){let{ethChainId:e,destinationParaId:s,tokenAddress:n,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:c}=t,i=Ut(e),m=n===Us?i:Gs(e,n),u=o.length===42&&o.startsWith("0x")?Ke.AccountKey20({key:o,network:void 0}):Ke.AccountId32({id:o,network:void 0}),f={parents:0,interior:ut.X1(u)};return[S.SetAppendix([S.RefundSurplus(),S.DepositAsset({assets:se.Wild(We.All()),beneficiary:f})]),S.ExchangeAsset({give:se.Wild(We.AllOf({id:i,fun:{type:"Fungible",value:void 0}})),want:[{id:j,fun:ke.Fungible(r)}],maximal:!1}),S.InitiateTransfer({destination:{parents:1,interior:ut.X1(Ke.Parachain(s))},remote_fees:{type:"ReserveDeposit",value:se.Definite([{id:j,fun:ke.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:se.Definite([{id:m,fun:ke.Fungible(a)}])}],remote_xcm:[S.DepositAsset({assets:se.Wild(We.AllCounted(3)),beneficiary:f}),S.SetTopic(c)]}),S.RefundSurplus(),S.DepositAsset({assets:se.Wild(We.All()),beneficiary:f}),S.SetTopic(c)]}function Ks(t){let{tokenAddress:e,senderPubKey:s,beneficiaryHex:n,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:c,etherFeeAmount:i,topic:m}=t,l=Ut(Be),u=e===Us?l:Gs(Be,e),f={parents:0,interior:ut.X1(Ke.AccountId32({id:s,network:void 0}))},b={parents:0,interior:ut.X1(Ke.AccountKey20({key:n,network:void 0}))},g={parents:2,interior:ut.X1(Ke.GlobalConsensus(Ns.Ethereum({chain_id:BigInt(Be)})))},T=[S.DepositAsset({assets:se.Wild(We.AllCounted(3)),beneficiary:b}),S.SetTopic(m)],F=[S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),S.RefundSurplus(),S.DepositAsset({assets:se.Wild(We.All()),beneficiary:f})])];F.push(S.ExchangeAsset({give:se.Definite([{id:j,fun:ke.Fungible(c)}]),want:[{id:l,fun:ke.Fungible(i)}],maximal:!1}));let B=[{type:"ReserveWithdraw",value:se.Wild(We.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],W=se.Definite([{id:l,fun:ke.Fungible(i)}]);F.push(S.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:W},preserve_origin:!0,assets:B,remote_xcm:T}),S.SetTopic(m));let Y=a+r+c,me=[{id:j,fun:ke.Fungible(Y)},{id:u,fun:ke.Fungible(o)}],Re=[{id:j,fun:ke.Fungible(a)}],Ge={type:"ReserveWithdraw",value:se.Wild(We.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},Le=[{type:"ReserveWithdraw",value:se.Definite([{id:j,fun:ke.Fungible(c)}])},Ge];return[S.WithdrawAsset(me),S.PayFees({asset:Re[0]}),S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:f}}]}),S.RefundSurplus(),S.DepositAsset({assets:se.Wild(We.All()),beneficiary:f})]),S.InitiateTransfer({destination:{parents:1,interior:ut.X1(Ke.Parachain(mt))},remote_fees:{type:"ReserveWithdraw",value:se.Definite([{id:j,fun:ke.Fungible(r)}])},preserve_origin:!0,assets:Le,remote_xcm:F}),S.SetTopic(m)]}function eo(t){let{address:e,amount:s,asset:n,sender:o,source:a,destination:r,messageId:c}=t,i=a.chain,m=Oi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let l=Ni(m.publicKey),u=i.getAssetXcmLocation(n),f=u?Vi.findNestedKey(u,"key"):void 0,b=f?f.key:Us,g=r.feeBreakdown,T=g.sourceExecutionFee??0n,F=g.dotRemoteFee??0n,B=g.dotToEtherSwapAmount??0n,W=g.etherFeeAmount??0n,me=Ks({tokenAddress:b,senderPubKey:l,beneficiaryHex:e,tokenAmount:s,sourceExecutionFee:T,dotRemoteFee:F,dotToEtherSwapAmount:B,etherFeeAmount:W,topic:c??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Mi.V5(me)}var{Ss58Addr:oo}=Ui,$i="0x0000000000000000000000000000000000000000",Ji=()=>({build:async t=>{let{address:e,amount:s,asset:n,sender:o,source:a,destination:r}=t,c=a.chain,i=r.chain,m=no.fromChain(c),l=c.getAssetId(n),u=Et(l),f=n.originSymbol==="ETH",b=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,T=r.feeBreakdown.hydrationDotFee,F=r.fee.amount,B=oo.getPubKey(e),W=new TextEncoder().encode(`${i.parachainId}${o}${u}${B}${s}${Date.now()}`),Y=qs(ji(W)),me=Ws({ethChainId:Be,destinationParaId:i.parachainId,tokenAddress:f?$i:u,beneficiaryHex:B,tokenAmount:s,hydrationDotFee:T,topic:Y}),Re=await $n(),Ge=qs(Re.message.enc(Ki.V5(me))),Le=[];f||Le.push(zi([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,s]));let Ft=Re.location.enc(qi.V5({parents:0,interior:Gi.X1(Wi.AccountId32({id:B,network:void 0}))})),At=qs(Ft.slice(1));return new so({abi:to.Snowbridge,address:m.getGateway(),args:[Ge,Le,At,b,g],value:f?F+s:F,func:"v2_sendMessage",module:"Snowbridge"})}}),Qi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=no.fromChain(r),m=r.getAssetId(n),l=Et(m),u=n.originSymbol==="ETH",f=a.feeBreakdown.bridgeFeeInDot,b=a.fee.amount;return new so({abi:to.Snowbridge,address:i.getGateway(),args:[l,c.parachainId,[1,oo.getPubKey(e)],f,s],value:u?b+s:b,func:"sendToken",module:"Snowbridge"})}}),ao=()=>({v2SendMessage:Ji,sendToken:Qi});import{Abi as ro,ContractConfig as Yi,EvmBalanceType as Zi,EvmParachain as ec,Ntt as tc,Wormhole as sc}from"@galacticcouncil/xc-core";var nc="0x00",io=8,oc=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:a}=t,r=o.chain,c=a.chain,i=tc.fromChain(r,n),m=sc.fromChain(c),l=e;c instanceof ec&&(l=await c.getDerivatedAddress(e));let u=r,f=await u.evmClient.getProvider().readContract({abi:ro.NttManager,address:i.manager,args:[m.getWormholeId(),nc],functionName:"quoteDeliveryPrice"}),b=u.getAssetDecimals(n)??0,g=s;if(b>io){let T=10n**BigInt(b-io);g=s-s%T}return new Yi({abi:ro.NttManager,address:i.manager,args:[g,m.getWormholeId(),m.normalizeAddress(l)],token:i.token,wrapNative:u.getBalanceType(n)===Zi.Native,value:f[1],func:"transfer",module:"NttManager"})}}),co=()=>({transfer:oc});function mo(){return{Ntt:co}}function z(){return{Batch:Nn,Erc20:Un,Basejump:Gn,PolkadotXcm:zn,Snowbridge:ao,Wormhole:mo}}import{encodeLocation as uo}from"@galacticcouncil/common";import{ExtrinsicConfig as ac}from"@galacticcouncil/xc-core";var lo="AssetConversion",rc=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=uo(i.getAssetXcmLocation(r)),l=uo(i.getAssetXcmLocation(c)),u=r.amount+r.amount*BigInt(t.slippage)/100n,f=c.amount;return new ac({module:lo,func:e,getTx:b=>b.getUnsafeApi().tx[lo][e]({path:[m,l],amount_out:f,amount_in_max:u,send_to:s,keep_alive:!0})})}}},po=()=>({swapTokensForExactTokens:rc});import{hub as ic,MultiAddress as cc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as mc}from"@galacticcouncil/xc-core";var uc="Assets",dc=()=>{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 mc({module:uc,func:t,getTx:m=>m.getTypedApi(ic).tx.Assets.transfer({id:Number(i),target:cc.Id(n),amount:c})})}}},fo=()=>({transfer:dc});import{ExtrinsicConfig as lc}from"@galacticcouncil/xc-core";var ho="Balances",pc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new lc({module:ho,func:e,getTx:n=>n.getUnsafeApi().tx[ho][e]({dest:s,keep_alive:t})})}},yo=()=>({transferAll:pc});import{hydration as fc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as hc}from"@galacticcouncil/xc-core";var yc="Router",bc=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,f=a.amount+a.amount*BigInt(t.slippage)/100n;return new hc({module:yc,func:"buy",getTx:b=>b.getTypedApi(fc).tx.Router.buy({asset_in:Number(m),asset_out:Number(l),amount_out:u,max_amount_in:f,route:c})})}}),bo=()=>({buy:bc});import{ExtrinsicConfig as xc}from"@galacticcouncil/xc-core";var xo="Utility",Ac=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new xc({module:xo,func:e,getTx:o=>{let a=n.map(r=>r.getTx(o).decodedCall);return o.getUnsafeApi().tx[xo][e]({calls:a})}})}}},Ao=()=>({batchAll:Ac});import{Abi as gc,ExtrinsicConfig as wc}from"@galacticcouncil/xc-core";import{Binary as Cc}from"polkadot-api";import{encodeFunctionData as kc}from"viem";var qe=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(qe||{}),Se=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Se||{});var go="EthereumXcm",Ec=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",a=kc({abi:gc[n.module],functionName:n.func,args:n.args});return new wc({module:go,func:e,getTx:r=>r.getUnsafeApi().tx[go][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:Cc.fromHex(a),access_list:void 0}}})})}}},js=()=>({transact:Ec});import{ExtrinsicConfig as ht}from"@galacticcouncil/xc-core";import{big as ps}from"@galacticcouncil/common";import{multiloc as Io,ChainEcosystem as an}from"@galacticcouncil/xc-core";import{XcmV3Junctions as ne,XcmV3Junction as Tt,XcmV3JunctionNetworkId as _o,XcmV3MultiassetFungibility as dt,XcmV4Instruction as H,XcmV4AssetAssetFilter as lt,XcmV4AssetWildAsset as pt,XcmV3WeightLimit as ls,XcmV2MultiassetWildFungibility as zc,XcmV2OriginKind as $c}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Vc,XcmV3MultiassetFungibility as $s,XcmV3WeightLimit as Mc,XcmV4AssetAssetFilter as Oc,XcmV4AssetWildAsset as Nc,XcmV4Instruction as zt}from"@galacticcouncil/descriptors";import{acc as vc}from"@galacticcouncil/common";import{XcmV3Junction as wo}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Tc}from"@polkadot-api/substrate-bindings";import{toHex as Pc}from"@polkadot-api/utils";function K(t){if(t.length===42&&t.startsWith("0x"))return wo.AccountKey20({key:t,network:void 0});let s=Tc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return wo.AccountId32({id:Pc(s.publicKey),network:void 0})}function Gt(t,e,s){return vc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as Co}from"@galacticcouncil/xc-core";function ko(t,e){let s=Co.findNestedKey(t,"GeneralIndex"),n=Co.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,a=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function M(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ms={};jt(ms,{ETHER_TOKEN_ADDRESS:()=>zs,erc20Location:()=>Fc,erc20LocationReanchored:()=>_c,ethereumLocation:()=>vo,parachainLocation:()=>Sc});import{XcmV3Junctions as is,XcmV3Junction as cs,XcmV3JunctionNetworkId as Xc}from"@galacticcouncil/descriptors";var zs="0x0000000000000000000000000000000000000000",Eo=t=>cs.GlobalConsensus(Xc.Ethereum({chain_id:BigInt(t)}));function vo(t){return{parents:2,interior:is.X1(Eo(t))}}function Sc(t){return{parents:1,interior:is.X1(cs.Parachain(t))}}function Fc(t,e){return e===zs?vo(t):{parents:2,interior:is.X2([Eo(t),cs.AccountKey20({key:e})])}}function _c(t){return t===zs?{parents:0,interior:{type:"Here"}}:{parents:0,interior:is.X1(cs.AccountKey20({key:t}))}}import{encodeLocation as To}from"@galacticcouncil/common";import{multiloc as Bc}from"@galacticcouncil/xc-core";function U(t,e){return Ic(e)>=4?To(t):Dc(t)}function Ic(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Dc(t){return{type:"Concrete",value:To(t)}}var Rc=1e3;function Lc(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 Hc(t){if(t)return Lc(t)?Rc:Bc.findParachain(t)}function Po(t,e,s,n){let o=e.getAssetXcmLocation(t),a=Hc(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 us(t,e){let s="V4",n=U(M(e,t),s),o=Ne;return[zt.ReserveAssetDeposited([{id:j,fun:$s.Fungible(Q)},{id:n,fun:$s.Fungible(Q)}]),zt.ClearOrigin(),zt.BuyExecution({fees:{id:j,fun:$s.Fungible(Q)},weight_limit:Mc.Unlimited()}),zt.DepositAsset({assets:Oc.Wild(Nc.AllCounted(2)),beneficiary:{parents:0,interior:Vc.X1(K(vt))}}),zt.SetTopic(o)]}import{XcmV4Instruction as Js,XcmV3MultiassetFungibility as Qs,XcmV3WeightLimit as Uc}from"@galacticcouncil/descriptors";function Ys(t,e){let s="V4",n=U(M(e,t),s),o=ds("V4",K(Yn),K(vt),n,Ne);return[Js.WithdrawAsset([{id:j,fun:Qs.Fungible(Q)},{id:n,fun:Qs.Fungible(Q)}]),Js.ClearOrigin(),Js.BuyExecution({fees:{id:j,fun:Qs.Fungible(Q)},weight_limit:Uc.Unlimited()}),...o.value]}import{XcmV3Junctions as Zs,XcmV3Junction as Gc,XcmV3MultiassetFungibility as $t,XcmV3WeightLimit as en,XcmV4AssetAssetFilter as tn,XcmV4AssetWildAsset as sn,XcmV4Instruction as Ie}from"@galacticcouncil/descriptors";function Xo(t,e){let s="V4",n=U(M(e,t),s),o=Ne;return[Ie.WithdrawAsset([{id:n,fun:$t.Fungible(Q)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:n,fun:$t.Fungible(Q)},weight_limit:en.Unlimited()}),Ie.DepositAsset({assets:tn.Wild(sn.AllCounted(1)),beneficiary:{parents:0,interior:Zs.X1(K(vt))}}),Ie.SetTopic(o)]}function nn(t,e){let s="V4",n=U(M(e,t),s);return[Ie.BuyExecution({fees:{id:n,fun:$t.Fungible(Q)},weight_limit:en.Unlimited()}),Ie.DepositAsset({assets:tn.Wild(sn.AllCounted(1)),beneficiary:{parents:0,interior:Zs.X1(K(vt))}})]}function So(t,e,s){let n="V4",o=U(M(e,t),n),a=Ne,r=nn(t,s);return[Ie.WithdrawAsset([{id:o,fun:$t.Fungible(Q)}]),Ie.ClearOrigin(),Ie.BuyExecution({fees:{id:o,fun:$t.Fungible(Q)},weight_limit:en.Unlimited()}),Ie.DepositReserveAsset({assets:tn.Wild(sn.AllCounted(1)),dest:{parents:1,interior:Zs.X1(Gc.Parachain(s.parachainId))},xcm:r}),Ie.SetTopic(a)]}import{XcmV3MultiassetFungibility as on,XcmV5AssetFilter as Wc,XcmV5Instruction as Wt,XcmV5Junctions as Kc,XcmV5Junction as qc,XcmV5WildAsset as jc}from"@galacticcouncil/descriptors";function Fo(t,e){let s="V5",n=U(M(e,t),s),o={parents:0,interior:Kc.X1(qc.AccountId32({id:Qn,network:void 0}))};return[Wt.ReserveAssetDeposited([{id:j,fun:on.Fungible(Q)}]),Wt.PayFees({asset:{id:j,fun:on.Fungible(Q)}}),Wt.ReserveAssetDeposited([{id:n,fun:on.Fungible(Q)}]),Wt.ClearOrigin(),Wt.DepositAsset({assets:Wc.Wild(jc.AllCounted(3)),beneficiary:o}),Wt.SetTopic(Ne)]}var Bo=[an.Polkadot,an.Kusama],Jc={parents:1,interior:ne.X1(Tt.Parachain(1e3))},Qc=t=>{let{parents:e,interior:s}=t;return e!==1?!1:s==="Here"||s?.type==="Here"},Do=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Bo.includes(t.ecosystem)&&Bo.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ro=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},je=(t,e,s)=>{if(Do(e,s))return{type:t,value:rn(s.ecosystem,s.parachainId)};if(s.parachainId===Jn)return{type:t,value:{parents:1,interior:ne.Here()}};let n=s.key==="ethereum"?mt:s.parachainId;return{type:t,value:{parents:1,interior:ne.X1(Tt.Parachain(n))}}},Yc=t=>t===an.Kusama?_o.Kusama():_o.Polkadot(),rn=(t,e)=>({parents:2,interior:ne.X2([Tt.GlobalConsensus(Yc(t)),Tt.Parachain(e)])}),Lo=(t,e,s,n)=>{if(Do(e,s)){if(e.parachainId!==mt){let o=Io.findGlobalConsensus(M(e,n)),a=typeof o=="string"&&o===s.ecosystem;return{dest:{type:t,value:{parents:1,interior:ne.X1(Tt.Parachain(mt))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(s.parachainId!==mt)return{dest:{type:t,value:rn(s.ecosystem,mt)},mode:"onward"}}},Pt=(t,e)=>({type:t,value:{parents:0,interior:ne.X1(e)}}),cn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:Qc(s)?Jc:s}}:{type:e},ft=(t,e)=>({id:t,fun:dt.Fungible(e)}),Ho=(t,e,s)=>({type:t,value:[H.DepositAsset({assets:lt.Wild(pt.AllCounted(s)),beneficiary:{parents:0,interior:ne.X1(e)}})]}),ds=(t,e,s,n,o)=>{let a=o;return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:lt.Wild(pt.All()),beneficiary:{parents:0,interior:ne.X1(s)}})]),H.InitiateReserveWithdraw({assets:lt.Wild(pt.AllOf({id:n,fun:zc.Fungible()})),reserve:ms.ethereumLocation(Be),xcm:[H.BuyExecution({fees:{id:Zc(n),fun:dt.Fungible(1n)},weight_limit:ls.Unlimited()}),H.DepositAsset({assets:lt.Wild(pt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}}),H.SetTopic(a)]}),H.SetTopic(a)]}},Vo=(t,e,s,n,o,a)=>{let r=n==="onward"?{parents:1,interior:ne.X1(Tt.Parachain(s.parachainId))}:rn(s.ecosystem,s.parachainId),c={parents:0,interior:ne.X1(e)},i=lt.Wild(pt.AllCounted(1)),m=[H.BuyExecution({fees:{id:o,fun:dt.Fungible(a)},weight_limit:ls.Unlimited()}),H.DepositAsset({assets:i,beneficiary:c})],l=n==="bridge-withdraw"?H.InitiateReserveWithdraw({assets:i,reserve:r,xcm:m}):H.DepositReserveAsset({assets:i,dest:r,xcm:m});return{type:t,value:[H.SetAppendix([H.DepositAsset({assets:lt.Wild(pt.All()),beneficiary:c})]),l]}},Zc=t=>{let e=Io.findNestedKey(t,"key");return e?{parents:0,interior:ne.X1(Tt.AccountKey20({key:e.key}))}:{parents:0,interior:ne.Here()}},Mo=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:dt.Fungible(n)}]),H.BuyExecution({fees:{id:s,fun:dt.Fungible(n)},weight_limit:ls.Unlimited()}),H.Transact({origin_kind:$c.SovereignAccount(),require_weight_at_most:{ref_time:a.refTime,proof_size:a.proofSize},call:o}),H.RefundSurplus(),H.DepositAsset({assets:lt.Wild(pt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}})]}),Oo=(t,e,s,n,o,a)=>({type:t,value:[H.WithdrawAsset([{id:s,fun:dt.Fungible(o)}]),H.BuyExecution({fees:{id:s,fun:dt.Fungible(o)},weight_limit:ls.Unlimited()}),H.TransferAsset({assets:[{id:s,fun:dt.Fungible(n)}],beneficiary:{parents:0,interior:ne.X1(a)}}),H.RefundSurplus(),H.DepositAsset({assets:lt.Wild(pt.AllCounted(1)),beneficiary:{parents:0,interior:ne.X1(e)}})]});var oe="PolkadotXcm",e0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",m=M(r,s),l=M(r,n.fee),u=U(m,i),f=U(l,i),b=ft(u,e),g=ft(f,n.fee.amount),T="limited_reserve_transfer_assets";return new ht({module:oe,func:T,getTx:F=>{let B=F.getUnsafeApi().tx[oe][T];return s.key===n.fee.key?B({dest:je(i,r,c),beneficiary:Pt(i,a),assets:{type:i,value:[b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):ko(m,l)?B({dest:je(i,r,c),beneficiary:Pt(i,a),assets:{type:i,value:[g,b]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):B({dest:je(i,r,c),beneficiary:Pt(i,a),assets:{type:i,value:[b,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),t0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",m=U(M(r,s),i),l=ft(m,e),u=je(i,r,c),f=Pt(i,a),b={type:i,value:[l]},g="limited_teleport_assets";return new ht({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:u,beneficiary:f,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),s0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i=r.xcmVersion??"V4",m=U(M(r,s),i),l=ft(m,e),u=je(i,r,c),f=Pt(i,a),b={type:i,value:[l]},g="reserve_transfer_assets";return new ht({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:u,beneficiary:f,assets:b,fee_asset_item:0})})}}),n0=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let a=K(t),r=o.chain,c=n.chain,i="V4",m=U(M(r,s),i),l=ft(m,e),u=je(i,r,c),f=Pt(i,a),b={type:i,value:[l]},g="transfer_assets";return new ht({module:oe,func:g,getTx:T=>T.getUnsafeApi().tx[oe][g]({dest:u,beneficiary:f,assets:b,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),o0=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,f=o.fee.amount,b=o.fee;i&&(u=i.chain,f=ps.toBigInt(i.fee.amount,i.fee.decimals),b=i.fee);let g=K(r),T=i||u.usesCexForwarding?Gt(l,r,u):e,F=K(T),{transferType:B}=t,W=U(M(l,s),m),Y=U(M(l,b),m),me=ft(W,n),Re=ft(Y,f),Ge=s.isEqual(b),Le=Lo(m,l,u,s),Ft=Le?.dest??je(m,l,u),At={type:m,value:Ge?[me]:[Re,me]},kn=cn(m,B,W),Ka={type:m,value:Ge?W:Y},qa=cn(m,B,Y),Zt;if(Ro(W)&&o.chain.isEvmChain())Zt=ds(m,F,g,W,a);else if(Le){let Ls=ps.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),ja=U(M(u,s),m);Zt=Vo(m,F,u,Le.mode,ja,Ls)}else Zt=Ho(m,F,At.value.length);let En="transfer_assets_using_type_and_then";return new ht({module:oe,func:En,getTx:Ls=>Ls.getUnsafeApi().tx[oe][En]({dest:Ft,assets:At,assets_transfer_type:kn,remote_fees_id:Ka,fees_transfer_type:qa,custom_xcm_on_dest:Zt,weight_limit:{type:"Unlimited"}})})}}),a0=()=>{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=Gt(c,n,i),l=K(m),{fee:u}=a,f=U(M(i,u),r),b=ps.toBigInt(e.fee,u.decimals);return new ht({module:oe,func:t,getTx:g=>g.getUnsafeApi().tx[oe][t]({dest:je(r,c,i),message:Mo(r,l,f,b,a.call,a.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:a,sender:r,source:c,destination:i}=s,m="V4",l=c.chain,u=i.chain,f=Gt(l,r,u),b=K(f),g=K(o),T=U(M(u,a),m),{fee:F}=i,B=ps.toBigInt(e.fee,F.decimals),W=n>F.amount?n-(F.amount+B):n;return new ht({module:oe,func:t,getTx:Y=>Y.getUnsafeApi().tx[oe][t]({dest:je(m,l,u),message:Oo(m,b,T,W,B,g)})})}})}};function r0(t){let e=s=>({build:async n=>{let o=s(n),a="execute";return new ht({module:oe,func:a,getTx:r=>r.getUnsafeApi().tx[oe][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(eo)}}var mn=()=>({limitedReserveTransferAssets:e0,limitedTeleportAssets:t0,reserveTransferAssets:s0,transferAssets:n0,transferAssetsUsingTypeAndThen:o0,execute:r0,send:a0});import{ExtrinsicConfig as c0}from"@galacticcouncil/xc-core";import{encodeAssetId as m0}from"@galacticcouncil/common";import{XcmV3Junctions as No,XcmV3Junction as i0}from"@galacticcouncil/descriptors";var Uo=(t,e,s)=>e.parachainId===0?{type:t,value:{parents:1,interior:No.X1(s)}}:{type:t,value:{parents:1,interior:No.X2([i0.Parachain(e.parachainId),s])}};var Go="XTokens",u0=()=>({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?Gt(r,o,c):t,l=K(m),u=r.getAssetId(s),f=m0(u),b="transfer";return new c0({module:Go,func:b,getTx:g=>g.getUnsafeApi().tx[Go][b]({currency_id:f,amount:e,dest:Uo(i,c,l),dest_weight_limit:{type:"Unlimited"}})})}}),un=()=>({transfer:u0});function d(){return{assetConversion:po,assets:fo,balances:yo,ethereumXcm:js,polkadotXcm:mn,router:bo,utility:Ao,xTokens:un}}function ot(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 Zo,Snowbridge as w0,Basejump as C0}from"@galacticcouncil/xc-core";var Wo=80000n,Ko=120000n,qo=100000n,jo=2000000n,dn=15000000000000n;var Yo={};jt(Yo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Jo,AssethubClient:()=>ve,BaseClient:()=>De,HydrationClient:()=>ae,getAllAssetDepositLimits:()=>pn,getAssetDepositLimit:()=>ln,getGlobalWithdrawLimit:()=>fn});import{encodeLocation as zo}from"@galacticcouncil/common";import{hub as d0,XcmVersionedAssetId as $o}from"@galacticcouncil/descriptors";var De=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??d0}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=zo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,$o.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=zo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,$o.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as fs,XcmV5Junction as l0,XcmVersionedLocation as p0,XcmVersionedXcm as f0,XcmVersionedAssetId as h0}from"@galacticcouncil/descriptors";import{encodeLocation as y0}from"@galacticcouncil/common";import{Twox128 as b0,u128 as x0}from"@polkadot-api/substrate-bindings";import{toHex as A0}from"@polkadot-api/utils";var ve=class extends De{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=y0(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=A0(b0(n)),a=await this.client._request("state_getStorage",[o]);if(!a)return s;let r=x0.dec(a);return r===0n?s:r}async calculateDeliveryFee(e,s){let n=p0.V5({parents:1,interior:fs.X1(l0.Parachain(s))}),o=h0.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,f0.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:fs.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:fs.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:fs.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 g0}from"@galacticcouncil/descriptors";var Jo=14400;function Qo(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,f;s&&(s.type==="Locked"?(l=s.value,m=o<s.value):(u=s.value[0],f=s.value[1]));let b=n?.type==="Local"?"Local":"External",g=!m&&u!==void 0&&u+Jo<=o,T=null;if(r!==null)if(m)T=0n;else if(g)T=r;else{let F=f??a,B=a>F?a-F:0n;T=r>B?r-B:0n}return{assetId:t,symbol:c,decimals:i,limit:r,locked:m,lockedUntilBlock:l,lastResetBlock:u,baselineIssuance:f,currentIssuance:a,headroom:T,category:b,periodExpired:g}}async function ln(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 Qo(e,n,o,a,r,c)}async function pn(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 f=u.keyArgs[0],b=u.value;if(b?.xcm_rate_limit==null)continue;let g=f===0?a:m.get(f)??0n,T=Qo(f,b,c.get(f),i.get(f),o,g);l.set(f.toString(),T)}return l}async function fn(t){let[e,s,n,o]=await Promise.all([t.query.CircuitBreaker.GlobalWithdrawLimitConfig.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLimitAccumulator.getValue({at:"best"}),t.query.CircuitBreaker.WithdrawLockdownUntil.getValue({at:"best"}),t.query.Timestamp.Now.getValue({at:"best"})]),a=n??void 0,r=a!==void 0&&o<a,[c,i]=s;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:i,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:l}=e,u=c;if(!r&&l>0n){let b=o>i?o-i:0n;if(b>0n){let g=b>l?l:b,T=c*g/l;u=c>T?c-T:0n}}let f=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:l,used:u,lastUpdateMs:i,headroom:f,lockdown:r,lockdownUntilMs:a}}var ae=class extends De{constructor(e){super(e,g0)}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 ln(this.api(),s)}getAllAssetDepositLimits(){return pn(this.api())}getGlobalWithdrawLimit(){return fn(this.api())}};function k0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s})=>{let n=s,o=new ae(n),a=new ve(t.hub),r=us(e,n),c=Fo(e,n),i=Ut(Be),m=250000000n,l=Zn(Be,n.parachainId),[u,f,b,g]=await Promise.all([o.calculateDestinationFeeV5(c,y),a.calculateDeliveryFee(r,n.parachainId),a.calculateDeliveryFee(r,rs),a.calculateDestinationFeeV5(l,y)]),T=J(u,33n),F=J(f,33n),B=J(b,33n),Y=J(g,33n)+F,me=T,Re=await a.quoteEtherForDot(i,Y),Ge=J(Re,30n),Le=Ge<dn*2n?dn*2n:Ge,Ft=J(await a.quoteEtherForDot(i,me),100n),At=J(await a.quoteDotToEther(i,m+B),30n);return{amount:Le+At+Ft,breakdown:{executionFee:Le,relayerFee:At,remoteEtherFee:Ft,hydrationDotFee:me}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n,destination:o})=>{let a=n,r=o,c=new ve(t.hub),i=Ut(Be),m=Ys(e,a),[l,u,f]=await Promise.all([c.getBridgeDeliveryFee(),c.calculateDeliveryFee(m,rs),c.calculateDestinationFee(m,s)]),b=await r.evmClient.getProvider().getGasPrice(),g=jo+Ko+Wo+qo,T=b*g,F=J(T,10n),B=l+J(u,33n)+J(f,33n),W=J(await c.quoteDotForExactEther(i,F),20n),Y=new ae(a),me=Ks({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:Ne}),Re=J(await Y.calculateDestinationFeeV5(me,y),33n);return{amount:B+W+Re,breakdown:{dotRemoteFee:B,dotToEtherSwapAmount:W,etherFeeAmount:F,sourceExecutionFee:Re}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,a=s,r=w0.fromChain(o),c=new De(a),i=new ve(t.hub),m=us(e,a),[l,u]=await Promise.all([c.calculateDestinationFee(m,y),i.calculateDeliveryFee(m,a.parachainId)]),f=u+J(l,25n),b=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Zo.Snowbridge,address:r.getGateway(),args:[b,a.parachainId,f],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:f}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,a=new ve(t.hub),r=Ys(e,o),c=us(e,o),[i,m,l,u,f]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,rs),a.calculateDestinationFee(r,s),a.calculateDeliveryFee(c,o.parachainId),a.calculateDestinationFee(c,s)]);return{amount:i+m+J(l,25n)+u+J(f,25n),breakdown:{bridgeDeliveryFee:i,bridgeHubDeliveryFee:m,assetHubDestinationFee:l,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:f}}}})}}function E0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,a=n,r=t?.reserve;if(Po(e,o,a,r),r){let f=new De(a),b=new De(r),g=nn(e,a),T=So(e,r,a),[F,B]=await Promise.all([f.calculateDestinationFee(g,e),b.calculateDestinationFee(T,e)]),W=B+F,Y=J(W,20n),me=Y-W;return{amount:Y,breakdown:{reserveFee:B,destinationFee:F,margin:me}}}let c=new De(a),i=Xo(e,a),m=await c.calculateDestinationFee(i,e),l=J(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=C0.fromChain(s),o=s.getAssetId(t);return{amount:await s.evmClient.getProvider().readContract({abi:Zo.Basejump,address:n.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function C(){return{Basejump:v0,XcmPaymentApi:E0,Snowbridge:k0}}var T0="0";function P0(){return{build:async({address:t,chain:e})=>{let n=await new ae(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():T0,a=e.findAssetById(o);return a?a.asset:q}}}var X0=()=>({accountCurrencyMap:P0});function Jt(){return{multiTransactionPayment:X0}}var ta={};jt(ta,{Tag:()=>Kt});var Kt=(r=>(r.Basejump="Basejump",r.Ntt="Ntt",r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.SnowbridgeV1="SnowbridgeV1",r))(Kt||{});function sa(t,e){return new S0({source:{asset:t,fee:{asset:X},destinationFee:t},destination:{chain:p,asset:e,fee:{amount:C().Basejump().quoteFee(),asset:t}},contract:z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var _0=[sa(_t,gt)],na=new F0({chain:es,routes:[..._0]});import{AssetRoute as aa,ChainRoutes as B0}from"@galacticcouncil/xc-core";import{AssetRoute as hn}from"@galacticcouncil/xc-core";function oa(t,e){return new hn({source:{asset:t,fee:{asset:X}},destination:{chain:p,asset:e,fee:{amount:0,asset:e}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function re(t,e){return new hn({source:{asset:t,fee:{asset:X}},destination:{chain:p,asset:e,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function ie(t,e){return new hn({source:{asset:t,fee:{asset:X}},destination:{chain:p,asset:e,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var I0=[oa($e,Pe)],D0=[new aa({source:{asset:X,fee:{asset:X}},destination:{chain:p,asset:X,fee:{amount:C().Snowbridge().calculateInboundFee({hub:w}),asset:X}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),re(ue,ue),re(de,de),re(le,le),re(pe,pe),re(be,be),re(Ae,Ae),re(ge,ge),re(he,he),re(fe,fe),re(ye,ye),re(xe,xe),re(we,we),re(Ce,Ce),re(x,et),re(h,Ye)],R0=[new aa({source:{asset:X,fee:{asset:X}},destination:{chain:p,asset:X,fee:{amount:C().Snowbridge().calculateInboundFeeV1({hub:w}),asset:X}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),ie(ue,ue),ie(de,de),ie(le,le),ie(pe,pe),ie(be,be),ie(Ae,Ae),ie(ge,ge),ie(he,he),ie(fe,fe),ie(ye,ye),ie(xe,xe),ie(we,we),ie(Ce,Ce),ie(x,et),ie(h,Ye)],ra=new B0({chain:E,routes:[...I0,...D0,...R0]});var ia=[na,ra];import{AssetRoute as bs,ChainRoutes as ma}from"@galacticcouncil/xc-core";import{AssetRoute as yn}from"@galacticcouncil/xc-core";var Xt=0,L0=t=>{let{source:e}=t;return!!e.feeSwap},H0=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},ca=d().assetConversion().swapTokensForExactTokens({slippage:30});function V0(t,e,s){return new yn({source:{asset:t,fee:{asset:y,extra:Xt}},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:ot(H0,ca).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function hs(t,e,s){return new yn({source:{asset:t,fee:{asset:t,swap:!t.isEqual(y)}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:ot(L0,ca).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function St(t,e,s){return new yn({source:{asset:t,fee:{asset:y,extra:Xt}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function ys(t){return V0(t,p,.02)}var M0=[new bs({source:{asset:y,fee:{asset:y,extra:Xt}},destination:{chain:p,asset:y,fee:{amount:.001,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new bs({source:{asset:k,fee:{asset:y,extra:Xt}},destination:{chain:p,asset:k,fee:{amount:1e-4,asset:k}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),St(h,p,.02),St(x,p,.02),ys(nt)],O0=[new bs({source:{asset:k,fee:{asset:y,extra:Xt}},destination:{chain:Oe,asset:k,fee:{amount:.001,asset:k}},extrinsic:d().polkadotXcm().transferAssets()})],N0=[St(h,N,.25),St(x,N,.25)],U0=[St(h,D,.03),St(x,D,.03)],G0=[new bs({source:{asset:V,fee:{asset:y,extra:Xt}},destination:{chain:ct,asset:V,fee:{amount:2.5,asset:V}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],ua=new ma({chain:it,routes:[hs(h,p,.02),hs(x,p,.02),hs(y,p,.001)]}),da=new ma({chain:w,routes:[...M0,...O0,...N0,...U0,...G0]});import{AssetRoute as at,ChainRoutes as W0}from"@galacticcouncil/xc-core";var K0=[new at({source:{asset:I},destination:{chain:p,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:d().polkadotXcm().reserveTransferAssets()}),new at({source:{asset:P,fee:{asset:I}},destination:{chain:p,asset:P,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:D}),asset:P}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:v,fee:{asset:I}},destination:{chain:p,asset:v,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:N}),asset:v}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:_,fee:{asset:I}},destination:{chain:p,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:R,fee:{asset:I}},destination:{chain:p,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:L,fee:{asset:I}},destination:{chain:p,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:D}),asset:L}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:$,fee:{asset:I}},destination:{chain:p,asset:$,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:D}),asset:$}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:h,fee:{asset:I}},destination:{chain:p,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new at({source:{asset:x,fee:{asset:I}},destination:{chain:p,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],la=new W0({chain:Z,routes:[...K0]});import{AssetRoute as Ue,ChainRoutes as q0}from"@galacticcouncil/xc-core";var j0=[new Ue({source:{asset:P},destination:{chain:p,asset:P,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:P}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:L,fee:{asset:P}},destination:{chain:p,asset:L,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:$,fee:{asset:P}},destination:{chain:p,asset:$,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:y,fee:{asset:P}},destination:{chain:p,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new Ue({source:{asset:I,fee:{asset:P}},destination:{chain:p,asset:I,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:Z}),asset:I}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:v,fee:{asset:P}},destination:{chain:p,asset:v,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:N}),asset:v}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:_,fee:{asset:P}},destination:{chain:p,asset:_,fee:{amount:625e-8,asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:h,fee:{asset:P}},destination:{chain:p,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:x,fee:{asset:P}},destination:{chain:p,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],z0=[new Ue({source:{asset:h,fee:{asset:P}},destination:{chain:w,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new Ue({source:{asset:x,fee:{asset:P}},destination:{chain:w,asset:x,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],pa=new q0({chain:D,routes:[...j0,...z0]});import{AssetRoute as ze,ChainRoutes as Y0}from"@galacticcouncil/xc-core";var G=()=>({asset:Jt().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as rt}from"@galacticcouncil/xc-core";var $0=1,J0=.02,xs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},As=d().router().buy({slippage:30});function O(t,e,s){return new rt({source:{asset:t,fee:G()},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 rt({source:{asset:t,fee:G()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})}function yt(t,e){return new rt({source:{asset:t,fee:G()},destination:{chain:e,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function gs(t){return new rt({source:{asset:t,fee:G()},destination:{chain:w,asset:t,fee:{amount:J0,asset:h}},extrinsic:ot(xs,As).prior(d().polkadotXcm().limitedReserveTransferAssets())})}function bn(t,e,s){return new rt({source:{asset:t,fee:G()},destination:{chain:Oe,asset:t,fee:{amount:e,asset:t}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:s})})}function Q0(t,e,s="LocalReserve"){return new rt({source:{asset:t,fee:G()},destination:{chain:e,asset:t,fee:{amount:$0,asset:v}},extrinsic:ot(xs,As).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:s}))})}function bt(t){return Q0(t,N,"DestinationReserve")}function fa(t,e,s){return new rt({source:{asset:t,fee:G()},destination:{chain:s,asset:e,fee:{amount:0,asset:e}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function ee(t,e,s){return new rt({source:{asset:t,fee:G()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFee({hub:w}),asset:y}},extrinsic:ot(xs,As).prior(d().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function te(t,e,s){return new rt({source:{asset:t,fee:G()},destination:{chain:s,asset:e,fee:{amount:C().Snowbridge().calculateOutboundFeeV1({hub:w}),asset:y}},extrinsic:ot(xs,As).prior(d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var Z0=[yt(y,w),yt(k,w),yt(h,w),yt(x,w),gs(nt)],em=[bn(k,.05,.005),bn(y,.2,.02)],tm=[O(I,Z),O(P,Z,D),O(v,Z,N),new ze({source:{asset:_,fee:G()},destination:{chain:Z,asset:_,fee:{amount:2e-6,asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:R,fee:G()},destination:{chain:Z,asset:R,fee:{amount:.01,asset:R}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),O(L,Z,D),O($,Z,D),O(h,Z,w),O(x,Z,w)],sm=[O(P,D),O(L,D),O($,D),O(I,D,Z),O(v,D,N),new ze({source:{asset:_,fee:G()},destination:{chain:D,asset:_,fee:{amount:5e-6,asset:_}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),O(h,D,w),O(x,D,w),new ze({source:{asset:y,fee:G()},destination:{chain:D,asset:y,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:w}),asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],nm=[qt(_,_e,62e-8),qt(R,_e,.0019213457),qt(q,_e,.5),qt(h,_e,.3),qt(x,_e,.3),new ze({source:{asset:L,fee:G()},destination:{chain:_e,asset:L,fee:{amount:.01,asset:y}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:y,fee:G()},destination:{chain:_e,asset:y,fee:{amount:.05,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],om=[O(q,N),O(v,N),O(h,N,w),O(x,N,w),bt(Pe),bt(Je),bt(Ze),bt(Qe),bt(st),bt(tt),bt(Fe)],am=[new ze({source:{asset:V,fee:G()},destination:{chain:ct,asset:V,fee:{amount:2.5,asset:V}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],rm=[O(Me,Mt)],im=[new ze({source:{asset:Te,fee:G()},destination:{chain:Lt,asset:Te,fee:{amount:.04,asset:Te}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],cm=[new ze({source:{asset:Ee,fee:G()},destination:{chain:Ot,asset:Ee,fee:{amount:.02,asset:Ee}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],mm=[new ze({source:{asset:Xe,fee:G()},destination:{chain:Vt,asset:Xe,fee:{amount:1.1,asset:Xe}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],um=[O(Ve,Ht)],dm=[O(He,Rt)],lm=[fa(Pe,$e,E)],pm=[ee(X,X,E),ee(ue,ue,E),ee(de,de,E),ee(le,le,E),ee(pe,pe,E),ee(be,be,E),ee(Ae,Ae,E),ee(ge,ge,E),ee(we,we,E),ee(he,he,E),ee(fe,fe,E),ee(ye,ye,E),ee(xe,xe,E),ee(Ce,Ce,E),ee(et,x,E),ee(Ye,h,E)],fm=[te(X,X,E),te(ue,ue,E),te(de,de,E),te(le,le,E),te(pe,pe,E),te(be,be,E),te(Ae,Ae,E),te(ge,ge,E),te(we,we,E),te(he,he,E),te(fe,fe,E),te(ye,ye,E),te(xe,xe,E),te(Ce,Ce,E),te(et,x,E),te(Ye,h,E)],hm=[yt(y,it),yt(h,it),yt(x,it)],ha=new Y0({chain:p,routes:[...dm,...Z0,...tm,...sm,...hm,...im,...lm,...pm,...fm,...nm,...cm,...em,...om,...am,...um,...mm,...rm]});import{AssetRoute as Cs,ChainRoutes as ym}from"@galacticcouncil/xc-core";function ws(t,e){return new Cs({source:{asset:t,fee:{asset:R}},destination:{chain:p,asset:t,fee:{amount:C().XcmPaymentApi().calculateDestFee({reserve:e}),asset:t}},extrinsic:d().xTokens().transfer()})}var bm=[new Cs({source:{asset:R},destination:{chain:p,asset:R,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Cs({source:{asset:_,fee:{asset:R}},destination:{chain:p,asset:_,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:d().xTokens().transfer()}),new Cs({source:{asset:q,fee:{asset:R}},destination:{chain:p,asset:q,fee:{amount:.5,asset:q}},extrinsic:d().xTokens().transfer()}),ws(L,D),ws(h,w),ws(x,w),ws(y,w)],ya=new ym({chain:_e,routes:[...bm]});import{AssetRoute as xn,ChainRoutes as gm}from"@galacticcouncil/xc-core";import{AssetRoute as ba}from"@galacticcouncil/xc-core";function xm(t,e,s){return new ba({source:{asset:t,fee:{asset:v}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function Am(t,e,s){return new ba({source:{asset:t,fee:{asset:v}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:z().PolkadotXcm().transferAssetsToPara32()})}function xt(t,e){return xm(t,p,e)}function ks(t,e){return Am(t,p,e)}var wm=[new xn({source:{asset:v},destination:{chain:p,asset:v,fee:{amount:.05,asset:v}},contract:z().PolkadotXcm().transferAssetsToPara32()}),ks(q,.6),ks(h,.3),ks(x,.3),xt(Pe,.004),xt(Je,.004),xt(Ze,.004),xt(Qe,.004),xt(st,1e-7),xt(tt,2e-6),xt(Fe,2e-5)],Cm=[new xn({source:{asset:h,fee:{asset:v}},destination:{chain:w,asset:h,fee:{amount:.18,asset:h}},contract:z().PolkadotXcm().transferAssetsToPara32()}),new xn({source:{asset:x,fee:{asset:v}},destination:{chain:w,asset:x,fee:{amount:.18,asset:x}},contract:z().PolkadotXcm().transferAssetsToPara32()})],xa=new gm({chain:N,routes:[...wm,...Cm]});import{AssetRoute as Aa,ChainRoutes as km}from"@galacticcouncil/xc-core";var Em=[new Aa({source:{asset:V},destination:{chain:p,asset:V,fee:{amount:.01,asset:V}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],vm=[new Aa({source:{asset:V},destination:{chain:w,asset:V,fee:{amount:.1,asset:V}},extrinsic:d().polkadotXcm().limitedTeleportAssets()})],ga=new km({chain:ct,routes:[...Em,...vm]});import{AssetRoute as Tm,ChainRoutes as Pm}from"@galacticcouncil/xc-core";var Xm=[new Tm({source:{asset:Me},destination:{chain:p,asset:Me,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Me}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],wa=new Pm({chain:Mt,routes:[...Xm]});import{AssetRoute as Sm,ChainRoutes as Fm}from"@galacticcouncil/xc-core";var _m=[new Sm({source:{asset:Te},destination:{chain:p,asset:Te,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:Te}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ca=new Fm({chain:Lt,routes:[..._m]});import{AssetRoute as Bm,ChainRoutes as Im}from"@galacticcouncil/xc-core";var Dm=[new Bm({source:{asset:Xe},destination:{chain:p,asset:Xe,fee:{amount:.2,asset:Xe}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],ka=new Im({chain:Vt,routes:[...Dm]});import{AssetRoute as Rm,ChainRoutes as Lm}from"@galacticcouncil/xc-core";var Hm=[new Rm({source:{asset:He},destination:{chain:p,asset:He,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],Ea=new Lm({chain:Rt,routes:[...Hm]});import{AssetRoute as Vm,ChainRoutes as Mm}from"@galacticcouncil/xc-core";var Om=[new Vm({source:{asset:Ee,fee:{asset:Ee,extra:.030555}},destination:{chain:p,asset:Ee,fee:{amount:.03,asset:Ee}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],va=new Mm({chain:Ot,routes:[...Om]});import{AssetRoute as Nm,ChainRoutes as Um}from"@galacticcouncil/xc-core";var Gm=[new Nm({source:{asset:Ve},destination:{chain:p,asset:Ve,fee:{amount:.205,asset:Ve}},extrinsic:d().polkadotXcm().reserveTransferAssets()})],Ta=new Um({chain:Ht,routes:[...Gm]});var Pa=[Ea,da,ua,la,pa,ha,ya,xa,ga,Ta,wa,Ca,ka,va];import{ChainRoutes as Wm}from"@galacticcouncil/xc-core";var Km=[],Xa=new Wm({chain:ns,routes:[...Km]});var Sa=[Xa];import{ChainRoutes as qm}from"@galacticcouncil/xc-core";var jm=[],Fa=new qm({chain:os,routes:[...jm]});var _a=[Fa];import{AssetRoute as Es,ChainRoutes as zm}from"@galacticcouncil/xc-core";import{AssetRoute as zA}from"@galacticcouncil/xc-core";var Qt=.0015;var $m=new Es({source:{asset:k,fee:{asset:k,extra:Qt}},destination:{chain:w,asset:k,fee:{amount:.002,asset:k}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Jm=new Es({source:{asset:k,fee:{asset:k,extra:Qt}},destination:{chain:Nt,asset:k,fee:{amount:.0012,asset:k}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Qm=[new Es({source:{asset:k,fee:{asset:k,extra:Qt}},destination:{chain:p,asset:k,fee:{amount:.04,asset:k}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Es({source:{asset:y,fee:{asset:k,extra:Qt}},destination:{chain:p,asset:y,fee:{amount:.15,asset:y}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],Ba=new zm({chain:Oe,routes:[Jm,$m,...Qm]});import{AssetRoute as Ia,ChainRoutes as Ym}from"@galacticcouncil/xc-core";var An=()=>({asset:Jt().multiTransactionPayment().accountCurrencyMap()});var Zm=[new Ia({source:{asset:h,fee:An()},destination:{chain:Oe,asset:h,fee:{amount:C().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:d().polkadotXcm().limitedReserveTransferAssets()})],eu=[new Ia({source:{asset:k,fee:An()},destination:{chain:Oe,asset:k,fee:{amount:.0012,asset:k}},extrinsic:d().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Da=new Ym({chain:Nt,routes:[...Zm,...eu]});var Ra=[Ba,Da];var tu=[...ia,...Pa,...Sa,..._a,...Ra],su=new Map(tu.map(t=>[t.chain.key,t]));import{Parachain as Oa}from"@galacticcouncil/xc-core";import{Parachain as nu,TransferValidation as La,TransferValidationError as Ha}from"@galacticcouncil/xc-core";var vs=class extends La{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:a}=s;if(a.amount<o.amount)throw new Ha("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Ts=class extends La{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 Ha("Insufficient_Fee_Balance",{amount:i.toDecimal(),asset:i.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e instanceof nu)return(await e.getMin(s)).amount;let n=e.getAssetMin(s);return BigInt(n*10**s.decimals)}};import{TransferValidation as Va,TransferValidationError as Ma}from"@galacticcouncil/xc-core";var Ps=class extends Va{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new ve(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,a=o.chain;if(await new ve(a).getSystemAccountBalance(n)===0n)throw new Ma("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Xs=class extends Va{async validate(e){let{asset:s,sender:n,source:o}=e,a=o.chain;if(await new ve(a).checkIfFrozen(n,s))throw new Ma("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Is,TransferValidationError as Yt}from"@galacticcouncil/xc-core";var ou=12,au=1,ru=18,Ss=class extends Is{async skipFor(e){let{destination:s}=e,n=s.chain,o=new ae(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 ae(a),c=await r.getFeeAsset(n),i=a.findAssetById(c),m=i.min||au,l=i.decimals||ou,u=m*Math.pow(10,l),f=await r.getAssetBalance(n,c);if(BigInt(u*1.1)>f)throw new Yt("Insufficient_Ed",{amount:u,asset:i.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Fs=class extends Is{async validate(e){let{amount:s,asset:n,destination:o}=e,a=o.chain,c=await new ae(a).getAssetDepositLimit(n);if(c.locked)throw new Yt("Deposit_Asset_Lockdown",{asset:n.originSymbol,chain:a.name,lockedUntilBlock:c.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(c.headroom!==null&&s>c.headroom)throw new Yt("Deposit_Limit_Exceeded",{asset:n.originSymbol,chain:a.name,headroom:c.headroom,limit:c.limit,error:"circuitBreaker.depositLimitExceeded"})}},_s=class extends Is{async validate(e){let{source:s}=e,n=s.chain,a=await new ae(n).getGlobalWithdrawLimit();if(a.lockdown)throw new Yt("Withdraw_Lockdown_Active",{chain:n.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}},Bs=class extends Is{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 ae(a),c=a.getBalanceAssetId(v),i=a.getAssetDecimals(v)||ru,m=1*Math.pow(10,i);if(await r.getTokensAccountsBalance(n,c.toString())<BigInt(m))throw new Yt("Insufficient_Ed",{amount:1,asset:v.originSymbol,chain:a.name,error:"destFee.insufficientBalance"})}};var ce={isAny:()=>!0,isHydration:t=>t instanceof Oa&&t.parachainId===2034,isHub:t=>t instanceof Oa&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},iu=[new vs(ce.isAny,ce.isAny),new Ts(ce.isAny,ce.isAny),new Ps(ce.isAny,ce.isHub),new Xs(ce.isHub,ce.isAny),new Ss(ce.isAny,ce.isHydration),new Bs(ce.isHydration,ce.isAny),new Fs(ce.isAny,ce.isHydration),new _s(ce.isHydration,ce.isAny)];var Ua={};jt(Ua,{AssethubDex:()=>wn,HydrationDex:()=>gn});import{pool as cu,sor as mu,tx as uu}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as du}from"@galacticcouncil/common";import{Binary as lu}from"polkadot-api";import{memoize1 as pu}from"@thi.ng/memoize";var{PoolType:Ds}=cu,{TradeRouteBuilder:fu,TradeRouter:hu}=mu,{TxBuilderFactory:yu}=uu,gn=class{chain;client;poolCtx;txBuilder;getCtx=pu(async e=>{console.log("init swap router",e,"\u2705");let s=new hu(this.poolCtx);return s.withFilter({useOnly:[Ds.Aave,Ds.Omni,Ds.Stable,Ds.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new ae(this.chain),this.txBuilder=new yu(s.client,s.evm)}async getCalldata(e,s,n,o,a=0){let r=Number(this.chain.getMetadataAssetId(s)),c=Number(this.chain.getMetadataAssetId(n)),i=o.amount,m=await this.getCtx(1),l=await m.getMostLiquidRoute(r,c),u=await m.getBuy(r,c,i,l),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return lu.toHex(g)}async getQuote(e,s,n,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(s)),c=n.amount,i=await this.getCtx(1);try{let m=await i.getMostLiquidRoute(a,r),l=await i.getBuy(a,r,c,m);return{amount:l.amountIn,route:fu.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,du);return a/BigInt(r)}};import{encodeLocation as Na}from"@galacticcouncil/common";var wn=class{chain;client;constructor(e){this.chain=e,this.client=new ve(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(Na(o),Na(a),n.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as xu}from"@galacticcouncil/xc-core";import{Asset as bu}from"@galacticcouncil/xc-core";function Rs(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new bu({key:[o,s,e].join("_"),originSymbol:n})}function Ga(t){let{decimals:e,id:s}=t;return{asset:Rs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function Wa(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Rs(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 Cn=class extends xu{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=Rs(a),c=Ga(a),i=Wa(a);console.log("\u{1F480} Registering "+r.key),n.updateAsset(c),s.updateAsset(i),this.updateAsset(r),this.updateChainRoute(n,ys(r)),this.updateChainRoute(s,gs(r))})}};export{Cn as HydrationConfigService,Ja as assetsMap,ea as builders,hi as chainsMap,Yo as clients,Ua as dex,su as routesMap,ta as tags,iu as validations};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "2.0.0-pr346-381fdd2",
3
+ "version": "2.0.0-pr346-efeaee1",
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-381fdd2",
34
+ "@galacticcouncil/xc-core": "2.0.0-pr346-efeaee1",
35
35
  "@thi.ng/memoize": "^4.0.2"
36
36
  },
37
37
  "peerDependencies": {