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