@galacticcouncil/xc-cfg 2.4.0 → 2.4.1

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.mjs CHANGED
@@ -1 +1 @@
1
- var vr=Object.defineProperty;var Jt=(t,e)=>{for(var n in e)vr(t,n,{get:e[n],enumerable:!0})};import{Asset as b}from"@galacticcouncil/xc-core";var se=new b({key:"aave",originSymbol:"AAVE"}),zn=new b({key:"ajun",originSymbol:"AJUN"}),oe=new b({key:"apyusd",originSymbol:"apyUSD"}),I=new b({key:"astr",originSymbol:"ASTR"}),F=new b({key:"bnc",originSymbol:"BNC"}),jn=new b({key:"bsx",originSymbol:"BSX"}),ae=new b({key:"cfg_new",originSymbol:"CFG"}),$n=new b({key:"cru",originSymbol:"CRU"}),We=new b({key:"dai",originSymbol:"DAI"}),je=new b({...We,key:"dai_wh"}),x=new b({key:"dot",originSymbol:"DOT"}),k=new b({key:"eth",originSymbol:"ETH"}),re=new b({key:"ena",originSymbol:"ENA"}),De=new b({key:"eurc",originSymbol:"EURC"}),Oe=new b({...De,key:"eurc_wh"}),lt=new b({key:"glmr",originSymbol:"GLMR"}),Rt=new b({key:"hdx",originSymbol:"HDX"}),L=new b({key:"ibtc",originSymbol:"IBTC"}),Pe=new b({key:"intr",originSymbol:"INTR"}),we=new b({key:"jitoSol",originSymbol:"jitoSOL"}),T=new b({key:"ksm",originSymbol:"KSM"}),ie=new b({key:"ldo",originSymbol:"LDO"}),ce=new b({key:"lbtc",originSymbol:"LBTC"}),Ce=new b({key:"ewt",originSymbol:"EWT"}),me=new b({key:"link",originSymbol:"LINK"}),X=new b({key:"myth",originSymbol:"MYTH"}),Ge=new b({key:"neuro",originSymbol:"NEURO"}),_e=new b({key:"pen",originSymbol:"PEN"}),ue=new b({key:"paxg",originSymbol:"PAXG"}),Ee=new b({key:"prime",originSymbol:"PRIME"}),de=new b({key:"sky",originSymbol:"SKY"}),le=new b({key:"sol",originSymbol:"SOL"}),fe=new b({key:"sui",originSymbol:"SUI"}),pe=new b({key:"susde",originSymbol:"sUSDe"}),Be=new b({key:"susds",originSymbol:"sUSDS"}),$e=new b({...Be,key:"susds_wh"}),he=new b({key:"tbtc",originSymbol:"tBTC"}),ge=new b({key:"trac",originSymbol:"TRAC"}),Ue=new b({key:"unq",originSymbol:"UNQ"}),y=new b({key:"usdt",originSymbol:"USDT"}),Je=new b({...y,key:"usdt_wh"}),ot=new b({...y,key:"usdt_eth"}),E=new b({key:"usdc",originSymbol:"USDC"}),Qe=new b({...E,key:"usdc_wh"}),at=new b({...E,key:"usdc_eth"}),O=new b({key:"vastr",originSymbol:"vASTR"}),G=new b({key:"vdot",originSymbol:"vDOT"}),Ye=new b({key:"weth",originSymbol:"WETH"}),ve=new b({...Ye,key:"weth_wh"}),Se=new b({key:"wbtc",originSymbol:"WBTC"}),Ze=new b({...Se,key:"wbtc_wh"}),Lt=new b({key:"wsol",originSymbol:"wSOL"}),ye=new b({key:"wsteth",originSymbol:"wstETH"}),rt=new b({key:"wud",originSymbol:"WUD"}),kr=[se,zn,oe,I,jn,ae,$n,F,We,je,x,re,De,Oe,k,lt,Rt,L,Pe,T,ie,ce,Ce,we,me,X,Ge,ue,_e,Ee,de,le,fe,pe,Be,$e,ge,he,Ue,E,Qe,at,y,Je,ot,O,G,Se,Ze,Ye,ve,Lt,ye,rt],Tr=new Map(kr.map(t=>[t.key,t]));import{ChainEcosystem as Pr,EvmChain as _r,EvmBalanceType as Br}from"@galacticcouncil/xc-core";import{base as Sr}from"viem/chains";var kt=new _r({id:8453,key:"base",name:"Base",assetsData:[{asset:k,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:De,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:E,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Br.Erc20,ecosystem:Pr.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",nttExecutor:"0x27db1967D469D89318B7119Ced5609f327095de4",ntt:{[De.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as Fr,EvmChain as Ir,EvmBalanceType as Ks}from"@galacticcouncil/xc-core";import{mainnet as Dr}from"viem/chains";var A=new Ir({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:k,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:se,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:oe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ae,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Ye,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:We,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:re,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:pe,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Be,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:he,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Se,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ce,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:E,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:y,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ie,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:me,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:ue,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:de,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ge,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ye,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:Ks.Erc20,balanceOverrides:{[k.key]:Ks.Native},ecosystem:Fr.Ethereum,evmChain:Dr,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",nttExecutor:"0xC079bFA54F348199bA51B2717595fE24e96f1542",ntt:{[We.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Be.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[E.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[y.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Se.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[Ye.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[k.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var zs=[kt,A];import{ChainEcosystem as Xr,Parachain as js,SubstrateBalanceType as ln,SubstrateMinType as Rr}from"@galacticcouncil/xc-core";var $s={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:rt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:X,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:ln.Assets,balanceOverrides:{[x.key]:ln.System,[T.key]:ln.ForeignAssets,[X.key]:ln.ForeignAssets},min:Rr.Assets,ecosystem:Xr.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"]},_=new js({...$s,key:"assethub",name:"AssetHub Polkadot"}),ft=new js({...$s,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as Lr,Parachain as Nr,SubstrateBalanceType as Js}from"@galacticcouncil/xc-core";var Y=new Nr({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,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:lt,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Js.Assets,balanceOverrides:{[I.key]:Js.System},ecosystem:Lr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Vr,Parachain as Hr,SubstrateBalanceType as Qs}from"@galacticcouncil/xc-core";var Mr=["wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://hk.p.bifrost-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],R=new Hr({assetsData:[{asset:F,id:{Native:F.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,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:lt,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Qs.Tokens,balanceOverrides:{[F.key]:Qs.System},ecosystem:Vr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Mr});import{ChainEcosystem as Ur,EvmParachain as qr,SubstrateBalanceType as Zs}from"@galacticcouncil/xc-core";import{defineChain as Kr}from"viem";import{h160 as Wr}from"@galacticcouncil/common";import{AccountId as Or}from"polkadot-api";var{isEvmAccount:Gr,H160:Ys}=Wr,fn=class{async toH160(e,n){if(Gr(e))return Ys.fromAccount(e);let s=Ys.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=Or().enc(s),i=this.asBytes(a);return Buffer.from(i).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 zr=new fn,Jn=["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"],Qn=["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=Kr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Jn,webSocket:Qn},default:{http:Jn,webSocket:Qn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new qr({assetsData:[{asset:Rt,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:se,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:zn,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:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ae,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:$n,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:je,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:k,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:oe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:re,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:lt,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:we,decimals:9,id:40,min:27e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:Ee,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:Ce,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ie,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:ce,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:me,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:ue,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:X,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ge,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:_e,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:de,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:le,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:fe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:pe,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Be,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:$e,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:he,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ge,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ue,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:E,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Qe,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:Oe,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:at,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:y,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Je,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:ot,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:O,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Se,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ze,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ye,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ve,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ye,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:rt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:Zs.Tokens,balanceOverrides:{[Rt.key]:Zs.System},ecosystem:Ur.Polkadot,evmChain:jr,evmResolver:zr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",nttExecutor:"0xd3Dda7c8608Ea251C42c6E0A2A686aDc5e9C0C03",ntt:{[je.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Oe.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[we.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Ee.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[le.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[$e.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Qe.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Je.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ze.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[ve.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Qn,rpcs:Jn});import{ChainEcosystem as $r,Parachain as Jr,SubstrateBalanceType as Qr}from"@galacticcouncil/xc-core";var pt=new Jr({assetsData:[{asset:X,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Qr.System,ecosystem:$r.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as Yr,Parachain as Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Nt=new Zr({assetsData:[{asset:Ge,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ei.System,ecosystem:Yr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as ti,Parachain as ni,XcmVersion as si,SubstrateBalanceType as oi}from"@galacticcouncil/xc-core";var Vt=new ni({assetsData:[{asset:_e,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:oi.System,ecosystem:ti.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:si.v3});import{ChainEcosystem as ai,Parachain as ri,SubstrateBalanceType as ii}from"@galacticcouncil/xc-core";var ci={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:ii.System,ecosystem:ai.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},eo=new ri({...ci,key:"polkadot"});import{ChainEcosystem as mi,Parachain as ui,SubstrateBalanceType as di}from"@galacticcouncil/xc-core";var Ht=new ui({assetsData:[{asset:Ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:di.System,ecosystem:mi.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as li,Parachain as fi,XcmVersion as pi,SubstrateBalanceType as hi}from"@galacticcouncil/xc-core";var Mt=new fi({assetsData:[{asset:Ce,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:hi.System,ecosystem:li.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:pi.v3});var to=[_,ft,Y,R,h,Nt,pt,Vt,eo,Ht,Mt];import{ChainEcosystem as gi,SolanaChain as yi,SolanaBalanceType as no}from"@galacticcouncil/xc-core";var qe=new yi({id:101,key:"solana",name:"Solana",assetsData:[{asset:le,decimals:9},{asset:Lt,id:"So11111111111111111111111111111111111111112",decimals:9},{asset:we,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Ee,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:no.Token,balanceOverrides:{[le.key]:no.Native},ecosystem:gi.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:{[le.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Lt.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[we.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Ee.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var so=[qe];import{ChainEcosystem as bi,SuiChain as xi,SuiBalanceType as Ai}from"@galacticcouncil/xc-core";var Tt=new xi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:fe,decimals:9}],balance:Ai.Native,ecosystem:bi.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var oo=[Tt];import{ChainEcosystem as wi,Parachain as Ci,SubstrateBalanceType as Yn,SubstrateMinType as Ei}from"@galacticcouncil/xc-core";var Ke=new Ci({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:y,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Yn.Assets,balanceOverrides:{[T.key]:Yn.System,[x.key]:Yn.ForeignAssets},min:Ei.Assets,ecosystem:wi.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as vi,Parachain as ki,SubstrateBalanceType as Ti}from"@galacticcouncil/xc-core";var Wt=new ki({assetsData:[{asset:jn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ti.Tokens,ecosystem:vi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var ao=[Ke,Wt];var Pi=[...zs,...to,...so,...oo,...ao],_i=new Map(Pi.map(t=>[t.key,t]));import{ChainRoutes as Dm}from"@galacticcouncil/xc-core";import{AssetRoute as Ls}from"@galacticcouncil/xc-core";var Ra={};Jt(Ra,{ContractBuilder:()=>z,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>ut,FeeAmountBuilder:()=>P,FeeAssetBuilder:()=>an,MoveBuilder:()=>Xs,ProgramBuilder:()=>Rs,XcmTransferType:()=>Fe,XcmVersion:()=>mt});import{Abi as ro,ContractConfig as Bi,Precompile as Si}from"@galacticcouncil/xc-core";import{encodeFunctionData as Fi}from"viem";var Ii=t=>({build:async e=>{let s=(await Promise.all(t.map(i=>i.build(e)))).flat(),o=s.map(i=>i.address),a=[0,0],r=s.map(i=>Fi({abi:ro[i.module],functionName:i.func,args:i.args}));return[new Bi({abi:ro.Batch,address:Si.Batch,args:[o,a,r,[]],func:"batchAll",module:"Batch"})]}}),io=()=>({batchAll:Ii});import{Abi as Di,ContractConfig as Xi,Wormhole as Ri}from"@galacticcouncil/xc-core";function U(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Pt(t){return typeof t=="object"?Object.values(t)[0]:t}function co(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o}=e,a=o.chain,r=Ri.fromChain(a),i=a.getAssetId(s);return[new Xi({abi:Di.Erc20,address:Pt(i).toString(),args:[t(r),n],func:"approve",module:"Erc20"})]}})}}import{Abi as Li,Basejump as Ni,ContractConfig as Vi}from"@galacticcouncil/xc-core";import{h160 as Hi}from"@galacticcouncil/common";import{AccountId as Mi}from"polkadot-api";import{toHex as Wi}from"@polkadot-api/utils";var{H160:Oi,isEvmAddress:Gi}=Hi;function Ui(t){let e=Gi(t)?Oi.toAccount(t):t;return Wi(Mi().enc(e))}var qi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=Ni.fromChain(a),i=a.getAssetId(s);return[new Vi({abi:Li.Basejump,address:r.getAddress(),args:[Pt(i),n,Ui(e)],func:"bridgeViaWormhole",module:"Basejump"})]}}),mo=()=>({bridgeViaWormhole:qi});import{addr as Ki,Abi as uo,ContractConfig as lo,Precompile as fo}from"@galacticcouncil/xc-core";import{big as zi}from"@galacticcouncil/common";var{Ss58Addr:po}=Ki;function ji(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 Zn(t,e){let n=t.getAssetId(e);return typeof n=="string"?ji(n):n}function ho(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Zn(o.chain,n);return[new lo({abi:uo.PolkadotXcm,address:fo.PolkadotXcm,args:[s.chain.parachainId,po.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})]}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Zn(o.chain,n),r=Zn(o.chain,o.destinationFeeBalance),i=zi.toBigInt(s.fee.amount,s.fee.decimals);return[new lo({abi:uo.PolkadotXcm,address:fo.PolkadotXcm,args:[s.chain.parachainId,po.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:i}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})]}})}}import{addr as tc,Abi as Co,ContractConfig as Eo,Snowbridge as vo}from"@galacticcouncil/xc-core";import{XcmV5Junctions as nc,XcmV5Junction as sc,XcmVersionedXcm as oc,XcmVersionedLocation as ac}from"@galacticcouncil/descriptors";import{Blake2256 as rc}from"@polkadot-api/substrate-bindings";import{toHex as as}from"@polkadot-api/utils";import{encodeAbiParameters as ic}from"viem";import{codec as $i}from"@galacticcouncil/xc-core";var pn=null;async function go(){if(pn)return pn;let t=await $i.getHubCodecs();return pn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},pn}import{multiloc as Qi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as be,XcmV5AssetFilter as Z,XcmV5Instruction as S,XcmV5Junctions as gt,XcmV5Junction as tt,XcmV5NetworkId as es,XcmV5WildAsset as et,XcmVersionedXcm as Yi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Zi}from"@polkadot-api/substrate-bindings";import{toHex as ec}from"@polkadot-api/utils";import{XcmV3Junctions as Ji}from"@galacticcouncil/descriptors";var q=340282366920938463463374607431768211455n,ze="0x0000000000000000000000000000000000000000000000000000000000000000",M={parents:1,interior:Ji.Here()},yo=0,ht=1e3,hn=1002,Xe=1,_t="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",bo="0x0000000000000000000000000000000000000000000000000000000000000000",xo="0x0000000000000000000000000000000000000000";var ts="0x0000000000000000000000000000000000000000",Ot=t=>({parents:2,interior:gt.X1(tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(t)})))}),ns=(t,e)=>({parents:2,interior:gt.X2([tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(t)})),tt.AccountKey20({key:e,network:void 0})])});function Ao(t,e){let n=Ot(t),s=ns(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[S.ReserveAssetDeposited([{id:n,fun:be.Fungible(o)},{id:s,fun:be.Fungible(o)}]),S.ExchangeAsset({give:Z.Wild(et.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:M,fun:be.Fungible(a)}],maximal:!1}),S.PayFees({asset:{id:M,fun:be.Fungible(a)}})],i=ss({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,...i]}function ss(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:i}=t,c=Ot(e),m=s===ts?c:ns(e,s),u=o.length===42&&o.startsWith("0x")?tt.AccountKey20({key:o,network:void 0}):tt.AccountId32({id:o,network:void 0}),l={parents:0,interior:gt.X1(u)};return[S.SetAppendix([S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})]),S.ExchangeAsset({give:Z.Wild(et.AllOf({id:c,fun:{type:"Fungible",value:void 0}})),want:[{id:M,fun:be.Fungible(r)}],maximal:!1}),S.InitiateTransfer({destination:{parents:1,interior:gt.X1(tt.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Z.Definite([{id:M,fun:be.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Z.Definite([{id:m,fun:be.Fungible(a)}])}],remote_xcm:[S.DepositAsset({assets:Z.Wild(et.AllCounted(3)),beneficiary:l}),S.SetTopic(i)]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l}),S.SetTopic(i)]}function os(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:i,etherFeeAmount:c,topic:m}=t,d=Ot(Xe),u=e===ts?d:ns(Xe,e),l={parents:0,interior:gt.X1(tt.AccountId32({id:n,network:void 0}))},p={parents:0,interior:gt.X1(tt.AccountKey20({key:s,network:void 0}))},g={parents:2,interior:gt.X1(tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(Xe)})))},w=[S.DepositAsset({assets:Z.Wild(et.AllCounted(3)),beneficiary:p}),S.SetTopic(m)],B=[S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})])];B.push(S.ExchangeAsset({give:Z.Definite([{id:M,fun:be.Fungible(i)}]),want:[{id:d,fun:be.Fungible(c)}],maximal:!1}));let v=[{type:"ReserveWithdraw",value:Z.Wild(et.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],V=Z.Definite([{id:d,fun:be.Fungible(c)}]);B.push(S.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:V},preserve_origin:!0,assets:v,remote_xcm:w}),S.SetTopic(m));let D=a+r+i,H=[{id:M,fun:be.Fungible(D)},{id:u,fun:be.Fungible(o)}],K=[{id:M,fun:be.Fungible(a)}],C={type:"ReserveWithdraw",value:Z.Wild(et.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},Me=[{type:"ReserveWithdraw",value:Z.Definite([{id:M,fun:be.Fungible(i)}])},C];return[S.WithdrawAsset(H),S.PayFees({asset:K[0]}),S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})]),S.InitiateTransfer({destination:{parents:1,interior:gt.X1(tt.Parachain(ht))},remote_fees:{type:"ReserveWithdraw",value:Z.Definite([{id:M,fun:be.Fungible(r)}])},preserve_origin:!0,assets:Me,remote_xcm:B}),S.SetTopic(m)]}function wo(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:i}=t,c=a.chain,m=Zi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let d=ec(m.publicKey),u=c.getAssetXcmLocation(s),l=u?Qi.findNestedKey(u,"key"):void 0,p=l?l.key:ts,g=r.feeBreakdown,w=g.sourceExecutionFee??0n,B=g.dotRemoteFee??0n,v=g.dotToEtherSwapAmount??0n,V=g.etherFeeAmount??0n,H=os({tokenAddress:p,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:w,dotRemoteFee:B,dotToEtherSwapAmount:v,etherFeeAmount:V,topic:i??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Yi.V5(H)}var{Ss58Addr:ko}=tc,cc="0x0000000000000000000000000000000000000000",mc=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,i=a.chain,c=r.chain,m=vo.fromChain(i),d=i.getAssetId(s),u=Pt(d),l=s.originSymbol==="ETH",p=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,w=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,v=ko.getPubKey(e),V=new TextEncoder().encode(`${c.parachainId}${o}${u}${v}${n}${Date.now()}`),D=as(rc(V)),H=ss({ethChainId:Xe,destinationParaId:c.parachainId,tokenAddress:l?cc:u,beneficiaryHex:v,tokenAmount:n,hydrationDotFee:w,topic:D}),K=await go(),C=as(K.message.enc(oc.V5(H))),Me=[];l||Me.push(ic([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=K.location.enc(ac.V5({parents:0,interior:nc.X1(sc.AccountId32({id:v,network:void 0}))})),dt=as(st.slice(1));return[new Eo({abi:Co.Snowbridge,address:m.getGateway(),args:[C,Me,dt,p,g],value:l?B+n:B,func:"v2_sendMessage",module:"Snowbridge"})]}}),uc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=vo.fromChain(r),m=r.getAssetId(s),d=Pt(m),u=s.originSymbol==="ETH",l=a.feeBreakdown.bridgeFeeInDot,p=a.fee.amount;return[new Eo({abi:Co.Snowbridge,address:c.getGateway(),args:[d,i.parachainId,[1,ko.getPubKey(e)],l,n],value:u?p+n:p,func:"sendToken",module:"Snowbridge"})]}}),To=()=>({v2SendMessage:mc,sendToken:uc});import{Abi as Ut,ContractConfig as bn,EvmBalanceType as Jc,EvmParachain as us,Ntt as Mo,Wormhole as ds}from"@galacticcouncil/xc-core";import{encoding as Po,serializeLayout as dc}from"@wormhole-foundation/sdk-base";import{RequestPrefix as lc,UniversalAddress as fc}from"@wormhole-foundation/sdk-definitions";var Qt="0x00",rs=8,_o="https://executor.labsapis.com",pc=[{name:"prefix",binary:"bytes",size:4},{name:"srcChain",binary:"uint",size:2},{name:"srcManager",binary:"bytes",size:32},{name:"messageId",binary:"uint",size:32}],Bo=(t,e,n)=>{let s=dc(pc,{prefix:Po.bytes.encode(lc.ERN1),srcChain:t,srcManager:new fc(e,"hex").toUint8Array(),messageId:n});return Po.hex.encode(s,!0)};var Ho={};Jt(Ho,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Io,AssethubClient:()=>ke,BaseClient:()=>Re,ExecutorClient:()=>yn,HydrationClient:()=>xe,NttEvmClient:()=>Zt,NttSolanaClient:()=>tn,NttSuiClient:()=>nn,UNMETERED:()=>it,capacityAt:()=>Yt,executorClient:()=>Gt,getAllAssetDepositLimits:()=>cs,getAssetDepositLimit:()=>is,getGlobalWithdrawLimit:()=>ms,nttClient:()=>ct,nttDef:()=>yt});import{encodeLocation as So}from"@galacticcouncil/common";import{hub as hc,XcmVersionedAssetId as Fo}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??hc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=So(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Fo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=So(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Fo.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as gn,XcmV5Junction as gc,XcmVersionedLocation as yc,XcmVersionedXcm as bc,XcmVersionedAssetId as xc}from"@galacticcouncil/descriptors";import{encodeLocation as Ac}from"@galacticcouncil/common";import{Twox128 as wc,u128 as Cc}from"@polkadot-api/substrate-bindings";import{toHex as Ec}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=Ac(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),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,n){let s=new TextEncoder().encode(e),o=Ec(wc(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Cc.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=yc.V5({parents:1,interior:gn.X1(gc.Parachain(n))}),o=xc.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,bc.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(c=>{let m=c.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 i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as vc}from"@galacticcouncil/descriptors";var Io=14400;function Do(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,i=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,c=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let p=s?.type==="Local"?"Local":"External",g=!m&&u!==void 0&&u+Io<=o,w=null;if(r!==null)if(m)w=0n;else if(g)w=r;else{let B=l??a,v=a>B?a-B:0n;w=r>v?r-v:0n}return{assetId:t,symbol:i,decimals:c,limit:r,locked:m,lockedUntilBlock:d,lastResetBlock:u,baselineIssuance:l,currentIssuance:a,headroom:w,category:p,periodExpired:g}}async function is(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,i]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return Do(e,s,o,a,r,i)}async function cs(t){let[e,n,s,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"})]),i=new Map(n.map(u=>[u.keyArgs[0],u.value])),c=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],p=u.value;if(p?.xcm_rate_limit==null)continue;let g=l===0?a:m.get(l)??0n,w=Do(l,p,i.get(l),c.get(l),o,g);d.set(l.toString(),w)}return d}async function ms(t){let[e,n,s,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=s??void 0,r=a!==void 0&&o<a,[i,c]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=i;if(!r&&d>0n){let p=o>c?o-c:0n;if(p>0n){let g=p>d?d:p,w=i*g/d;u=i>w?i-w:0n}}let l=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:d,used:u,lastUpdateMs:c,headroom:l,lockdown:r,lockdownUntilMs:a}}var xe=class extends Re{constructor(e){super(e,vc)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return is(this.api(),n)}getAllAssetDepositLimits(){return cs(this.api())}getGlobalWithdrawLimit(){return ms(this.api())}};import{SolanaChain as Oc,SuiChain as Gc}from"@galacticcouncil/xc-core";import{Abi as Tc,Wormhole as Pc}from"@galacticcouncil/xc-core";import{big as _c}from"@galacticcouncil/common";import{Ntt as kc}from"@galacticcouncil/xc-core";var it={capacity:0n,limit:0n,windowMs:0,capacityAtLastTx:0n,lastTxMs:0};function yt(t,e){if(!e)throw new Error("No ntt asset given for "+t.name+".");return kc.fromChain(t,e)}function Yt(t,e,n,s,o){let a=s>n?s-n:0n,r=e+t*a/o;return r<t?r:t}var Bc=500000n;function Xo(t,e){let n=t>>8n,s=Number(t&0xffn);return n*_c.pow10(e-s)}var Zt=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Pc.fromChain(e).getWormholeId())}async getRedeemBudget(){return{gasLimit:Bc,msgValue:0n}}async getLimit(e){let n=this.chain.evmClient.getProvider(),s=Tc.NttManager,o=yt(this.chain,this.asset).manager,[a,r,i,c]=await Promise.all([n.readContract({abi:s,address:o,functionName:"rateLimitDuration"}),n.readContract({abi:s,address:o,functionName:"tokenDecimals"}),e===void 0?n.readContract({abi:s,address:o,functionName:"getCurrentOutboundCapacity"}):n.readContract({abi:s,address:o,functionName:"getCurrentInboundCapacity",args:[e]}),e===void 0?n.readContract({abi:s,address:o,functionName:"getOutboundLimitParams"}):n.readContract({abi:s,address:o,functionName:"getInboundLimitParams",args:[e]})]);return a===0n?it:{capacity:i,limit:Xo(c.limit,r),windowMs:Number(a)*1e3,capacityAtLastTx:Xo(c.currentCapacity,r),lastTxMs:Number(c.lastTxTimestamp)*1e3}}};import{spl as Sc,Wormhole as Fc}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as Ic}from"@solana/spl-token";import{PublicKey as en}from"@solana/web3.js";var Dc=250000n,Xc=10000000n,Rc=2039280n,Ro=3600*24,Lc=8,Nc=9;function Vc(t,e){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);return{limit:n.getBigUint64(e,!0),capacityAtLastTx:n.getBigUint64(e+8,!0),lastTxTimestamp:n.getBigInt64(e+16,!0)}}var tn=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Fc.fromChain(e).getWormholeId())}async getRedeemBudget(e){let{connection:n}=this.chain,s={gasLimit:Dc,msgValue:Xc};if(!this.asset||!e)return{...s,msgValue:s.msgValue+Rc};let o=new en(yt(this.chain,this.asset).token),{ata:a}=await Sc.getTokenAccount(n,o,new en(e));if(await n.getAccountInfo(a))return s;let i=await Ic(n);return{...s,msgValue:s.msgValue+BigInt(i)}}async getLimit(e){let{pda:n,offset:s}=this.rateLimitPda(e),o=await this.chain.connection.getAccountInfo(n);if(!o)return it;let{limit:a,capacityAtLastTx:r,lastTxTimestamp:i}=Vc(o.data,s),c=BigInt(Math.floor(Date.now()/1e3));return{capacity:Yt(a,r,i,c,BigInt(Ro)),limit:a,windowMs:Ro*1e3,capacityAtLastTx:r,lastTxMs:Number(i)*1e3}}rateLimitPda(e){let n=new en(yt(this.chain,this.asset).manager),s=new TextEncoder;if(e===void 0){let[r]=en.findProgramAddressSync([s.encode("outbox_rate_limit")],n);return{pda:r,offset:Lc}}let o=new Uint8Array(2);new DataView(o.buffer).setUint16(0,e,!1);let[a]=en.findProgramAddressSync([s.encode("inbox_rate_limit"),o],n);return{pda:a,offset:Nc}}};import{suiPkg as Hc,Wormhole as Mc}from"@galacticcouncil/xc-core";var Wc=10000000n,Lo=3600*24*1e3;function No(t){let e=BigInt(t.limit),n=BigInt(t.capacity_at_last_tx),s=BigInt(t.last_tx_timestamp),o=BigInt(Date.now());return{capacity:Yt(e,n,s,o,BigInt(Lo)),limit:e,windowMs:Lo,capacityAtLastTx:n,lastTxMs:Number(s)}}var nn=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Mc.fromChain(e).getWormholeId())}async getRedeemBudget(){return{gasLimit:Wc,msgValue:0n}}async getLimit(e){let n=this.chain.client,s=yt(this.chain,this.asset).manager,o=await Hc.getObject(n,s);if(e===void 0){let m=o.fields.outbox?.fields?.rate_limit?.fields;return m?No(m):it}let a=o.fields.peers?.fields?.id?.id;if(!a)return it;let{data:r}=await n.getDynamicFieldObject({parentId:a,name:{type:"u16",value:e}}),c=r?.content?.fields?.value?.fields?.inbound_rate_limit?.fields;return c?No(c):it}};function ct(t,e){return t instanceof Oc?new tn(t,e):t instanceof Gc?new nn(t,e):new Zt(t,e)}import{deserializeLayout as Uc,encoding as Vo,serializeLayout as qc}from"@wormhole-foundation/sdk-base";import{relayInstructionsLayout as Kc,signedQuoteLayout as zc}from"@wormhole-foundation/sdk-definitions";var jc=300*1e3,$c=t=>{try{let{quote:e}=Uc(zc,Vo.hex.decode(t));return e.expiryTime.getTime()}catch{return 0}},yn=class{quotes=new Map;async quote(e,n,s){let{gasLimit:o,msgValue:a}=s,r=[e,n,o,a].join(":"),i=this.quotes.get(r);if(i&&$c(i.signedQuote)-Date.now()>jc)return i;let c=Vo.hex.encode(qc(Kc,{requests:[{request:{type:"GasInstruction",gasLimit:o,msgValue:a}}]}),!0),m=await fetch(_o+"/v0/quote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srcChain:e,dstChain:n,relayInstructions:c})});if(!m.ok)throw new Error("Executor quote failed ["+e+"->"+n+"]");let{signedQuote:d,estimatedCost:u}=await m.json();if(!d||!u)throw new Error("Executor quote incomplete");let l={signedQuote:d,estimatedCost:BigInt(u),relayInstructions:c};return this.quotes.set(r,l),l}},Gt=new yn;var ls=async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=Mo.fromChain(r,s),m=ds.fromChain(i),d=e;i instanceof us&&(d=await i.getDerivatedAddress(e));let u=await r.evmClient.getProvider().readContract({abi:Ut.NttManager,address:c.manager,args:[m.getWormholeId(),Qt],functionName:"quoteDeliveryPrice"}),l=r.getAssetDecimals(s)??0,p=n;if(l>rs){let g=10n**BigInt(l-rs);p=n-n%g}return{ctx:r,ntt:c,rcvWh:m,rcvAddress:d,transferAmount:p,deliveryPrice:u[1],wrapNative:r.getBalanceType(s)===Jc.Native}},Qc=()=>({build:async t=>{let{ntt:e,rcvWh:n,rcvAddress:s,transferAmount:o,deliveryPrice:a,wrapNative:r}=await ls(t);return[new bn({abi:Ut.NttManager,address:e.manager,args:[o,n.getWormholeId(),n.normalizeAddress(s)],token:e.token,wrapNative:r,value:a,func:"transfer",module:"NttManager"})]}}),Yc=()=>({build:async t=>{let{ctx:e,ntt:n,rcvWh:s,rcvAddress:o,transferAmount:a,deliveryPrice:r,wrapNative:i}=await ls(t),c=ds.fromChain(e),m=c.getNttExecutor(),d=e instanceof us?await e.getDerivatedAddress(t.sender):t.sender,u=await ct(t.destination.chain,t.destination.balance).getRedeemBudget(t.address),{signedQuote:l,estimatedCost:p,relayInstructions:g}=await Gt.quote(c.getWormholeId(),s.getWormholeId(),u),w=s.normalizeAddress(o),B={value:p,refundAddress:d,signedQuote:l,instructions:g},v={transferTokenFee:0n,nativeTokenFee:0n,payee:d};return[new bn({abi:Ut.NttManagerWithExecutor,address:m,args:[n.manager,a,s.getWormholeId(),w,w,Qt,B,v],token:n.token,wrapNative:i,value:r+p,func:"transfer",module:"NttManagerWithExecutor"})]}}),Zc=()=>({build:async t=>{let{ctx:e,ntt:n,rcvWh:s,rcvAddress:o,transferAmount:a,deliveryPrice:r,wrapNative:i}=await ls(t),c=ds.fromChain(e),m=t.destination.chain,d=Mo.find(m,t.destination.balance.key);if(!d)throw new Error("Ntt deployment missing on "+m.key);let u=e instanceof us?await e.getDerivatedAddress(t.sender):t.sender,l=await ct(m,t.destination.balance).getRedeemBudget(t.address),[p,g]=await Promise.all([Gt.quote(c.getWormholeId(),s.getWormholeId(),l),e.evmClient.getProvider().readContract({abi:Ut.NttManager,address:n.manager,functionName:"nextMessageSequence"})]);return[new bn({abi:Ut.NttManager,address:n.manager,args:[a,s.getWormholeId(),s.normalizeAddress(o)],token:n.token,wrapNative:i,value:r,func:"transfer",module:"NttManager"}),new bn({abi:Ut.Executor,address:c.getExecutor(),args:[s.getWormholeId(),s.normalizeAddress(d.manager),u,p.signedQuote,Bo(c.getWormholeId(),n.manager,BigInt(g)),p.relayInstructions],value:p.estimatedCost,func:"requestExecution",module:"Executor"})]}}),Wo=()=>({transfer:Qc,transferWithExecutor:Yc,transferViaExecutor:Zc});function Oo(){return{Ntt:Wo}}function z(){return{Batch:io,Erc20:co,Basejump:mo,PolkadotXcm:ho,Snowbridge:To,Wormhole:Oo}}import{encodeLocation as Go}from"@galacticcouncil/common";import{ExtrinsicConfig as e0}from"@galacticcouncil/xc-core";var Uo="AssetConversion",t0=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i}=a,c=o,m=Go(c.getAssetXcmLocation(r)),d=Go(c.getAssetXcmLocation(i)),u=r.amount+r.amount*BigInt(t.slippage)/100n,l=i.amount;return new e0({module:Uo,func:e,getTx:p=>p.getUnsafeApi().tx[Uo][e]({path:[m,d],amount_out:l,amount_in_max:u,send_to:n,keep_alive:!0})})}}},qo=()=>({swapTokensForExactTokens:t0});import{hub as n0,MultiAddress as s0}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as o0}from"@galacticcouncil/xc-core";var a0="Assets",r0=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,i=n>r.amount?n-r.amount:n,c=a.getMetadataAssetId(e);return new o0({module:a0,func:t,getTx:m=>m.getTypedApi(n0).tx.Assets.transfer({id:Number(c),target:s0.Id(s),amount:i})})}}},Ko=()=>({transfer:r0});import{ExtrinsicConfig as i0}from"@galacticcouncil/xc-core";var zo="Balances",c0=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new i0({module:zo,func:e,getTx:s=>s.getUnsafeApi().tx[zo][e]({dest:n,keep_alive:t})})}},jo=()=>({transferAll:c0});import{ExtrinsicConfig as m0,Gas as u0,getEvmPrerequisites as d0}from"@galacticcouncil/xc-core";import{Binary as l0}from"polkadot-api";var $o="EVM",xn=(1n<<64n)-1n,Jo=t=>[t&xn,t>>64n&xn,t>>128n&xn,t>>192n&xn],f0=t=>({build:async e=>{let n=e.source.chain,s=n.evmClient,o=await t.build(e),[a,r]=await Promise.all([n.getDerivatedAddress(e.sender),s.getProvider().getGasPrice()]),i=r+r/10n,m=[...await d0(s,a,e.amount,o[0]),...o.map(u=>({to:u.address,data:u.encodeFunctionData(),value:u.value,gas:u0.transfer}))],d=m.length>1;return new m0({module:d?"Utility":$o,func:d?"batch_all":"call",getTx:u=>{let l=u.getUnsafeApi(),p=m.map(g=>l.tx[$o].call({source:a,target:g.to,input:l0.fromHex(g.data),value:Jo(g.value??0n),gas_limit:g.gas,max_fee_per_gas:Jo(i),max_priority_fee_per_gas:void 0,nonce:void 0,access_list:[],authorization_list:[]}));return d?l.tx.Utility.batch_all({calls:p.map(g=>g.decodedCall)}):p[0]}})}}),Qo=()=>({call:f0});import{hydration as p0}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as h0}from"@galacticcouncil/xc-core";var g0="Router",y0=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:i}=o,c=s,m=c.getMetadataAssetId(a),d=c.getMetadataAssetId(r),u=r.amount,l=a.amount+a.amount*BigInt(t.slippage)/100n;return new h0({module:g0,func:"buy",getTx:p=>p.getTypedApi(p0).tx.Router.buy({asset_in:Number(m),asset_out:Number(d),amount_out:u,max_amount_in:l,route:i})})}}),Yo=()=>({buy:y0});import{ExtrinsicConfig as b0}from"@galacticcouncil/xc-core";var fs="Utility",Zo=t=>t?.type===fs&&t?.value?.type==="batch_all"?t.value.value.calls.flatMap(Zo):[t],x0=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new b0({module:fs,func:e,getTx:o=>{let a=s.flatMap(r=>Zo(r.getTx(o).decodedCall));return o.getUnsafeApi().tx[fs][e]({calls:a})}})}}},ea=()=>({batchAll:x0});import{ExtrinsicConfig as jt}from"@galacticcouncil/xc-core";import{big as j0}from"@galacticcouncil/common";import{multiloc as fa,ChainEcosystem as ks}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Ie,XcmV3Junction as Bt,XcmV3JunctionNetworkId as da,XcmV3MultiassetFungibility as Ts,XcmV4Instruction as Te,XcmV4AssetAssetFilter as Kt,XcmV4AssetWildAsset as zt,XcmV3WeightLimit as pa,XcmV2MultiassetWildFungibility as G0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as D0,XcmV3MultiassetFungibility as hs,XcmV3WeightLimit as X0,XcmV4AssetAssetFilter as R0,XcmV4AssetWildAsset as L0,XcmV4Instruction as sn}from"@galacticcouncil/descriptors";import{acc as A0}from"@galacticcouncil/common";import{XcmV3Junction as ta}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as w0}from"@polkadot-api/substrate-bindings";import{toHex as C0}from"@polkadot-api/utils";function j(t){if(t.length===42&&t.startsWith("0x"))return ta.AccountKey20({key:t,network:void 0});let n=w0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ta.AccountId32({id:C0(n.publicKey),network:void 0})}function An(t,e,n){return A0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as na}from"@galacticcouncil/xc-core";function sa(t,e){let n=na.findNestedKey(t,"GeneralIndex"),s=na.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var En={};Jt(En,{ETHER_TOKEN_ADDRESS:()=>ps,erc20Location:()=>k0,erc20LocationReanchored:()=>T0,ethereumLocation:()=>aa,parachainLocation:()=>v0});import{XcmV3Junctions as wn,XcmV3Junction as Cn,XcmV3JunctionNetworkId as E0}from"@galacticcouncil/descriptors";var ps="0x0000000000000000000000000000000000000000",oa=t=>Cn.GlobalConsensus(E0.Ethereum({chain_id:BigInt(t)}));function aa(t){return{parents:2,interior:wn.X1(oa(t))}}function v0(t){return{parents:1,interior:wn.X1(Cn.Parachain(t))}}function k0(t,e){return e===ps?aa(t):{parents:2,interior:wn.X2([oa(t),Cn.AccountKey20({key:e})])}}function T0(t){return t===ps?{parents:0,interior:{type:"Here"}}:{parents:0,interior:wn.X1(Cn.AccountKey20({key:t}))}}import{encodeLocation as ra}from"@galacticcouncil/common";import{multiloc as P0}from"@galacticcouncil/xc-core";function W(t,e){return _0(e)>=4?ra(t):B0(t)}function _0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function B0(t){return{type:"Concrete",value:ra(t)}}var S0=1e3;function F0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function I0(t){if(t)return F0(t)?S0:P0.findParachain(t)}function ia(t,e,n,s){let o=e.getAssetXcmLocation(t),a=I0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}var mt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(mt||{}),Fe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Fe||{});function vn(t,e){let n="V4",s=W(N(e,t),n),o=ze;return[sn.ReserveAssetDeposited([{id:M,fun:hs.Fungible(q)},{id:s,fun:hs.Fungible(q)}]),sn.ClearOrigin(),sn.BuyExecution({fees:{id:M,fun:hs.Fungible(q)},weight_limit:X0.Unlimited()}),sn.DepositAsset({assets:R0.Wild(L0.AllCounted(2)),beneficiary:{parents:0,interior:D0.X1(j(_t))}}),sn.SetTopic(o)]}import{XcmV4Instruction as gs,XcmV3MultiassetFungibility as ys,XcmV3WeightLimit as N0}from"@galacticcouncil/descriptors";function bs(t,e){let n="V4",s=W(N(e,t),n),o=kn("V4",j(xo),j(_t),s,ze);return[gs.WithdrawAsset([{id:M,fun:ys.Fungible(q)},{id:s,fun:ys.Fungible(q)}]),gs.ClearOrigin(),gs.BuyExecution({fees:{id:M,fun:ys.Fungible(q)},weight_limit:N0.Unlimited()}),...o.value]}import{XcmV3Junctions as xs,XcmV3Junction as V0,XcmV3MultiassetFungibility as on,XcmV3WeightLimit as As,XcmV4AssetAssetFilter as ws,XcmV4AssetWildAsset as Cs,XcmV4Instruction as Le}from"@galacticcouncil/descriptors";function ca(t,e){let n="V4",s=W(N(e,t),n),o=ze;return[Le.WithdrawAsset([{id:s,fun:on.Fungible(q)}]),Le.ClearOrigin(),Le.BuyExecution({fees:{id:s,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositAsset({assets:ws.Wild(Cs.AllCounted(1)),beneficiary:{parents:0,interior:xs.X1(j(_t))}}),Le.SetTopic(o)]}function Es(t,e){let n="V4",s=W(N(e,t),n);return[Le.BuyExecution({fees:{id:s,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositAsset({assets:ws.Wild(Cs.AllCounted(1)),beneficiary:{parents:0,interior:xs.X1(j(_t))}})]}function ma(t,e,n){let s="V4",o=W(N(e,t),s),a=ze,r=Es(t,n);return[Le.WithdrawAsset([{id:o,fun:on.Fungible(q)}]),Le.ClearOrigin(),Le.BuyExecution({fees:{id:o,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositReserveAsset({assets:ws.Wild(Cs.AllCounted(1)),dest:{parents:1,interior:xs.X1(V0.Parachain(n.parachainId))},xcm:r}),Le.SetTopic(a)]}import{XcmV3MultiassetFungibility as vs,XcmV5AssetFilter as H0,XcmV5Instruction as qt,XcmV5Junctions as M0,XcmV5Junction as W0,XcmV5WildAsset as O0}from"@galacticcouncil/descriptors";function ua(t,e){let n="V5",s=W(N(e,t),n),o={parents:0,interior:M0.X1(W0.AccountId32({id:bo,network:void 0}))};return[qt.ReserveAssetDeposited([{id:M,fun:vs.Fungible(q)}]),qt.PayFees({asset:{id:M,fun:vs.Fungible(q)}}),qt.ReserveAssetDeposited([{id:s,fun:vs.Fungible(q)}]),qt.ClearOrigin(),qt.DepositAsset({assets:H0.Wild(O0.AllCounted(3)),beneficiary:o}),qt.SetTopic(ze)]}var la=[ks.Polkadot,ks.Kusama],U0={parents:1,interior:Ie.X1(Bt.Parachain(1e3))},q0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},ha=(t,e)=>!t.ecosystem||!e.ecosystem?!1:la.includes(t.ecosystem)&&la.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ga=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},bt=(t,e,n)=>{if(ha(e,n))return{type:t,value:Ps(n.ecosystem,n.parachainId)};if(n.parachainId===yo)return{type:t,value:{parents:1,interior:Ie.Here()}};let s=n.key==="ethereum"?ht:n.parachainId;return{type:t,value:{parents:1,interior:Ie.X1(Bt.Parachain(s))}}},K0=t=>t===ks.Kusama?da.Kusama():da.Polkadot(),Ps=(t,e)=>({parents:2,interior:Ie.X2([Bt.GlobalConsensus(K0(t)),Bt.Parachain(e)])}),ya=(t,e,n,s)=>{if(ha(e,n)){if(e.parachainId!==ht){let o=fa.findGlobalConsensus(N(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Ie.X1(Bt.Parachain(ht))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==ht)return{dest:{type:t,value:Ps(n.ecosystem,ht)},mode:"onward"}}},St=(t,e)=>({type:t,value:{parents:0,interior:Ie.X1(e)}}),_s=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:q0(n)?U0:n}}:{type:e},xt=(t,e)=>({id:t,fun:Ts.Fungible(e)}),ba=(t,e,n)=>({type:t,value:[Te.DepositAsset({assets:Kt.Wild(zt.AllCounted(n)),beneficiary:{parents:0,interior:Ie.X1(e)}})]}),kn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[Te.SetAppendix([Te.DepositAsset({assets:Kt.Wild(zt.All()),beneficiary:{parents:0,interior:Ie.X1(n)}})]),Te.InitiateReserveWithdraw({assets:Kt.Wild(zt.AllOf({id:s,fun:G0.Fungible()})),reserve:En.ethereumLocation(Xe),xcm:[Te.BuyExecution({fees:{id:z0(s),fun:Ts.Fungible(1n)},weight_limit:pa.Unlimited()}),Te.DepositAsset({assets:Kt.Wild(zt.AllCounted(1)),beneficiary:{parents:0,interior:Ie.X1(e)}}),Te.SetTopic(a)]}),Te.SetTopic(a)]}},xa=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Ie.X1(Bt.Parachain(n.parachainId))}:Ps(n.ecosystem,n.parachainId),i={parents:0,interior:Ie.X1(e)},c=Kt.Wild(zt.AllCounted(1)),m=[Te.BuyExecution({fees:{id:o,fun:Ts.Fungible(a)},weight_limit:pa.Unlimited()}),Te.DepositAsset({assets:c,beneficiary:i})],d=s==="bridge-withdraw"?Te.InitiateReserveWithdraw({assets:c,reserve:r,xcm:m}):Te.DepositReserveAsset({assets:c,dest:r,xcm:m});return{type:t,value:[Te.SetAppendix([Te.DepositAsset({assets:Kt.Wild(zt.All()),beneficiary:i})]),d]}},z0=t=>{let e=fa.findNestedKey(t,"key");return e?{parents:0,interior:Ie.X1(Bt.AccountKey20({key:e.key}))}:{parents:0,interior:Ie.Here()}};var Ne="PolkadotXcm",$0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=N(r,n),d=N(r,s.fee),u=W(m,c),l=W(d,c),p=xt(u,e),g=xt(l,s.fee.amount),w="limited_reserve_transfer_assets";return new jt({module:Ne,func:w,getTx:B=>{let v=B.getUnsafeApi().tx[Ne][w];return n.key===s.fee.key?v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[p]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):sa(m,d)?v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[g,p]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[p,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),J0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="limited_teleport_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Q0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c=r.xcmVersion??"V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="reserve_transfer_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0})})}}),Y0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="transfer_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Z0=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:i})=>{let c="V4",m=i.chain,d=o.chain,u=o.fee.amount,l=o.fee,p=j(r),g=d.usesCexForwarding?An(m,r,d):e,w=j(g),{transferType:B}=t,v=W(N(m,n),c),V=W(N(m,l),c),D=xt(v,s),H=xt(V,u),K=n.isEqual(l),C=ya(c,m,d,n),Me=C?.dest??bt(c,m,d),st={type:c,value:K?[D]:[H,D]},dt=_s(c,B,v),un={type:c,value:K?v:V},qn=_s(c,B,V),Xt;if(ga(v)&&o.chain.isEvmChain())Xt=kn(c,w,p,v,a);else if(C){let $t=j0.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Kn=W(N(d,n),c);Xt=xa(c,w,d,C.mode,Kn,$t)}else Xt=ba(c,w,st.value.length);let dn="transfer_assets_using_type_and_then";return new jt({module:Ne,func:dn,getTx:$t=>$t.getUnsafeApi().tx[Ne][dn]({dest:Me,assets:st,assets_transfer_type:dt,remote_fees_id:un,fees_transfer_type:qn,custom_xcm_on_dest:Xt,weight_limit:{type:"Unlimited"}})})}});function em(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new jt({module:Ne,func:a,getTx:r=>r.getUnsafeApi().tx[Ne][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(wo)}}var Bs=()=>({limitedReserveTransferAssets:$0,limitedTeleportAssets:J0,reserveTransferAssets:Q0,transferAssets:Y0,transferAssetsUsingTypeAndThen:Z0,execute:em});import{ExtrinsicConfig as nm}from"@galacticcouncil/xc-core";import{encodeAssetId as sm}from"@galacticcouncil/common";import{XcmV3Junctions as Aa,XcmV3Junction as tm}from"@galacticcouncil/descriptors";var wa=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:Aa.X1(n)}}:{type:t,value:{parents:1,interior:Aa.X2([tm.Parachain(e.parachainId),n])}};var Ca="XTokens",om=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,i=s.chain,c="V3",m=i.usesCexForwarding?An(r,o,i):t,d=j(m),u=r.getAssetId(n),l=sm(u),p="transfer";return new nm({module:Ca,func:p,getTx:g=>g.getUnsafeApi().tx[Ca][p]({currency_id:l,amount:e,dest:wa(c,i,d),dest_weight_limit:{type:"Unlimited"}})})}}),Ss=()=>({transfer:om});function f(){return{assetConversion:qo,assets:Ko,balances:jo,evm:Qo,polkadotXcm:Bs,router:Yo,utility:ea,xTokens:Ss}}function ut(t,e){return{prior:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,...n]).build(s):f().utility().batchAll([...n]).build(s)}}}}import{Abi as Is,Ntt as am,Snowbridge as rm,Basejump as im,Wormhole as Pa}from"@galacticcouncil/xc-core";var Ea=80000n,va=120000n,ka=100000n,Ta=2000000n,Fs=15000000000000n;function cm(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new xe(s),a=new ke(t.hub),r=vn(e,s),i=ua(e,s),c=Ot(Xe),m=250000000n,d=Ao(Xe,s.parachainId),[u,l,p,g]=await Promise.all([o.calculateDestinationFeeV5(i,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,hn),a.calculateDestinationFeeV5(d,x)]),w=U(u,33n),B=U(l,33n),v=U(p,33n),D=U(g,33n)+B,H=w,K=await a.quoteEtherForDot(c,D),C=U(K,30n),Me=C<Fs*2n?Fs*2n:C,st=U(await a.quoteEtherForDot(c,H),100n),dt=U(await a.quoteDotToEther(c,m+v),30n);return{amount:Me+dt+st,breakdown:{executionFee:Me,relayerFee:dt,remoteEtherFee:st,hydrationDotFee:H}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,i=new ke(t.hub),c=Ot(Xe),m=bs(e,a),[d,u,l]=await Promise.all([i.getBridgeDeliveryFee(),i.calculateDeliveryFee(m,hn),i.calculateDestinationFee(m,n)]),p=await r.evmClient.getProvider().getGasPrice(),g=Ta+va+Ea+ka,w=p*g,B=U(w,10n),v=d+U(u,33n)+U(l,33n),V=U(await i.quoteDotForExactEther(c,B),20n),D=new xe(a),H=os({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ze}),K=U(await D.calculateDestinationFeeV5(H,x),33n);return{amount:v+V+K,breakdown:{dotRemoteFee:v,dotToEtherSwapAmount:V,etherFeeAmount:B,sourceExecutionFee:K}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=rm.fromChain(o),i=new Re(a),c=new ke(t.hub),m=vn(e,a),[d,u]=await Promise.all([i.calculateDestinationFee(m,x),c.calculateDeliveryFee(m,a.parachainId)]),l=u+U(d,25n),p=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Is.Snowbridge,address:r.getGateway(),args:[p,a.parachainId,l],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:l}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=bs(e,o),i=vn(e,o),[c,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,hn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(i,o.parachainId),a.calculateDestinationFee(i,n)]);return{amount:c+m+U(d,25n)+u+U(l,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function mm(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(ia(e,o,a,r),r){let l=new Re(a),p=new Re(r),g=Es(e,a),w=ma(e,r,a),[B,v]=await Promise.all([l.calculateDestinationFee(g,e),p.calculateDestinationFee(w,e)]),V=v+B,D=U(V,20n),H=D-V;return{amount:D,breakdown:{reserveFee:v,destinationFee:B,margin:H}}}let i=new Re(a),c=ca(e,a),m=await i.calculateDestinationFee(c,e),d=U(m,20n),u=d-m;return{amount:d,breakdown:{totalFee:m,margin:u}}}})}}function um(){return{quoteExecutorCost:()=>({build:async({address:t,destinationAsset:e,transferAsset:n,source:s,destination:o})=>{let a=s,r=am.fromChain(a,n),i=Pa.fromChain(a),c=Pa.fromChain(o),m=await ct(o,e).getRedeemBudget(t),[d,u]=await Promise.all([a.evmClient.getProvider().readContract({abi:Is.NttManager,address:r.manager,args:[c.getWormholeId(),Qt],functionName:"quoteDeliveryPrice"}),Gt.quote(i.getWormholeId(),c.getWormholeId(),m)]);return{amount:d[1]+u.estimatedCost,breakdown:{deliveryPrice:d[1],executorCost:u.estimatedCost}}}})}}function dm(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=im.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Is.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function P(){return{Basejump:dm,XcmPaymentApi:mm,Snowbridge:cm,Wormhole:um}}var lm="0";function fm(){return{build:async({address:t,chain:e})=>{let s=await new xe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():lm,a=e.findAssetById(o);return a?a.asset:Rt}}}var pm=()=>({accountCurrencyMap:fm});function an(){return{multiTransactionPayment:pm}}import{EvmParachain as hm,MoveConfig as gm,Ntt as ym,suiPkg as Tn,Wormhole as _a}from"@galacticcouncil/xc-core";import{Transaction as bm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Ds}from"@mysten/sui/utils";import{encoding as xm}from"@wormhole-foundation/sdk-base";var Am=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=ym.fromChain(r,s),m=_a.fromChain(r),d=_a.fromChain(i),u=r.client,l=e;i instanceof hm&&(l=await i.getDerivatedAddress(e));let p=xm.hex.decode(d.normalizeAddress(l)),g=m.getCoreBridge(),w=c.manager,B=c.transceiver.wormhole,v=c.token,[V,D,H,K]=await Promise.all([Tn.getWormholePackageId(u,g),Tn.getCurrentPackageId(u,w),Tn.getCurrentPackageId(u,B),Tn.getCoinMetadataId(u,v)]),C=new bm,[Me]=C.splitCoins(C.gas,[C.pure.u64(n)]),[st]=C.moveCall({target:`${D}::upgrades::new_version_gated`,arguments:[]}),[dt,un]=C.moveCall({target:`${D}::ntt::prepare_transfer`,typeArguments:[v],arguments:[C.object(w),Me,C.object(K),C.pure.u16(d.getWormholeId()),C.pure.vector("u8",Array.from(p)),C.pure.option("vector<u8>",null),C.pure.bool(!1)]}),[qn]=C.moveCall({target:`${D}::state::get_next_sequence`,typeArguments:[v],arguments:[C.object(w)]});C.moveCall({target:`${D}::ntt::transfer_tx_sender`,typeArguments:[v],arguments:[C.object(w),st,C.object(K),dt,C.object(Ds)]});let[Xt]=C.moveCall({target:`${D}::state::create_transceiver_message`,typeArguments:[`${H}::wormhole_transceiver::TransceiverAuth`,v],arguments:[C.object(w),qn,C.object(Ds)]}),[dn]=C.moveCall({target:`${H}::wormhole_transceiver::release_outbound`,typeArguments:[`${D}::auth::ManagerAuth`],arguments:[C.object(B),Xt]}),[$t]=C.splitCoins(C.gas,[C.pure.u64(0n)]);C.moveCall({target:`${V}::publish_message::publish_message`,arguments:[C.object(g),$t,dn,C.object(Ds)]});let[Kn]=C.moveCall({target:"0x2::coin::from_balance",typeArguments:[v],arguments:[un]});return C.mergeCoins(C.gas,[Kn]),[new gm({transaction:C,func:"transfer",module:"NttManager"})]}}),Ba=()=>({transfer:Am});function Sa(){return{Ntt:Ba}}function Xs(){return{Wormhole:Sa}}import{EvmParachain as wm,Ntt as Cm,ProgramConfig as Ia,SolanaBalanceType as Em,Wormhole as Fa}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as vm}from"@solana/spl-token";import{Keypair as km,TransactionMessage as Tm}from"@solana/web3.js";import{toChain as Pm}from"@wormhole-foundation/sdk-base";import{UniversalAddress as _m}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as Bm}from"@wormhole-foundation/sdk-solana";import"@wormhole-foundation/sdk-definitions-ntt";async function Sm(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Fm(t,e,n){let s=await Sm(t,e),o="message"in e?Tm.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions;return new Ia({instructions:o,signers:n,lookupTables:s,func:"transfer",module:"NttManager"})}var Im=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,i=a.chain,c=r.chain,m=Cm.fromChain(i,s),d=Fa.fromChain(i),u=Fa.fromChain(c),l=e;c instanceof wm&&(l=await c.getDerivatedAddress(e));let{SolanaNtt:p}=await import("@wormhole-foundation/sdk-solana-ntt"),g=new p("Mainnet","Solana",i.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),w=i.getBalanceType(s)===Em.Native,B=km.generate(),v=[];for await(let H of g.transfer(new Bm(o),n,{chain:Pm(u.getWormholeId()),address:new _m(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:w},B)){let{transaction:K,signers:C}=H.transaction;v.push(await Fm(i.connection,K,C??[]))}let V=w?BigInt(await vm(i.connection)):0n,D=v[v.length-1];return[...v.slice(0,-1),new Ia({instructions:D.instructions,signers:D.signers,lookupTables:D.lookupTables,rentReserve:V,func:"transfer",module:"NttManager"})]}}),Da=()=>({transfer:Im});function Xa(){return{Ntt:Da}}function Rs(){return{Wormhole:Xa}}var La={};Jt(La,{Tag:()=>At});var At=(i=>(i.Basejump="Basejump",i.Ntt="Ntt",i.NttExecutor="NttExecutor",i.Wormhole="Wormhole",i.Relayer="Relayer",i.Snowbridge="Snowbridge",i.SnowbridgeV1="SnowbridgeV1",i))(At||{});function Na(t,e){return new Ls({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Va(t,e){return new Ls({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:k}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function Ha(t,e){return new Ls({source:{asset:t,fee:{asset:k},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:P().Basejump().quoteFee(),asset:t}},contract:z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Xm=[Ha(De,Oe)],Rm=[Na(De,Oe)],Lm=[Va(De,Oe)],Ma=new Dm({chain:kt,routes:[...Rm,...Lm,...Xm]});import{AssetRoute as Oa,ChainRoutes as Nm}from"@galacticcouncil/xc-core";import{AssetRoute as rn}from"@galacticcouncil/xc-core";function wt(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Ft(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:k}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function Wa(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function ee(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Snowbridge().calculateInboundFee({hub:_}),asset:k}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function te(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Snowbridge().calculateInboundFeeV1({hub:_}),asset:k}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Vm=[wt(We,je),wt(Be,$e),wt(E,Qe),wt(y,Je),wt(Se,Ze),wt(Ye,ve),wt(k,ve)],Hm=[Ft(We,je),Ft(Be,$e),Ft(E,Qe),Ft(y,Je),Ft(Se,Ze),Ft(Ye,ve),Wa(k,ve)],Mm=[new Oa({source:{asset:k,fee:{asset:k}},destination:{chain:h,asset:k,fee:{amount:P().Snowbridge().calculateInboundFee({hub:_}),asset:k}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ee(se,se),ee(oe,oe),ee(ae,ae),ee(re,re),ee(ue,ue),ee(pe,pe),ee(he,he),ee(ce,ce),ee(ie,ie),ee(me,me),ee(de,de),ee(ge,ge),ee(ye,ye),ee(E,at),ee(y,ot)],Wm=[new Oa({source:{asset:k,fee:{asset:k}},destination:{chain:h,asset:k,fee:{amount:P().Snowbridge().calculateInboundFeeV1({hub:_}),asset:k}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),te(se,se),te(oe,oe),te(ae,ae),te(re,re),te(ue,ue),te(pe,pe),te(he,he),te(ce,ce),te(ie,ie),te(me,me),te(de,de),te(ge,ge),te(ye,ye),te(E,at),te(y,ot)],Ga=new Nm({chain:A,routes:[...Vm,...Hm,...Mm,...Wm]});var Ua=[Ma,Ga];import{AssetRoute as Bn,ChainRoutes as Ka}from"@galacticcouncil/xc-core";import{AssetRoute as Ns}from"@galacticcouncil/xc-core";var It=0,Om=t=>{let{source:e}=t;return!!e.feeSwap},Gm=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},qa=f().assetConversion().swapTokensForExactTokens({slippage:30});function Um(t,e,n){return new Ns({source:{asset:t,fee:{asset:x,extra:It}},destination:{chain:e,asset:t,fee:{amount:n,asset:y}},extrinsic:ut(Gm,qa).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Pn(t,e,n){return new Ns({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:ut(Om,qa).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function cn(t,e,n){return new Ns({source:{asset:t,fee:{asset:x,extra:It}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function _n(t){return Um(t,h,.02)}var qm=[new Bn({source:{asset:x,fee:{asset:x,extra:It}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Bn({source:{asset:T,fee:{asset:x,extra:It}},destination:{chain:h,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),cn(y,h,.02),cn(E,h,.02),_n(rt)],Km=[new Bn({source:{asset:T,fee:{asset:x,extra:It}},destination:{chain:Ke,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssets()})],zm=[cn(y,R,.03),cn(E,R,.03)],jm=[new Bn({source:{asset:X,fee:{asset:x,extra:It}},destination:{chain:pt,asset:X,fee:{amount:2.5,asset:X}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],za=new Ka({chain:ft,routes:[Pn(y,h,.02),Pn(E,h,.02),Pn(x,h,.001)]}),ja=new Ka({chain:_,routes:[...qm,...Km,...zm,...jm]});import{AssetRoute as Ct,ChainRoutes as $m}from"@galacticcouncil/xc-core";var Jm=[new Ct({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:F,fee:{asset:I}},destination:{chain:h,asset:F,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:L,fee:{asset:I}},destination:{chain:h,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Pe,fee:{asset:I}},destination:{chain:h,asset:Pe,fee:{amount:.01,asset:Pe}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:G,fee:{asset:I}},destination:{chain:h,asset:G,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:O,fee:{asset:I}},destination:{chain:h,asset:O,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:y,fee:{asset:I}},destination:{chain:h,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:E,fee:{asset:I}},destination:{chain:h,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],$a=new $m({chain:Y,routes:[...Jm]});import{AssetRoute as nt,ChainRoutes as Qm}from"@galacticcouncil/xc-core";var Ym=[new nt({source:{asset:F},destination:{chain:h,asset:F,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:G,fee:{asset:F}},destination:{chain:h,asset:G,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:O,fee:{asset:F}},destination:{chain:h,asset:O,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:x,fee:{asset:F}},destination:{chain:h,asset:x,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new nt({source:{asset:I,fee:{asset:F}},destination:{chain:h,asset:I,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:L,fee:{asset:F}},destination:{chain:h,asset:L,fee:{amount:625e-8,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:y,fee:{asset:F}},destination:{chain:h,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:E,fee:{asset:F}},destination:{chain:h,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Zm=[new nt({source:{asset:y,fee:{asset:F}},destination:{chain:_,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:E,fee:{asset:F}},destination:{chain:_,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Ja=new Qm({chain:R,routes:[...Ym,...Zm]});import{AssetRoute as Dt,ChainRoutes as tu}from"@galacticcouncil/xc-core";var $=()=>({asset:an().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Et}from"@galacticcouncil/xc-core";var eu=.02,Sn=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},Fn=f().router().buy({slippage:30});function Ae(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:e,asset:t,fee:{amount:P().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function vt(t,e){return new Et({source:{asset:t,fee:$()},destination:{chain:e,asset:t,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function In(t){return new Et({source:{asset:t,fee:$()},destination:{chain:_,asset:t,fee:{amount:eu,asset:y}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Vs(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:Ke,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Ve(t,e,n){let s=z().Wormhole().Ntt().transfer();return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:s,extrinsic:f().evm().call(s),tags:["Wormhole","Ntt"]})}function He(t,e,n){let s=z().Wormhole().Ntt().transferViaExecutor();return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:ve}},contract:s,extrinsic:ut(Sn,Fn).prior(f().evm().call(s)),tags:["Wormhole","Ntt","NttExecutor"]})}function J(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Snowbridge().calculateOutboundFee({hub:_}),asset:x}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function Q(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Snowbridge().calculateOutboundFeeV1({hub:_}),asset:x}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var nu=[vt(x,_),vt(T,_),vt(y,_),vt(E,_),In(rt)],su=[Vs(T,.05,.005),Vs(x,.2,.02)],ou=[Ae(I,Y),Ae(F,Y,R),new Dt({source:{asset:L,fee:$()},destination:{chain:Y,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Dt({source:{asset:Pe,fee:$()},destination:{chain:Y,asset:Pe,fee:{amount:.01,asset:Pe}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),Ae(G,Y,R),Ae(O,Y,R),Ae(y,Y,_),Ae(E,Y,_)],au=[Ae(F,R),Ae(G,R),Ae(O,R),Ae(I,R,Y),new Dt({source:{asset:L,fee:$()},destination:{chain:R,asset:L,fee:{amount:5e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),Ae(y,R,_),Ae(E,R,_),new Dt({source:{asset:x,fee:$()},destination:{chain:R,asset:x,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],ru=[new Dt({source:{asset:X,fee:$()},destination:{chain:pt,asset:X,fee:{amount:2.5,asset:X}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],iu=[Ae(Ue,Ht)],cu=[new Dt({source:{asset:Ce,fee:$()},destination:{chain:Mt,asset:Ce,fee:{amount:.02,asset:Ce}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],mu=[new Dt({source:{asset:_e,fee:$()},destination:{chain:Vt,asset:_e,fee:{amount:1.1,asset:_e}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],uu=[Ae(Ge,Nt)],du=[Ve(je,We,A),Ve($e,Be,A),Ve(Qe,E,A),Ve(Je,y,A),Ve(Ze,Se,A),Ve(ve,k,A)],lu=[Ve(Oe,De,kt)],fu=[Ve(le,le,qe),Ve(we,we,qe),Ve(Ee,Ee,qe)],pu=[Ve(fe,fe,Tt)],hu=[He(je,We,A),He($e,Be,A),He(Qe,E,A),He(Je,y,A),He(Ze,Se,A),He(ve,k,A),He(Oe,De,kt),He(le,Lt,qe),He(we,we,qe),He(Ee,Ee,qe),He(fe,fe,Tt)],gu=[J(k,k,A),J(se,se,A),J(oe,oe,A),J(ae,ae,A),J(re,re,A),J(ue,ue,A),J(pe,pe,A),J(he,he,A),J(ge,ge,A),J(ce,ce,A),J(ie,ie,A),J(me,me,A),J(de,de,A),J(ye,ye,A),J(at,E,A),J(ot,y,A)],yu=[Q(k,k,A),Q(se,se,A),Q(oe,oe,A),Q(ae,ae,A),Q(re,re,A),Q(ue,ue,A),Q(pe,pe,A),Q(he,he,A),Q(ge,ge,A),Q(ce,ce,A),Q(ie,ie,A),Q(me,me,A),Q(de,de,A),Q(ye,ye,A),Q(at,E,A),Q(ot,y,A)],bu=[vt(x,ft),vt(y,ft),vt(E,ft)],Qa=new tu({chain:h,routes:[...nu,...ou,...au,...bu,...lu,...du,...gu,...fu,...pu,...hu,...yu,...cu,...su,...ru,...uu,...mu,...iu]});import{AssetRoute as Ya,ChainRoutes as xu}from"@galacticcouncil/xc-core";var Au=[new Ya({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:.01,asset:X}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],wu=[new Ya({source:{asset:X},destination:{chain:_,asset:X,fee:{amount:.1,asset:X}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],Za=new xu({chain:pt,routes:[...Au,...wu]});import{AssetRoute as Cu,ChainRoutes as Eu}from"@galacticcouncil/xc-core";var vu=[new Cu({source:{asset:Ue},destination:{chain:h,asset:Ue,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],er=new Eu({chain:Ht,routes:[...vu]});import{AssetRoute as ku,ChainRoutes as Tu}from"@galacticcouncil/xc-core";var Pu=[new ku({source:{asset:_e},destination:{chain:h,asset:_e,fee:{amount:.2,asset:_e}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],tr=new Tu({chain:Vt,routes:[...Pu]});import{AssetRoute as _u,ChainRoutes as Bu}from"@galacticcouncil/xc-core";var Su=[new _u({source:{asset:Ce,fee:{asset:Ce,extra:.030555}},destination:{chain:h,asset:Ce,fee:{amount:.03,asset:Ce}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],nr=new Bu({chain:Mt,routes:[...Su]});import{AssetRoute as Fu,ChainRoutes as Iu}from"@galacticcouncil/xc-core";var Du=[new Fu({source:{asset:Ge},destination:{chain:h,asset:Ge,fee:{amount:.205,asset:Ge}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],sr=new Iu({chain:Nt,routes:[...Du]});var or=[ja,za,$a,Ja,Qa,Za,sr,er,tr,nr];import{AssetRoute as Xu,ChainRoutes as Ru}from"@galacticcouncil/xc-core";function Hs(t){return new Xu({source:{asset:t,fee:{asset:le}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:Rs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Lu=[Hs(le),Hs(we),Hs(Ee)],ar=new Ru({chain:qe,routes:[...Lu]});var rr=[ar];import{AssetRoute as Nu,ChainRoutes as Vu}from"@galacticcouncil/xc-core";function Hu(t){return new Nu({source:{asset:t,fee:{asset:fe}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:Xs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Mu=[Hu(fe)],ir=new Vu({chain:Tt,routes:[...Mu]});var cr=[ir];import{AssetRoute as Dn,ChainRoutes as Wu}from"@galacticcouncil/xc-core";import{AssetRoute as L1}from"@galacticcouncil/xc-core";var mn=.0015;var Ou=new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:_,asset:T,fee:{amount:.002,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Gu=new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:Wt,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Uu=[new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:h,asset:T,fee:{amount:.04,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Dn({source:{asset:x,fee:{asset:T,extra:mn}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],mr=new Wu({chain:Ke,routes:[Gu,Ou,...Uu]});import{AssetRoute as ur,ChainRoutes as qu}from"@galacticcouncil/xc-core";var Ms=()=>({asset:an().multiTransactionPayment().accountCurrencyMap()});var Ku=[new ur({source:{asset:y,fee:Ms()},destination:{chain:Ke,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],zu=[new ur({source:{asset:T,fee:Ms()},destination:{chain:Ke,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],dr=new qu({chain:Wt,routes:[...Ku,...zu]});var lr=[mr,dr];var ju=[...Ua,...or,...rr,...cr,...lr],$u=new Map(ju.map(t=>[t.chain.key,t]));import{Parachain as xr}from"@galacticcouncil/xc-core";import{Parachain as Ju,TransferValidation as fr,TransferValidationError as pr}from"@galacticcouncil/xc-core";var Xn=class extends fr{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new pr("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},Rn=class extends fr{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,i=await this.getMin(o,a),c=a.copyWith({amount:a.amount+i});if(r.amount<c.amount)throw new pr("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof Ju)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};import{Ntt as hr,TransferValidation as Qu,TransferValidationError as Ws}from"@galacticcouncil/xc-core";import{big as Yu}from"@galacticcouncil/common";function gr(t,e){throw new Ws("Ntt_Limit_Unreachable",{asset:t.originSymbol,chain:e.name,error:"ntt.limitUnreachable"})}var Ln=class extends Qu{skipFor(e){let{asset:n,destination:s,source:o}=e;return!hr.isKnown(o.chain,n)||!hr.isKnown(s.chain,s.balance)}async validate(e){if(this.skipFor(e))return;let{amount:n,asset:s,destination:o,source:a}=e,[r,i]=await Promise.all([ct(a.chain,s).getOutboundLimit().catch(()=>gr(s,a.chain)),ct(o.chain,o.balance).getInboundLimit(a.chain).catch(()=>gr(o.balance,o.chain))]);if(r.windowMs>0&&n>r.capacity)throw new Ws("Ntt_Outbound_Limit_Exceeded",{asset:s.originSymbol,chain:a.chain.name,decimals:a.balance.decimals,headroom:r.capacity,limit:r.limit,windowMs:r.windowMs,error:"ntt.outboundLimitExceeded"});let c=Yu.convertDecimals(n,a.balance.decimals,o.balance.decimals);if(i.windowMs>0&&c>i.capacity)throw new Ws("Ntt_Inbound_Limit_Exceeded",{asset:o.balance.originSymbol,chain:o.chain.name,decimals:o.balance.decimals,headroom:i.capacity,limit:i.limit,windowMs:i.windowMs,error:"ntt.inboundLimitExceeded"})}};import{TransferValidation as yr,TransferValidationError as br}from"@galacticcouncil/xc-core";var Nn=class extends yr{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new br("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Vn=class extends yr{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new br("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Os,TransferValidationError as Hn}from"@galacticcouncil/xc-core";var Zu=12,ed=1,Mn=class extends Os{async skipFor(e){let{destination:n}=e,s=n.chain,o=new xe(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new xe(a),i=await r.getFeeAsset(s),c=a.findAssetById(i),m=c.min||ed,d=c.decimals||Zu,u=m*Math.pow(10,d),l=await r.getAssetBalance(s,i);if(BigInt(u*1.1)>l)throw new Hn("Insufficient_Ed",{amount:u,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Wn=class extends Os{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,i=await new xe(a).getAssetDepositLimit(s);if(i.locked)throw new Hn("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:i.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(i.headroom!==null&&n>i.headroom)throw new Hn("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:i.headroom,limit:i.limit,error:"circuitBreaker.depositLimitExceeded"})}},On=class extends Os{async validate(e){let{source:n}=e,s=n.chain,a=await new xe(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Hn("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}};var ne={isAny:()=>!0,isHydration:t=>t instanceof xr&&t.parachainId===2034,isHub:t=>t instanceof xr&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},td=[new Xn(ne.isAny,ne.isAny),new Rn(ne.isAny,ne.isAny),new Nn(ne.isAny,ne.isHub),new Vn(ne.isHub,ne.isAny),new Mn(ne.isAny,ne.isHydration),new Wn(ne.isAny,ne.isHydration),new On(ne.isHydration,ne.isAny),new Ln(ne.isAny,ne.isAny)];var wr={};Jt(wr,{AssethubDex:()=>Us,HydrationDex:()=>Gs});import{pool as nd,sor as sd,tx as od}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as ad}from"@galacticcouncil/common";import{Binary as rd}from"polkadot-api";import{memoize1 as id}from"@thi.ng/memoize";var{PoolType:Gn}=nd,{TradeRouteBuilder:cd,TradeRouter:md}=sd,{TxBuilderFactory:ud}=od,Gs=class{chain;client;poolCtx;txBuilder;getCtx=id(async e=>{console.log("init swap router",e,"\u2705");let n=new md(this.poolCtx);return n.withFilter({useOnly:[Gn.Aave,Gn.Omni,Gn.Stable,Gn.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new xe(this.chain),this.txBuilder=new ud(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),i=Number(this.chain.getMetadataAssetId(s)),c=o.amount,m=await this.getCtx(1),d=await m.getMostLiquidRoute(r,i),u=await m.getBuy(r,i,c,d),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return rd.toHex(g)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),i=s.amount,c=await this.getCtx(1);try{let m=await c.getMostLiquidRoute(a,r),d=await c.getBuy(a,r,i,m);return{amount:d.amountIn,route:cd.build(d.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,ad);return a/BigInt(r)}};import{encodeLocation as Ar}from"@galacticcouncil/common";var Us=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(Ar(o),Ar(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as ld}from"@galacticcouncil/xc-core";import{Asset as dd}from"@galacticcouncil/xc-core";function Un(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new dd({key:[o,n,e].join("_"),originSymbol:s})}function Cr(t){let{decimals:e,id:n}=t;return{asset:Un(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function Er(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:Un(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var qs=class extends ld{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Un(a),i=Cr(a),c=Er(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(i),n.updateAsset(c),this.updateAsset(r),this.updateChainRoute(s,_n(r)),this.updateChainRoute(n,In(r))})}};export{qs as HydrationConfigService,Tr as assetsMap,Ra as builders,_i as chainsMap,Ho as clients,wr as dex,$u as routesMap,La as tags,td as validations};
1
+ var kr=Object.defineProperty;var Jt=(t,e)=>{for(var n in e)kr(t,n,{get:e[n],enumerable:!0})};import{Asset as b}from"@galacticcouncil/xc-core";var se=new b({key:"aave",originSymbol:"AAVE"}),zn=new b({key:"ajun",originSymbol:"AJUN"}),oe=new b({key:"apyusd",originSymbol:"apyUSD"}),I=new b({key:"astr",originSymbol:"ASTR"}),F=new b({key:"bnc",originSymbol:"BNC"}),jn=new b({key:"bsx",originSymbol:"BSX"}),ae=new b({key:"cfg_new",originSymbol:"CFG"}),$n=new b({key:"cru",originSymbol:"CRU"}),We=new b({key:"dai",originSymbol:"DAI"}),je=new b({...We,key:"dai_wh"}),x=new b({key:"dot",originSymbol:"DOT"}),k=new b({key:"eth",originSymbol:"ETH"}),re=new b({key:"ena",originSymbol:"ENA"}),De=new b({key:"eurc",originSymbol:"EURC"}),Oe=new b({...De,key:"eurc_wh"}),lt=new b({key:"glmr",originSymbol:"GLMR"}),Rt=new b({key:"hdx",originSymbol:"HDX"}),L=new b({key:"ibtc",originSymbol:"IBTC"}),Pe=new b({key:"intr",originSymbol:"INTR"}),we=new b({key:"jitoSol",originSymbol:"jitoSOL"}),T=new b({key:"ksm",originSymbol:"KSM"}),ie=new b({key:"ldo",originSymbol:"LDO"}),ce=new b({key:"lbtc",originSymbol:"LBTC"}),Ce=new b({key:"ewt",originSymbol:"EWT"}),me=new b({key:"link",originSymbol:"LINK"}),X=new b({key:"myth",originSymbol:"MYTH"}),Ge=new b({key:"neuro",originSymbol:"NEURO"}),_e=new b({key:"pen",originSymbol:"PEN"}),ue=new b({key:"paxg",originSymbol:"PAXG"}),Ee=new b({key:"prime",originSymbol:"PRIME"}),de=new b({key:"sky",originSymbol:"SKY"}),le=new b({key:"sol",originSymbol:"SOL"}),fe=new b({key:"sui",originSymbol:"SUI"}),pe=new b({key:"susde",originSymbol:"sUSDe"}),Be=new b({key:"susds",originSymbol:"sUSDS"}),$e=new b({...Be,key:"susds_wh"}),he=new b({key:"tbtc",originSymbol:"tBTC"}),ge=new b({key:"trac",originSymbol:"TRAC"}),Ue=new b({key:"unq",originSymbol:"UNQ"}),y=new b({key:"usdt",originSymbol:"USDT"}),Je=new b({...y,key:"usdt_wh"}),ot=new b({...y,key:"usdt_eth"}),E=new b({key:"usdc",originSymbol:"USDC"}),Qe=new b({...E,key:"usdc_wh"}),at=new b({...E,key:"usdc_eth"}),O=new b({key:"vastr",originSymbol:"vASTR"}),G=new b({key:"vdot",originSymbol:"vDOT"}),Ye=new b({key:"weth",originSymbol:"WETH"}),ve=new b({...Ye,key:"weth_wh"}),Se=new b({key:"wbtc",originSymbol:"WBTC"}),Ze=new b({...Se,key:"wbtc_wh"}),Lt=new b({key:"wsol",originSymbol:"wSOL"}),ye=new b({key:"wsteth",originSymbol:"wstETH"}),rt=new b({key:"wud",originSymbol:"WUD"}),Tr=[se,zn,oe,I,jn,ae,$n,F,We,je,x,re,De,Oe,k,lt,Rt,L,Pe,T,ie,ce,Ce,we,me,X,Ge,ue,_e,Ee,de,le,fe,pe,Be,$e,ge,he,Ue,E,Qe,at,y,Je,ot,O,G,Se,Ze,Ye,ve,Lt,ye,rt],Pr=new Map(Tr.map(t=>[t.key,t]));import{ChainEcosystem as _r,EvmChain as Br,EvmBalanceType as Ks}from"@galacticcouncil/xc-core";import{base as Sr}from"viem/chains";var kt=new Br({id:8453,key:"base",name:"Base",assetsData:[{asset:k,decimals:18,id:"0x4200000000000000000000000000000000000006"},{asset:De,decimals:6,id:"0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42"},{asset:E,decimals:6,id:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],balance:Ks.Erc20,balanceOverrides:{[k.key]:Ks.Native},ecosystem:_r.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",nttExecutor:"0x27db1967D469D89318B7119Ced5609f327095de4",ntt:{[De.key]:{token:"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42",manager:"0xD1dc3517732c98502b5c1ba2389AcA9E9016d89a",transceiver:{wormhole:"0xa84b362290b0CFdB55e877dfc633284091e0B3F7"}}}}});import{ChainEcosystem as Fr,EvmChain as Ir,EvmBalanceType as zs}from"@galacticcouncil/xc-core";import{mainnet as Dr}from"viem/chains";var A=new Ir({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:k,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:se,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:oe,decimals:18,id:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"},{asset:ae,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Ye,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:We,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:re,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:pe,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:Be,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:he,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:Se,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:ce,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:E,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:y,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:ie,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:me,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:ue,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:de,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:ge,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:ye,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],balance:zs.Erc20,balanceOverrides:{[k.key]:zs.Native},ecosystem:Fr.Ethereum,evmChain:Dr,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",nttExecutor:"0xC079bFA54F348199bA51B2717595fE24e96f1542",ntt:{[We.key]:{token:"0x6B175474E89094C44Da98b954EedeAC495271d0F",manager:"0x804F123f75cCa0A9c0Cba341F82f4A4DA86a5259",transceiver:{wormhole:"0x99673a01C5779Ebf59399B4B228c1825c0113571"}},[Be.key]:{token:"0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD",manager:"0x5085A4863f89eC9553F70187EE73B5aAe0fd14b5",transceiver:{wormhole:"0x7C236d237BEbBE1b7902131B31b7b3270005a810"}},[E.key]:{token:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",manager:"0x447b2c7485A3d6813F8197E605b10BcCD8dd8398",transceiver:{wormhole:"0xA108BD5dBc6CE665aEbB6895351e0609c76F8EFc"}},[y.key]:{token:"0xdAC17F958D2ee523a2206206994597C13D831ec7",manager:"0x9fbd9F16cE7Fa17097E91cc36DC1B7b47aDCa9De",transceiver:{wormhole:"0x45c566f6595CF93e639E77cc1bbE57A8D27901c2"}},[Se.key]:{token:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",manager:"0x081b76AC3cFb65DCe93961d66cea44A74EC8Ef28",transceiver:{wormhole:"0x3FE8fBB8505c8dB2264f6Ebc5559c7C2b2647218"}},[Ye.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}},[k.key]:{token:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",manager:"0x283B14B5Dd352e32154Df014EA96834F395E04b6",transceiver:{wormhole:"0xbA0Cd32131b8206AF4feB79A1A3aaF0AEfe18b48"}}}}});var js=[kt,A];import{ChainEcosystem as Xr,Parachain as $s,SubstrateBalanceType as ln,SubstrateMinType as Rr}from"@galacticcouncil/xc-core";var Js={assetsData:[{asset:x,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:rt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:X,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:ln.Assets,balanceOverrides:{[x.key]:ln.System,[T.key]:ln.ForeignAssets,[X.key]:ln.ForeignAssets},min:Rr.Assets,ecosystem:Xr.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"]},_=new $s({...Js,key:"assethub",name:"AssetHub Polkadot"}),ft=new $s({...Js,key:"assethub_cex",name:"AssetHub (CEX)",usesSignerFee:!0,isTestChain:!0,balanceOverrides:{}});import{ChainEcosystem as Lr,Parachain as Nr,SubstrateBalanceType as Qs}from"@galacticcouncil/xc-core";var Y=new Nr({assetsData:[{asset:I,xcmLocation:{parents:0,interior:"Here"}},{asset:x,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,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:lt,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Qs.Assets,balanceOverrides:{[I.key]:Qs.System},ecosystem:Lr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Vr,Parachain as Hr,SubstrateBalanceType as Ys}from"@galacticcouncil/xc-core";var Mr=["wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://hk.p.bifrost-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],R=new Hr({assetsData:[{asset:F,id:{Native:F.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:O,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:E,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:lt,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],balance:Ys.Tokens,balanceOverrides:{[F.key]:Ys.System},ecosystem:Vr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Mr});import{ChainEcosystem as Ur,EvmParachain as qr,SubstrateBalanceType as eo}from"@galacticcouncil/xc-core";import{defineChain as Kr}from"viem";import{h160 as Wr}from"@galacticcouncil/common";import{AccountId as Or}from"polkadot-api";var{isEvmAccount:Gr,H160:Zs}=Wr,fn=class{async toH160(e,n){if(Gr(e))return Zs.fromAccount(e);let s=Zs.fromSS58(e);if(n&&await this.isBound(n,s,e))return s;throw new Error(`Account ${e} is not an EVM (ETH\\0 prefixed) account nor bound to its EVM address`)}async isBound(e,n,s){let a=await e.getUnsafeApi().query.EVMAccounts.AccountExtension.getValue(n);if(!a)return!1;let r=Or().enc(s),i=this.asBytes(a);return Buffer.from(i).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 zr=new fn,Jn=["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"],Qn=["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=Kr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:Jn,webSocket:Qn},default:{http:Jn,webSocket:Qn}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),h=new qr({assetsData:[{asset:Rt,id:0,xcmLocation:{parents:0,interior:{X1:[{GeneralIndex:0}]}}},{asset:se,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:zn,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:F,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ae,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:$n,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:je,decimals:18,id:18,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f"}}]}}},{asset:k,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:oe,decimals:18,id:46,min:.0147058823529412,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x38eeb52f0771140d10c4e9a9a72349a329fe8a6a"}}]}}},{asset:re,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:lt,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:L,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:we,decimals:9,id:40,min:27e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0xfcd141e9832caf10ad917495ca0f271b5b293cd47027ea737007ed40eb39a0bd"}}]}}},{asset:Ee,decimals:6,id:43,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x26759f460ee5f743ed66d27c8f2a5623bf39d53ed575955320661e6e13e0e3da"}}]}}},{asset:Ce,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:ie,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:ce,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:me,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:ue,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:X,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:Ge,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2043},{PalletInstance:10}]}}},{asset:_e,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:de,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:le,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:1},{GeneralKey:{length:32,data:"0x069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001"}}]}}},{asset:fe,decimals:9,id:1000753,min:.003,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:21},{GeneralKey:{length:32,data:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"}}]}}},{asset:pe,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:Be,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:$e,decimals:18,id:1000745,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:he,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:ge,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Ue,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:E,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Qe,decimals:6,id:21,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:Oe,decimals:6,id:44,min:.014,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:30},{GeneralKey:{length:32,data:"0x00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42"}}]}}},{asset:at,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:y,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Je,decimals:6,id:23,min:.01,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:ot,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:O,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:G,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Se,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ze,decimals:8,id:19,min:34e-8,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:Ye,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ve,decimals:18,id:20,min:54e-7,xcmLocation:{parents:0,interior:{X3:[{GeneralKey:{length:2,data:"0x7768000000000000000000000000000000000000000000000000000000000000"}},{GeneralIndex:2},{GeneralKey:{length:32,data:"0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:ye,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:rt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}}],balance:eo.Tokens,balanceOverrides:{[Rt.key]:eo.System},ecosystem:Ur.Polkadot,evmChain:jr,evmResolver:zr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,wormhole:{id:73,coreBridge:"0x3792a6d63c31941B2805181771795D9176fA82A1",executor:"0xd633d8d1ceee8c8252196d44857c0f41b8dcb0d9",nttExecutor:"0xd3Dda7c8608Ea251C42c6E0A2A686aDc5e9C0C03",ntt:{[je.key]:{token:"0x0000000000000000000000000000000100000012",manager:"0xcFd576F88C90844AEBF45378Fd09931281D8b14d",transceiver:{wormhole:"0xe8660CA48f6f4D98BC48DB7Dd07C1a8E555801eA"}},[Oe.key]:{token:"0x000000000000000000000000000000010000002C",manager:"0x8dd1286A29dF5a2785FB638d6fB1598144Cfbc4C",transceiver:{wormhole:"0x2e84fac378D67Dc2e11026fB4919E80263a87375"}},[we.key]:{token:"0x0000000000000000000000000000000100000028",manager:"0xcE73C15B9ED02413066DE5B904A36F8e8f9B5331",transceiver:{wormhole:"0xF38D9C3bA6999Dc331b32B416083Fd7e02D17B04"}},[Ee.key]:{token:"0x000000000000000000000000000000010000002B",manager:"0xFCaF4aA069C565d25539028970703F01e47D3E0B",transceiver:{wormhole:"0x4e7b1E55D2354d4Dc6ABD876096Dc201de0541D1"}},[le.key]:{token:"0x00000000000000000000000000000001000F4530",manager:"0x9e200C0f28D92D296b201D96C8269d3CAFFfA9FF",transceiver:{wormhole:"0x2F04AcF249091425d51e67EeA3C3161ccE283202"}},[fe.key]:{token:"0x00000000000000000000000000000001000F4531",manager:"0x978443f00cAB6b09445140321EC73a221ebFF5F8",transceiver:{wormhole:"0xA224D6f4e0E276b34D91bfE6c3A5fE6838322AF7"}},[$e.key]:{token:"0x00000000000000000000000000000001000F4529",manager:"0x1973E7044d9A7C7bB2d6ea1693A296a9e4B7E448",transceiver:{wormhole:"0x68Ecadd7934D4FcFEABAfB209C95D379B96400cb"}},[Qe.key]:{token:"0x0000000000000000000000000000000100000015",manager:"0xEcEab64542A875C4472671D9Ed1E690cdD4e28fC",transceiver:{wormhole:"0x0d7488B39AA64468a709eC3b3d354DeFE539eD97"}},[Je.key]:{token:"0x0000000000000000000000000000000100000017",manager:"0x5E6C488103b47F804824AE15861638af4C436795",transceiver:{wormhole:"0xd2a16B736F32Df7C0DE72838837656FE0f85Ac0F"}},[Ze.key]:{token:"0x0000000000000000000000000000000100000013",manager:"0x6BFca089916c045b0Ca4A09B655aF9F926189993",transceiver:{wormhole:"0x9a8a1ab288f6749Ce5626DEE1B5d59441BdC187F"}},[ve.key]:{token:"0x0000000000000000000000000000000100000014",manager:"0xB5cEf790D52A57fa619eD96eDd64c5328F3DCFb7",transceiver:{wormhole:"0x8acce9CA511d5D7213F8C3f813B8916087cd00ae"}}}},ws:Qn,rpcs:Jn});import{ChainEcosystem as $r,Parachain as Jr,SubstrateBalanceType as Qr}from"@galacticcouncil/xc-core";var pt=new Jr({assetsData:[{asset:X,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:Qr.System,ecosystem:$r.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://mythos-rpc.dmarket.com"});import{ChainEcosystem as Yr,Parachain as Zr,SubstrateBalanceType as ei}from"@galacticcouncil/xc-core";var Nt=new Zr({assetsData:[{asset:Ge,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:ei.System,ecosystem:Yr.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as ti,Parachain as ni,XcmVersion as si,SubstrateBalanceType as oi}from"@galacticcouncil/xc-core";var Vt=new ni({assetsData:[{asset:_e,id:"Native",xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],balance:oi.System,ecosystem:ti.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech",xcmVersion:si.v3});import{ChainEcosystem as ai,Parachain as ri,SubstrateBalanceType as ii}from"@galacticcouncil/xc-core";var ci={assetsData:[{asset:x,xcmLocation:{parents:0,interior:"Here"}}],balance:ii.System,ecosystem:ai.Polkadot,explorer:"https://polkadot.subscan.io",genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",parachainId:0,ss58Format:0,treasury:"13UVJyLnbVp9RBZYFwFGyDvVd1y27Tt8tkntv6Q7JVPhFsTB",usesDeliveryFee:!0,ws:"wss://polkadot-rpc.n.dwellir.com"},to=new ri({...ci,key:"polkadot"});import{ChainEcosystem as mi,Parachain as ui,SubstrateBalanceType as di}from"@galacticcouncil/xc-core";var Ht=new ui({assetsData:[{asset:Ue,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:di.System,ecosystem:mi.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as li,Parachain as fi,XcmVersion as pi,SubstrateBalanceType as hi}from"@galacticcouncil/xc-core";var Mt=new fi({assetsData:[{asset:Ce,id:0,xcmLocation:{parents:0,interior:"Here"}}],balance:hi.System,ecosystem:li.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com",xcmVersion:pi.v3});var no=[_,ft,Y,R,h,Nt,pt,Vt,to,Ht,Mt];import{ChainEcosystem as gi,SolanaChain as yi,SolanaBalanceType as so}from"@galacticcouncil/xc-core";var qe=new yi({id:101,key:"solana",name:"Solana",assetsData:[{asset:le,decimals:9},{asset:Lt,id:"So11111111111111111111111111111111111111112",decimals:9},{asset:we,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9},{asset:Ee,id:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",decimals:6}],balance:so.Token,balanceOverrides:{[le.key]:so.Native},ecosystem:gi.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:{[le.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[Lt.key]:{token:"So11111111111111111111111111111111111111112",manager:"DiGxk55uAQNVzzg2FucPgdrQ4azb5SDvWQvzpzJD3o7J",transceiver:{wormhole:"5J12e7mMcbbN3VkCrUPfZp2bDHMH3t1rKvxGcwuN53wx"},emitter:"2WUYeRrK2JctBEvNVXY4mRG2ewMzhidi7L4Y5dCwqY9D"},[we.key]:{token:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",manager:"9HFvXujdkXubvmf93gyzkH1g3VPowDrmp85sWsfdcBTh",transceiver:{wormhole:"HgxvrPomT84AxgxknddAcC1iW9ysqHxmeoiKNZmQcovs"},emitter:"9Ss1eMHE8iDv9kCxERH5nabp9tx75AVoUWWEKaGgMrh9"},[Ee.key]:{token:"3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",manager:"4T5m5NtRVewiCVzP2mnfeUoMYRqncfkrS21X2dhVCNRT",transceiver:{wormhole:"GiTY93vtrK4jZZchrxdV9r28JByRs7Ary2rsTPyPabJc"},emitter:"HuvSXe6hQaSMgo5dc8GYzavcS3aB4Bix9XYgVdfsq2sY"}},platformAddressFormat:"base58"}});var oo=[qe];import{ChainEcosystem as bi,SuiChain as xi,SuiBalanceType as Ai}from"@galacticcouncil/xc-core";var Tt=new xi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:fe,decimals:9}],balance:Ai.Native,ecosystem:bi.Sui,explorer:"https://suiscan.xyz/",rpc:"https://rpc-mainnet.suiscan.xyz",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",ntt:{[fe.key]:{token:"0x2::sui::SUI",manager:"0xa0bc45e0384140dc125f273eda89cad1434f5dee430726cf6364bdcceba1e9a3",transceiver:{wormhole:"0x6afb4a6a9c4e5b6eeed568381ce95a79590f0c17ab8d0c59295826f2775bf832"},emitter:"0x25437da9f99dfab32c1a275663f51cd5c99eb867ab4d1f630e3799c5e68215da"}}}});var ao=[Tt];import{ChainEcosystem as wi,Parachain as Ci,SubstrateBalanceType as Yn,SubstrateMinType as Ei}from"@galacticcouncil/xc-core";var Ke=new Ci({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:y,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Yn.Assets,balanceOverrides:{[T.key]:Yn.System,[x.key]:Yn.ForeignAssets},min:Ei.Assets,ecosystem:wi.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as vi,Parachain as ki,SubstrateBalanceType as Ti}from"@galacticcouncil/xc-core";var Wt=new ki({assetsData:[{asset:jn,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:T,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:y,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],balance:Ti.Tokens,ecosystem:vi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var ro=[Ke,Wt];var Pi=[...js,...no,...oo,...ao,...ro],_i=new Map(Pi.map(t=>[t.key,t]));import{ChainRoutes as Dm}from"@galacticcouncil/xc-core";import{AssetRoute as Ls}from"@galacticcouncil/xc-core";var La={};Jt(La,{ContractBuilder:()=>z,ExtrinsicBuilder:()=>f,ExtrinsicDecorator:()=>ut,FeeAmountBuilder:()=>P,FeeAssetBuilder:()=>an,MoveBuilder:()=>Xs,ProgramBuilder:()=>Rs,XcmTransferType:()=>Fe,XcmVersion:()=>mt});import{Abi as io,ContractConfig as Bi,Precompile as Si}from"@galacticcouncil/xc-core";import{encodeFunctionData as Fi}from"viem";var Ii=t=>({build:async e=>{let s=(await Promise.all(t.map(i=>i.build(e)))).flat(),o=s.map(i=>i.address),a=[0,0],r=s.map(i=>Fi({abi:io[i.module],functionName:i.func,args:i.args}));return[new Bi({abi:io.Batch,address:Si.Batch,args:[o,a,r,[]],func:"batchAll",module:"Batch"})]}}),co=()=>({batchAll:Ii});import{Abi as Di,ContractConfig as Xi,Wormhole as Ri}from"@galacticcouncil/xc-core";function U(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function Pt(t){return typeof t=="object"?Object.values(t)[0]:t}function mo(){return{approve:t=>({build:async e=>{let{amount:n,asset:s,source:o}=e,a=o.chain,r=Ri.fromChain(a),i=a.getAssetId(s);return[new Xi({abi:Di.Erc20,address:Pt(i).toString(),args:[t(r),n],func:"approve",module:"Erc20"})]}})}}import{Abi as Li,Basejump as Ni,ContractConfig as Vi}from"@galacticcouncil/xc-core";import{h160 as Hi}from"@galacticcouncil/common";import{AccountId as Mi}from"polkadot-api";import{toHex as Wi}from"@polkadot-api/utils";var{H160:Oi,isEvmAddress:Gi}=Hi;function Ui(t){let e=Gi(t)?Oi.toAccount(t):t;return Wi(Mi().enc(e))}var qi=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o}=t,a=o.chain,r=Ni.fromChain(a),i=a.getAssetId(s);return[new Vi({abi:Li.Basejump,address:r.getAddress(),args:[Pt(i),n,Ui(e)],func:"bridgeViaWormhole",module:"Basejump"})]}}),uo=()=>({bridgeViaWormhole:qi});import{addr as Ki,Abi as lo,ContractConfig as fo,Precompile as po}from"@galacticcouncil/xc-core";import{big as zi}from"@galacticcouncil/common";var{Ss58Addr:ho}=Ki;function ji(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 Zn(t,e){let n=t.getAssetId(e);return typeof n=="string"?ji(n):n}function go(){return{transferAssetsToPara32:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Zn(o.chain,n);return[new fo({abi:lo.PolkadotXcm,address:po.PolkadotXcm,args:[s.chain.parachainId,ho.getPubKey(t),[{asset:a,amount:e}],0],func:"transferAssetsToPara32",module:"PolkadotXcm"})]}}),transferAssetsToPara32WithFee:()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=Zn(o.chain,n),r=Zn(o.chain,o.destinationFeeBalance),i=zi.toBigInt(s.fee.amount,s.fee.decimals);return[new fo({abi:lo.PolkadotXcm,address:po.PolkadotXcm,args:[s.chain.parachainId,ho.getPubKey(t),[{asset:a,amount:e},{asset:r,amount:i}],1],func:"transferAssetsToPara32",module:"PolkadotXcm"})]}})}}import{addr as tc,Abi as Eo,ContractConfig as vo,Snowbridge as ko}from"@galacticcouncil/xc-core";import{XcmV5Junctions as nc,XcmV5Junction as sc,XcmVersionedXcm as oc,XcmVersionedLocation as ac}from"@galacticcouncil/descriptors";import{Blake2256 as rc}from"@polkadot-api/substrate-bindings";import{toHex as as}from"@polkadot-api/utils";import{encodeAbiParameters as ic}from"viem";import{codec as $i}from"@galacticcouncil/xc-core";var pn=null;async function yo(){if(pn)return pn;let t=await $i.getHubCodecs();return pn={message:t.tx.PolkadotXcm.send.inner.message,location:t.tx.PolkadotXcm.send.inner.dest},pn}import{multiloc as Qi}from"@galacticcouncil/xc-core";import{XcmV3MultiassetFungibility as be,XcmV5AssetFilter as Z,XcmV5Instruction as S,XcmV5Junctions as gt,XcmV5Junction as tt,XcmV5NetworkId as es,XcmV5WildAsset as et,XcmVersionedXcm as Yi}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as Zi}from"@polkadot-api/substrate-bindings";import{toHex as ec}from"@polkadot-api/utils";import{XcmV3Junctions as Ji}from"@galacticcouncil/descriptors";var q=340282366920938463463374607431768211455n,ze="0x0000000000000000000000000000000000000000000000000000000000000000",M={parents:1,interior:Ji.Here()},bo=0,ht=1e3,hn=1002,Xe=1,_t="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",xo="0x0000000000000000000000000000000000000000000000000000000000000000",Ao="0x0000000000000000000000000000000000000000";var ts="0x0000000000000000000000000000000000000000",Ot=t=>({parents:2,interior:gt.X1(tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(t)})))}),ns=(t,e)=>({parents:2,interior:gt.X2([tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(t)})),tt.AccountKey20({key:e,network:void 0})])});function wo(t,e){let n=Ot(t),s=ns(t,"0x"+"00".repeat(20)),o=1000000000000n,a=1000000000n,r=[S.ReserveAssetDeposited([{id:n,fun:be.Fungible(o)},{id:s,fun:be.Fungible(o)}]),S.ExchangeAsset({give:Z.Wild(et.AllOf({id:n,fun:{type:"Fungible",value:void 0}})),want:[{id:M,fun:be.Fungible(a)}],maximal:!1}),S.PayFees({asset:{id:M,fun:be.Fungible(a)}})],i=ss({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,...i]}function ss(t){let{ethChainId:e,destinationParaId:n,tokenAddress:s,beneficiaryHex:o,tokenAmount:a,hydrationDotFee:r,topic:i}=t,c=Ot(e),m=s===ts?c:ns(e,s),u=o.length===42&&o.startsWith("0x")?tt.AccountKey20({key:o,network:void 0}):tt.AccountId32({id:o,network:void 0}),l={parents:0,interior:gt.X1(u)};return[S.SetAppendix([S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})]),S.ExchangeAsset({give:Z.Wild(et.AllOf({id:c,fun:{type:"Fungible",value:void 0}})),want:[{id:M,fun:be.Fungible(r)}],maximal:!1}),S.InitiateTransfer({destination:{parents:1,interior:gt.X1(tt.Parachain(n))},remote_fees:{type:"ReserveDeposit",value:Z.Definite([{id:M,fun:be.Fungible(r)}])},preserve_origin:!1,assets:[{type:"ReserveDeposit",value:Z.Definite([{id:m,fun:be.Fungible(a)}])}],remote_xcm:[S.DepositAsset({assets:Z.Wild(et.AllCounted(3)),beneficiary:l}),S.SetTopic(i)]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l}),S.SetTopic(i)]}function os(t){let{tokenAddress:e,senderPubKey:n,beneficiaryHex:s,tokenAmount:o,sourceExecutionFee:a,dotRemoteFee:r,dotToEtherSwapAmount:i,etherFeeAmount:c,topic:m}=t,d=Ot(Xe),u=e===ts?d:ns(Xe,e),l={parents:0,interior:gt.X1(tt.AccountId32({id:n,network:void 0}))},p={parents:0,interior:gt.X1(tt.AccountKey20({key:s,network:void 0}))},g={parents:2,interior:gt.X1(tt.GlobalConsensus(es.Ethereum({chain_id:BigInt(Xe)})))},w=[S.DepositAsset({assets:Z.Wild(et.AllCounted(3)),beneficiary:p}),S.SetTopic(m)],B=[S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})])];B.push(S.ExchangeAsset({give:Z.Definite([{id:M,fun:be.Fungible(i)}]),want:[{id:d,fun:be.Fungible(c)}],maximal:!1}));let v=[{type:"ReserveWithdraw",value:Z.Wild(et.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))}],V=Z.Definite([{id:d,fun:be.Fungible(c)}]);B.push(S.InitiateTransfer({destination:g,remote_fees:{type:"ReserveWithdraw",value:V},preserve_origin:!0,assets:v,remote_xcm:w}),S.SetTopic(m));let D=a+r+i,H=[{id:M,fun:be.Fungible(D)},{id:u,fun:be.Fungible(o)}],K=[{id:M,fun:be.Fungible(a)}],C={type:"ReserveWithdraw",value:Z.Wild(et.AllOf({id:u,fun:{type:"Fungible",value:void 0}}))},Me=[{type:"ReserveWithdraw",value:Z.Definite([{id:M,fun:be.Fungible(i)}])},C];return[S.WithdrawAsset(H),S.PayFees({asset:K[0]}),S.SetAppendix([S.SetHints({hints:[{type:"AssetClaimer",value:{location:l}}]}),S.RefundSurplus(),S.DepositAsset({assets:Z.Wild(et.All()),beneficiary:l})]),S.InitiateTransfer({destination:{parents:1,interior:gt.X1(tt.Parachain(ht))},remote_fees:{type:"ReserveWithdraw",value:Z.Definite([{id:M,fun:be.Fungible(r)}])},preserve_origin:!0,assets:Me,remote_xcm:B}),S.SetTopic(m)]}function Co(t){let{address:e,amount:n,asset:s,sender:o,source:a,destination:r,messageId:i}=t,c=a.chain,m=Zi(o);if(!m.isValid)throw new Error(`Invalid SS58 address: ${o}`);let d=ec(m.publicKey),u=c.getAssetXcmLocation(s),l=u?Qi.findNestedKey(u,"key"):void 0,p=l?l.key:ts,g=r.feeBreakdown,w=g.sourceExecutionFee??0n,B=g.dotRemoteFee??0n,v=g.dotToEtherSwapAmount??0n,V=g.etherFeeAmount??0n,H=os({tokenAddress:p,senderPubKey:d,beneficiaryHex:e,tokenAmount:n,sourceExecutionFee:w,dotRemoteFee:B,dotToEtherSwapAmount:v,etherFeeAmount:V,topic:i??"0x0000000000000000000000000000000000000000000000000000000000000000"});return Yi.V5(H)}var{Ss58Addr:To}=tc,cc="0x0000000000000000000000000000000000000000",mc=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,i=a.chain,c=r.chain,m=ko.fromChain(i),d=i.getAssetId(s),u=Pt(d),l=s.originSymbol==="ETH",p=r.feeBreakdown.executionFee,g=r.feeBreakdown.relayerFee,w=r.feeBreakdown.hydrationDotFee,B=r.fee.amount,v=To.getPubKey(e),V=new TextEncoder().encode(`${c.parachainId}${o}${u}${v}${n}${Date.now()}`),D=as(rc(V)),H=ss({ethChainId:Xe,destinationParaId:c.parachainId,tokenAddress:l?cc:u,beneficiaryHex:v,tokenAmount:n,hydrationDotFee:w,topic:D}),K=await yo(),C=as(K.message.enc(oc.V5(H))),Me=[];l||Me.push(ic([{type:"uint8"},{type:"address"},{type:"uint128"}],[0,u,n]));let st=K.location.enc(ac.V5({parents:0,interior:nc.X1(sc.AccountId32({id:v,network:void 0}))})),dt=as(st.slice(1));return[new vo({abi:Eo.Snowbridge,address:m.getGateway(),args:[C,Me,dt,p,g],value:l?B+n:B,func:"v2_sendMessage",module:"Snowbridge"})]}}),uc=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=ko.fromChain(r),m=r.getAssetId(s),d=Pt(m),u=s.originSymbol==="ETH",l=a.feeBreakdown.bridgeFeeInDot,p=a.fee.amount;return[new vo({abi:Eo.Snowbridge,address:c.getGateway(),args:[d,i.parachainId,[1,To.getPubKey(e)],l,n],value:u?p+n:p,func:"sendToken",module:"Snowbridge"})]}}),Po=()=>({v2SendMessage:mc,sendToken:uc});import{Abi as Ut,ContractConfig as bn,EvmBalanceType as Jc,EvmParachain as us,Ntt as Wo,Wormhole as ds}from"@galacticcouncil/xc-core";import{encoding as _o,serializeLayout as dc}from"@wormhole-foundation/sdk-base";import{RequestPrefix as lc,UniversalAddress as fc}from"@wormhole-foundation/sdk-definitions";var Qt="0x00",rs=8,Bo="https://executor.labsapis.com",pc=[{name:"prefix",binary:"bytes",size:4},{name:"srcChain",binary:"uint",size:2},{name:"srcManager",binary:"bytes",size:32},{name:"messageId",binary:"uint",size:32}],So=(t,e,n)=>{let s=dc(pc,{prefix:_o.bytes.encode(lc.ERN1),srcChain:t,srcManager:new fc(e,"hex").toUint8Array(),messageId:n});return _o.hex.encode(s,!0)};var Mo={};Jt(Mo,{ASSET_LOCKDOWN_PERIOD_BLOCKS:()=>Do,AssethubClient:()=>ke,BaseClient:()=>Re,ExecutorClient:()=>yn,HydrationClient:()=>xe,NttEvmClient:()=>Zt,NttSolanaClient:()=>tn,NttSuiClient:()=>nn,UNMETERED:()=>it,capacityAt:()=>Yt,executorClient:()=>Gt,getAllAssetDepositLimits:()=>cs,getAssetDepositLimit:()=>is,getGlobalWithdrawLimit:()=>ms,nttClient:()=>ct,nttDef:()=>yt});import{encodeLocation as Fo}from"@galacticcouncil/common";import{hub as hc,XcmVersionedAssetId as Io}from"@galacticcouncil/descriptors";var Re=class{chain;descriptor;constructor(e,n){this.chain=e,this.descriptor=n??hc}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let s=(await this.refApi.query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async calculateDestinationFee(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!s.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=Fo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Io.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}async calculateDestinationFeeV5(e,n){let s=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V5",value:e});if(!s.success)throw Error("Can't query XCM weight (V5).");let o=this.chain.getAssetXcmLocation(n);if(!o)throw Error(`Can't get XCM location for asset ${n.originSymbol}`);let a=Fo(o),r=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(s.value,Io.V4(a));if(!r.success)throw Error(`Can't convert weight to fee in ${n.originSymbol}`);return BigInt(r.value)}};import{XcmV5Junctions as gn,XcmV5Junction as gc,XcmVersionedLocation as yc,XcmVersionedXcm as bc,XcmVersionedAssetId as xc}from"@galacticcouncil/descriptors";import{encodeLocation as Ac}from"@galacticcouncil/common";import{Twox128 as wc,u128 as Cc}from"@polkadot-api/substrate-bindings";import{toHex as Ec}from"@polkadot-api/utils";var ke=class extends Re{constructor(e){super(e)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=this.chain.getAssetXcmLocation(e),o=Ac(s);if(n===0)return!0;let a=n===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(n));return a&&a.is_sufficient||!1}async checkIfFrozen(e,n){let s=this.chain.getAssetId(n);if(s===n.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(s),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,n){let s=new TextEncoder().encode(e),o=Ec(wc(s)),a=await this.client._request("state_getStorage",[o]);if(!a)return n;let r=Cc.dec(a);return r===0n?n:r}async calculateDeliveryFee(e,n){let s=yc.V5({parents:1,interior:gn.X1(gc.Parachain(n))}),o=xc.V5({parents:1,interior:{type:"Here",value:void 0}}),a=await this.api().apis.XcmPaymentApi.query_delivery_fees(s,bc.V4(e),o);if(!a.success)throw Error("Can't query XCM delivery fee.");let r=a.value.value.find(c=>{let m=c.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 i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}async quoteDotToEther(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_exact_tokens_for_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT to Ether conversion.");return o}async quoteEtherForDot(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(e,s,n,!0);if(o===void 0)throw Error("Can't quote Ether for DOT conversion.");return o}async quoteDotForExactEther(e,n){let s={parents:1,interior:gn.Here()},o=await this.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(s,e,n,!0);if(o===void 0)throw Error("Can't quote DOT for Ether conversion.");return o}};import{hydration as vc}from"@galacticcouncil/descriptors";var Do=14400;function Xo(t,e,n,s,o,a){let r=e?.xcm_rate_limit!=null?BigInt(e.xcm_rate_limit):null,i=e?.symbol?new TextDecoder().decode(e.symbol):`#${t}`,c=e?.decimals??12,m=!1,d,u,l;n&&(n.type==="Locked"?(d=n.value,m=o<n.value):(u=n.value[0],l=n.value[1]));let p=s?.type==="Local"?"Local":"External",g=!m&&u!==void 0&&u+Do<=o,w=null;if(r!==null)if(m)w=0n;else if(g)w=r;else{let B=l??a,v=a>B?a-B:0n;w=r>v?r-v:0n}return{assetId:t,symbol:i,decimals:c,limit:r,locked:m,lockedUntilBlock:d,lastResetBlock:u,baselineIssuance:l,currentIssuance:a,headroom:w,category:p,periodExpired:g}}async function is(t,e){let n=e===0?t.query.Balances.TotalIssuance.getValue({at:"best"}):t.query.Tokens.TotalIssuance.getValue(e,{at:"best"}),[s,o,a,r,i]=await Promise.all([t.query.AssetRegistry.Assets.getValue(e,{at:"best"}),t.query.CircuitBreaker.AssetLockdownState.getValue(e,{at:"best"}),t.query.CircuitBreaker.GlobalAssetOverrides.getValue(e,{at:"best"}),t.query.System.Number.getValue({at:"best"}),n]);return Xo(e,s,o,a,r,i)}async function cs(t){let[e,n,s,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"})]),i=new Map(n.map(u=>[u.keyArgs[0],u.value])),c=new Map(s.map(u=>[u.keyArgs[0],u.value])),m=new Map(r.map(u=>[u.keyArgs[0],u.value])),d=new Map;for(let u of e){let l=u.keyArgs[0],p=u.value;if(p?.xcm_rate_limit==null)continue;let g=l===0?a:m.get(l)??0n,w=Xo(l,p,i.get(l),c.get(l),o,g);d.set(l.toString(),w)}return d}async function ms(t){let[e,n,s,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=s??void 0,r=a!==void 0&&o<a,[i,c]=n;if(!e)return{configured:!1,limit:0n,windowMs:0n,used:0n,lastUpdateMs:c,headroom:0n,lockdown:r,lockdownUntilMs:a};let{limit:m,window:d}=e,u=i;if(!r&&d>0n){let p=o>c?o-c:0n;if(p>0n){let g=p>d?d:p,w=i*g/d;u=i>w?i-w:0n}}let l=r||u>=m?0n:m-u;return{configured:!0,limit:m,windowMs:d,used:u,lastUpdateMs:c,headroom:l,lockdown:r,lockdownUntilMs:a}}var xe=class extends Re{constructor(e){super(e,vc)}async checkIfSufficient(e){let n=this.chain.getAssetId(e),s=Number(n),o=await this.api().query.AssetRegistry.Assets.getValue(s);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let n=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return n?n.toString():"0"}async getAssetBalance(e,n){return n==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,n)}async getSystemAccountBalance(e){let s=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:a}=s;return BigInt(o)-BigInt(a)}async getTokensAccountsBalance(e,n){let s=Number(n),o=await this.api().query.Tokens.Accounts.getValue(e,s),{free:a,frozen:r}=o;return BigInt(a)-BigInt(r)}getAssetDepositLimit(e){let n=typeof e=="number"?e:Number(this.chain.getAssetId(e));return is(this.api(),n)}getAllAssetDepositLimits(){return cs(this.api())}getGlobalWithdrawLimit(){return ms(this.api())}};import{SolanaChain as Oc,SuiChain as Gc}from"@galacticcouncil/xc-core";import{Abi as Tc,Wormhole as Pc}from"@galacticcouncil/xc-core";import{big as _c}from"@galacticcouncil/common";import{Ntt as kc}from"@galacticcouncil/xc-core";var it={capacity:0n,limit:0n,windowMs:0,capacityAtLastTx:0n,lastTxMs:0};function yt(t,e){if(!e)throw new Error("No ntt asset given for "+t.name+".");return kc.fromChain(t,e)}function Yt(t,e,n,s,o){let a=s>n?s-n:0n,r=e+t*a/o;return r<t?r:t}var Bc=500000n;function Ro(t,e){let n=t>>8n,s=Number(t&0xffn);return n*_c.pow10(e-s)}var Zt=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Pc.fromChain(e).getWormholeId())}async getRedeemBudget(){return{gasLimit:Bc,msgValue:0n}}async getLimit(e){let n=this.chain.evmClient.getProvider(),s=Tc.NttManager,o=yt(this.chain,this.asset).manager,[a,r,i,c]=await Promise.all([n.readContract({abi:s,address:o,functionName:"rateLimitDuration"}),n.readContract({abi:s,address:o,functionName:"tokenDecimals"}),e===void 0?n.readContract({abi:s,address:o,functionName:"getCurrentOutboundCapacity"}):n.readContract({abi:s,address:o,functionName:"getCurrentInboundCapacity",args:[e]}),e===void 0?n.readContract({abi:s,address:o,functionName:"getOutboundLimitParams"}):n.readContract({abi:s,address:o,functionName:"getInboundLimitParams",args:[e]})]);return a===0n?it:{capacity:i,limit:Ro(c.limit,r),windowMs:Number(a)*1e3,capacityAtLastTx:Ro(c.currentCapacity,r),lastTxMs:Number(c.lastTxTimestamp)*1e3}}};import{spl as Sc,Wormhole as Fc}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as Ic}from"@solana/spl-token";import{PublicKey as en}from"@solana/web3.js";var Dc=250000n,Xc=10000000n,Rc=2039280n,Lo=3600*24,Lc=8,Nc=9;function Vc(t,e){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);return{limit:n.getBigUint64(e,!0),capacityAtLastTx:n.getBigUint64(e+8,!0),lastTxTimestamp:n.getBigInt64(e+16,!0)}}var tn=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Fc.fromChain(e).getWormholeId())}async getRedeemBudget(e){let{connection:n}=this.chain,s={gasLimit:Dc,msgValue:Xc};if(!this.asset||!e)return{...s,msgValue:s.msgValue+Rc};let o=new en(yt(this.chain,this.asset).token),{ata:a}=await Sc.getTokenAccount(n,o,new en(e));if(await n.getAccountInfo(a))return s;let i=await Ic(n);return{...s,msgValue:s.msgValue+BigInt(i)}}async getLimit(e){let{pda:n,offset:s}=this.rateLimitPda(e),o=await this.chain.connection.getAccountInfo(n);if(!o)return it;let{limit:a,capacityAtLastTx:r,lastTxTimestamp:i}=Vc(o.data,s),c=BigInt(Math.floor(Date.now()/1e3));return{capacity:Yt(a,r,i,c,BigInt(Lo)),limit:a,windowMs:Lo*1e3,capacityAtLastTx:r,lastTxMs:Number(i)*1e3}}rateLimitPda(e){let n=new en(yt(this.chain,this.asset).manager),s=new TextEncoder;if(e===void 0){let[r]=en.findProgramAddressSync([s.encode("outbox_rate_limit")],n);return{pda:r,offset:Lc}}let o=new Uint8Array(2);new DataView(o.buffer).setUint16(0,e,!1);let[a]=en.findProgramAddressSync([s.encode("inbox_rate_limit"),o],n);return{pda:a,offset:Nc}}};import{suiPkg as Hc,Wormhole as Mc}from"@galacticcouncil/xc-core";var Wc=10000000n,No=3600*24*1e3;function Vo(t){let e=BigInt(t.limit),n=BigInt(t.capacity_at_last_tx),s=BigInt(t.last_tx_timestamp),o=BigInt(Date.now());return{capacity:Yt(e,n,s,o,BigInt(No)),limit:e,windowMs:No,capacityAtLastTx:n,lastTxMs:Number(s)}}var nn=class{constructor(e,n){this.chain=e;this.asset=n}getOutboundLimit(){return this.getLimit()}getInboundLimit(e){return this.getLimit(Mc.fromChain(e).getWormholeId())}async getRedeemBudget(){return{gasLimit:Wc,msgValue:0n}}async getLimit(e){let n=this.chain.client,s=yt(this.chain,this.asset).manager,o=await Hc.getObject(n,s);if(e===void 0){let m=o.fields.outbox?.fields?.rate_limit?.fields;return m?Vo(m):it}let a=o.fields.peers?.fields?.id?.id;if(!a)return it;let{data:r}=await n.getDynamicFieldObject({parentId:a,name:{type:"u16",value:e}}),c=r?.content?.fields?.value?.fields?.inbound_rate_limit?.fields;return c?Vo(c):it}};function ct(t,e){return t instanceof Oc?new tn(t,e):t instanceof Gc?new nn(t,e):new Zt(t,e)}import{deserializeLayout as Uc,encoding as Ho,serializeLayout as qc}from"@wormhole-foundation/sdk-base";import{relayInstructionsLayout as Kc,signedQuoteLayout as zc}from"@wormhole-foundation/sdk-definitions";var jc=300*1e3,$c=t=>{try{let{quote:e}=Uc(zc,Ho.hex.decode(t));return e.expiryTime.getTime()}catch{return 0}},yn=class{quotes=new Map;async quote(e,n,s){let{gasLimit:o,msgValue:a}=s,r=[e,n,o,a].join(":"),i=this.quotes.get(r);if(i&&$c(i.signedQuote)-Date.now()>jc)return i;let c=Ho.hex.encode(qc(Kc,{requests:[{request:{type:"GasInstruction",gasLimit:o,msgValue:a}}]}),!0),m=await fetch(Bo+"/v0/quote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srcChain:e,dstChain:n,relayInstructions:c})});if(!m.ok)throw new Error("Executor quote failed ["+e+"->"+n+"]");let{signedQuote:d,estimatedCost:u}=await m.json();if(!d||!u)throw new Error("Executor quote incomplete");let l={signedQuote:d,estimatedCost:BigInt(u),relayInstructions:c};return this.quotes.set(r,l),l}},Gt=new yn;var ls=async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=Wo.fromChain(r,s),m=ds.fromChain(i),d=e;i instanceof us&&(d=await i.getDerivatedAddress(e));let u=await r.evmClient.getProvider().readContract({abi:Ut.NttManager,address:c.manager,args:[m.getWormholeId(),Qt],functionName:"quoteDeliveryPrice"}),l=r.getAssetDecimals(s)??0,p=n;if(l>rs){let g=10n**BigInt(l-rs);p=n-n%g}return{ctx:r,ntt:c,rcvWh:m,rcvAddress:d,transferAmount:p,deliveryPrice:u[1],wrapNative:r.getBalanceType(s)===Jc.Native}},Qc=()=>({build:async t=>{let{ntt:e,rcvWh:n,rcvAddress:s,transferAmount:o,deliveryPrice:a,wrapNative:r}=await ls(t);return[new bn({abi:Ut.NttManager,address:e.manager,args:[o,n.getWormholeId(),n.normalizeAddress(s)],token:e.token,wrapNative:r,value:a,func:"transfer",module:"NttManager"})]}}),Yc=()=>({build:async t=>{let{ctx:e,ntt:n,rcvWh:s,rcvAddress:o,transferAmount:a,deliveryPrice:r,wrapNative:i}=await ls(t),c=ds.fromChain(e),m=c.getNttExecutor(),d=e instanceof us?await e.getDerivatedAddress(t.sender):t.sender,u=await ct(t.destination.chain,t.destination.balance).getRedeemBudget(t.address),{signedQuote:l,estimatedCost:p,relayInstructions:g}=await Gt.quote(c.getWormholeId(),s.getWormholeId(),u),w=s.normalizeAddress(o),B={value:p,refundAddress:d,signedQuote:l,instructions:g},v={transferTokenFee:0n,nativeTokenFee:0n,payee:d};return[new bn({abi:Ut.NttManagerWithExecutor,address:m,args:[n.manager,a,s.getWormholeId(),w,w,Qt,B,v],token:n.token,wrapNative:i,value:r+p,func:"transfer",module:"NttManagerWithExecutor"})]}}),Zc=()=>({build:async t=>{let{ctx:e,ntt:n,rcvWh:s,rcvAddress:o,transferAmount:a,deliveryPrice:r,wrapNative:i}=await ls(t),c=ds.fromChain(e),m=t.destination.chain,d=Wo.find(m,t.destination.balance.key);if(!d)throw new Error("Ntt deployment missing on "+m.key);let u=e instanceof us?await e.getDerivatedAddress(t.sender):t.sender,l=await ct(m,t.destination.balance).getRedeemBudget(t.address),[p,g]=await Promise.all([Gt.quote(c.getWormholeId(),s.getWormholeId(),l),e.evmClient.getProvider().readContract({abi:Ut.NttManager,address:n.manager,functionName:"nextMessageSequence"})]);return[new bn({abi:Ut.NttManager,address:n.manager,args:[a,s.getWormholeId(),s.normalizeAddress(o)],token:n.token,wrapNative:i,value:r,func:"transfer",module:"NttManager"}),new bn({abi:Ut.Executor,address:c.getExecutor(),args:[s.getWormholeId(),s.normalizeAddress(d.manager),u,p.signedQuote,So(c.getWormholeId(),n.manager,BigInt(g)),p.relayInstructions],value:p.estimatedCost,func:"requestExecution",module:"Executor"})]}}),Oo=()=>({transfer:Qc,transferWithExecutor:Yc,transferViaExecutor:Zc});function Go(){return{Ntt:Oo}}function z(){return{Batch:co,Erc20:mo,Basejump:uo,PolkadotXcm:go,Snowbridge:Po,Wormhole:Go}}import{encodeLocation as Uo}from"@galacticcouncil/common";import{ExtrinsicConfig as e0}from"@galacticcouncil/xc-core";var qo="AssetConversion",t0=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:n,source:s})=>{let{chain:o}=s,a=s.destinationFeeSwap||s.feeSwap;if(!a)throw new Error("Swap context not found.");let{aIn:r,aOut:i}=a,c=o,m=Uo(c.getAssetXcmLocation(r)),d=Uo(c.getAssetXcmLocation(i)),u=r.amount+r.amount*BigInt(t.slippage)/100n,l=i.amount;return new e0({module:qo,func:e,getTx:p=>p.getUnsafeApi().tx[qo][e]({path:[m,d],amount_out:l,amount_in_max:u,send_to:n,keep_alive:!0})})}}},Ko=()=>({swapTokensForExactTokens:t0});import{hub as n0,MultiAddress as s0}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as o0}from"@galacticcouncil/xc-core";var a0="Assets",r0=()=>{let t="transfer";return{build:async({asset:e,amount:n,address:s,destination:o})=>{let a=o.chain,{fee:r}=o,i=n>r.amount?n-r.amount:n,c=a.getMetadataAssetId(e);return new o0({module:a0,func:t,getTx:m=>m.getTypedApi(n0).tx.Assets.transfer({id:Number(c),target:s0.Id(s),amount:i})})}}},zo=()=>({transfer:r0});import{ExtrinsicConfig as i0}from"@galacticcouncil/xc-core";var jo="Balances",c0=(t=!1)=>{let e="transfer_all";return{build:async({address:n})=>new i0({module:jo,func:e,getTx:s=>s.getUnsafeApi().tx[jo][e]({dest:n,keep_alive:t})})}},$o=()=>({transferAll:c0});import{ExtrinsicConfig as m0,Gas as u0,getEvmPrerequisites as d0}from"@galacticcouncil/xc-core";import{Binary as l0}from"polkadot-api";var Jo="EVM",xn=(1n<<64n)-1n,Qo=t=>[t&xn,t>>64n&xn,t>>128n&xn,t>>192n&xn],f0=t=>({build:async e=>{let n=e.source.chain,s=n.evmClient,o=await t.build(e),[a,r]=await Promise.all([n.getDerivatedAddress(e.sender),s.getProvider().getGasPrice()]),i=r+r/10n,m=[...await d0(s,a,e.amount,o[0]),...o.map(u=>({to:u.address,data:u.encodeFunctionData(),value:u.value,gas:u0.transfer}))],d=m.length>1;return new m0({module:d?"Utility":Jo,func:d?"batch_all":"call",getTx:u=>{let l=u.getUnsafeApi(),p=m.map(g=>l.tx[Jo].call({source:a,target:g.to,input:l0.fromHex(g.data),value:Qo(g.value??0n),gas_limit:g.gas,max_fee_per_gas:Qo(i),max_priority_fee_per_gas:void 0,nonce:void 0,access_list:[],authorization_list:[]}));return d?l.tx.Utility.batch_all({calls:p.map(g=>g.decodedCall)}):p[0]}})}}),Yo=()=>({call:f0});import{hydration as p0}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as h0}from"@galacticcouncil/xc-core";var g0="Router",y0=t=>({build:async({source:n})=>{let{chain:s,destinationFeeSwap:o}=n;if(!o)throw new Error("Swap context not found.");let{aIn:a,aOut:r,route:i}=o,c=s,m=c.getMetadataAssetId(a),d=c.getMetadataAssetId(r),u=r.amount,l=a.amount+a.amount*BigInt(t.slippage)/100n;return new h0({module:g0,func:"buy",getTx:p=>p.getTypedApi(p0).tx.Router.buy({asset_in:Number(m),asset_out:Number(d),amount_out:u,max_amount_in:l,route:i})})}}),Zo=()=>({buy:y0});import{ExtrinsicConfig as b0}from"@galacticcouncil/xc-core";var fs="Utility",ea=t=>t?.type===fs&&t?.value?.type==="batch_all"?t.value.value.calls.flatMap(ea):[t],x0=t=>{let e="batch_all";return{build:async n=>{let s=await Promise.all(t.map(o=>o.build(n)));return new b0({module:fs,func:e,getTx:o=>{let a=s.flatMap(r=>ea(r.getTx(o).decodedCall));return o.getUnsafeApi().tx[fs][e]({calls:a})}})}}},ta=()=>({batchAll:x0});import{ExtrinsicConfig as jt}from"@galacticcouncil/xc-core";import{big as j0}from"@galacticcouncil/common";import{multiloc as pa,ChainEcosystem as ks}from"@galacticcouncil/xc-core";import{XcmV3Junctions as Ie,XcmV3Junction as Bt,XcmV3JunctionNetworkId as la,XcmV3MultiassetFungibility as Ts,XcmV4Instruction as Te,XcmV4AssetAssetFilter as Kt,XcmV4AssetWildAsset as zt,XcmV3WeightLimit as ha,XcmV2MultiassetWildFungibility as G0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as D0,XcmV3MultiassetFungibility as hs,XcmV3WeightLimit as X0,XcmV4AssetAssetFilter as R0,XcmV4AssetWildAsset as L0,XcmV4Instruction as sn}from"@galacticcouncil/descriptors";import{acc as A0}from"@galacticcouncil/common";import{XcmV3Junction as na}from"@galacticcouncil/descriptors";import{getSs58AddressInfo as w0}from"@polkadot-api/substrate-bindings";import{toHex as C0}from"@polkadot-api/utils";function j(t){if(t.length===42&&t.startsWith("0x"))return na.AccountKey20({key:t,network:void 0});let n=w0(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);return na.AccountId32({id:C0(n.publicKey),network:void 0})}function An(t,e,n){return A0.getMultilocationDerivatedAccount(t.parachainId,e,n.parachainId===0?0:1,n.usesH160Acc)}import{multiloc as sa}from"@galacticcouncil/xc-core";function oa(t,e){let n=sa.findNestedKey(t,"GeneralIndex"),s=sa.findNestedKey(e,"GeneralIndex"),o=n&&n.GeneralIndex,a=s&&s.GeneralIndex;return Number.isNaN(o)||Number.isNaN(a)?!1:Number(o)>Number(a)}function N(t,e){let n=t.getAssetXcmLocation(e);if(!n)throw new Error(e.originSymbol+" location config is missing.");return n}var En={};Jt(En,{ETHER_TOKEN_ADDRESS:()=>ps,erc20Location:()=>k0,erc20LocationReanchored:()=>T0,ethereumLocation:()=>ra,parachainLocation:()=>v0});import{XcmV3Junctions as wn,XcmV3Junction as Cn,XcmV3JunctionNetworkId as E0}from"@galacticcouncil/descriptors";var ps="0x0000000000000000000000000000000000000000",aa=t=>Cn.GlobalConsensus(E0.Ethereum({chain_id:BigInt(t)}));function ra(t){return{parents:2,interior:wn.X1(aa(t))}}function v0(t){return{parents:1,interior:wn.X1(Cn.Parachain(t))}}function k0(t,e){return e===ps?ra(t):{parents:2,interior:wn.X2([aa(t),Cn.AccountKey20({key:e})])}}function T0(t){return t===ps?{parents:0,interior:{type:"Here"}}:{parents:0,interior:wn.X1(Cn.AccountKey20({key:t}))}}import{encodeLocation as ia}from"@galacticcouncil/common";import{multiloc as P0}from"@galacticcouncil/xc-core";function W(t,e){return _0(e)>=4?ia(t):B0(t)}function _0(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function B0(t){return{type:"Concrete",value:ia(t)}}var S0=1e3;function F0(t){let{parents:e,interior:n}=t;return e===1&&n==="Here"?!0:e===2&&n&&n!=="Here"?Object.values(n).flat().some(o=>o&&typeof o=="object"&&"GlobalConsensus"in o):!1}function I0(t){if(t)return F0(t)?S0:P0.findParachain(t)}function ca(t,e,n,s){let o=e.getAssetXcmLocation(t),a=I0(o),r=s?.parachainId??n.parachainId;if(a&&r!==a)throw new Error(s?`Wrong reserve for "${t.originSymbol}": expected chain ${a}, got ${s.name} (${s.parachainId})`:`Reserve chain ${a} required for "${t.originSymbol}"`)}var mt=(a=>(a.v1="V1",a.v2="V2",a.v3="V3",a.v4="V4",a.v5="V5",a))(mt||{}),Fe=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(Fe||{});function vn(t,e){let n="V4",s=W(N(e,t),n),o=ze;return[sn.ReserveAssetDeposited([{id:M,fun:hs.Fungible(q)},{id:s,fun:hs.Fungible(q)}]),sn.ClearOrigin(),sn.BuyExecution({fees:{id:M,fun:hs.Fungible(q)},weight_limit:X0.Unlimited()}),sn.DepositAsset({assets:R0.Wild(L0.AllCounted(2)),beneficiary:{parents:0,interior:D0.X1(j(_t))}}),sn.SetTopic(o)]}import{XcmV4Instruction as gs,XcmV3MultiassetFungibility as ys,XcmV3WeightLimit as N0}from"@galacticcouncil/descriptors";function bs(t,e){let n="V4",s=W(N(e,t),n),o=kn("V4",j(Ao),j(_t),s,ze);return[gs.WithdrawAsset([{id:M,fun:ys.Fungible(q)},{id:s,fun:ys.Fungible(q)}]),gs.ClearOrigin(),gs.BuyExecution({fees:{id:M,fun:ys.Fungible(q)},weight_limit:N0.Unlimited()}),...o.value]}import{XcmV3Junctions as xs,XcmV3Junction as V0,XcmV3MultiassetFungibility as on,XcmV3WeightLimit as As,XcmV4AssetAssetFilter as ws,XcmV4AssetWildAsset as Cs,XcmV4Instruction as Le}from"@galacticcouncil/descriptors";function ma(t,e){let n="V4",s=W(N(e,t),n),o=ze;return[Le.WithdrawAsset([{id:s,fun:on.Fungible(q)}]),Le.ClearOrigin(),Le.BuyExecution({fees:{id:s,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositAsset({assets:ws.Wild(Cs.AllCounted(1)),beneficiary:{parents:0,interior:xs.X1(j(_t))}}),Le.SetTopic(o)]}function Es(t,e){let n="V4",s=W(N(e,t),n);return[Le.BuyExecution({fees:{id:s,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositAsset({assets:ws.Wild(Cs.AllCounted(1)),beneficiary:{parents:0,interior:xs.X1(j(_t))}})]}function ua(t,e,n){let s="V4",o=W(N(e,t),s),a=ze,r=Es(t,n);return[Le.WithdrawAsset([{id:o,fun:on.Fungible(q)}]),Le.ClearOrigin(),Le.BuyExecution({fees:{id:o,fun:on.Fungible(q)},weight_limit:As.Unlimited()}),Le.DepositReserveAsset({assets:ws.Wild(Cs.AllCounted(1)),dest:{parents:1,interior:xs.X1(V0.Parachain(n.parachainId))},xcm:r}),Le.SetTopic(a)]}import{XcmV3MultiassetFungibility as vs,XcmV5AssetFilter as H0,XcmV5Instruction as qt,XcmV5Junctions as M0,XcmV5Junction as W0,XcmV5WildAsset as O0}from"@galacticcouncil/descriptors";function da(t,e){let n="V5",s=W(N(e,t),n),o={parents:0,interior:M0.X1(W0.AccountId32({id:xo,network:void 0}))};return[qt.ReserveAssetDeposited([{id:M,fun:vs.Fungible(q)}]),qt.PayFees({asset:{id:M,fun:vs.Fungible(q)}}),qt.ReserveAssetDeposited([{id:s,fun:vs.Fungible(q)}]),qt.ClearOrigin(),qt.DepositAsset({assets:H0.Wild(O0.AllCounted(3)),beneficiary:o}),qt.SetTopic(ze)]}var fa=[ks.Polkadot,ks.Kusama],U0={parents:1,interior:Ie.X1(Bt.Parachain(1e3))},q0=t=>{let{parents:e,interior:n}=t;return e!==1?!1:n==="Here"||n?.type==="Here"},ga=(t,e)=>!t.ecosystem||!e.ecosystem?!1:fa.includes(t.ecosystem)&&fa.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ya=t=>{let{interior:e}=t;if(e.type==="X1"&&e.value.type==="GlobalConsensus")return e.value.value.type==="Ethereum";if(e.type==="X2"&&Array.isArray(e.value)){let n=e.value[0];return n.type==="GlobalConsensus"&&n.value.type==="Ethereum"}return!1},bt=(t,e,n)=>{if(ga(e,n))return{type:t,value:Ps(n.ecosystem,n.parachainId)};if(n.parachainId===bo)return{type:t,value:{parents:1,interior:Ie.Here()}};let s=n.key==="ethereum"?ht:n.parachainId;return{type:t,value:{parents:1,interior:Ie.X1(Bt.Parachain(s))}}},K0=t=>t===ks.Kusama?la.Kusama():la.Polkadot(),Ps=(t,e)=>({parents:2,interior:Ie.X2([Bt.GlobalConsensus(K0(t)),Bt.Parachain(e)])}),ba=(t,e,n,s)=>{if(ga(e,n)){if(e.parachainId!==ht){let o=pa.findGlobalConsensus(N(e,s)),a=typeof o=="string"&&o===n.ecosystem;return{dest:{type:t,value:{parents:1,interior:Ie.X1(Bt.Parachain(ht))}},mode:a?"bridge-withdraw":"bridge-deposit"}}if(n.parachainId!==ht)return{dest:{type:t,value:Ps(n.ecosystem,ht)},mode:"onward"}}},St=(t,e)=>({type:t,value:{parents:0,interior:Ie.X1(e)}}),_s=(t,e,n)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:q0(n)?U0:n}}:{type:e},xt=(t,e)=>({id:t,fun:Ts.Fungible(e)}),xa=(t,e,n)=>({type:t,value:[Te.DepositAsset({assets:Kt.Wild(zt.AllCounted(n)),beneficiary:{parents:0,interior:Ie.X1(e)}})]}),kn=(t,e,n,s,o)=>{let a=o;return{type:t,value:[Te.SetAppendix([Te.DepositAsset({assets:Kt.Wild(zt.All()),beneficiary:{parents:0,interior:Ie.X1(n)}})]),Te.InitiateReserveWithdraw({assets:Kt.Wild(zt.AllOf({id:s,fun:G0.Fungible()})),reserve:En.ethereumLocation(Xe),xcm:[Te.BuyExecution({fees:{id:z0(s),fun:Ts.Fungible(1n)},weight_limit:ha.Unlimited()}),Te.DepositAsset({assets:Kt.Wild(zt.AllCounted(1)),beneficiary:{parents:0,interior:Ie.X1(e)}}),Te.SetTopic(a)]}),Te.SetTopic(a)]}},Aa=(t,e,n,s,o,a)=>{let r=s==="onward"?{parents:1,interior:Ie.X1(Bt.Parachain(n.parachainId))}:Ps(n.ecosystem,n.parachainId),i={parents:0,interior:Ie.X1(e)},c=Kt.Wild(zt.AllCounted(1)),m=[Te.BuyExecution({fees:{id:o,fun:Ts.Fungible(a)},weight_limit:ha.Unlimited()}),Te.DepositAsset({assets:c,beneficiary:i})],d=s==="bridge-withdraw"?Te.InitiateReserveWithdraw({assets:c,reserve:r,xcm:m}):Te.DepositReserveAsset({assets:c,dest:r,xcm:m});return{type:t,value:[Te.SetAppendix([Te.DepositAsset({assets:Kt.Wild(zt.All()),beneficiary:i})]),d]}},z0=t=>{let e=pa.findNestedKey(t,"key");return e?{parents:0,interior:Ie.X1(Bt.AccountKey20({key:e.key}))}:{parents:0,interior:Ie.Here()}};var Ne="PolkadotXcm",$0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=N(r,n),d=N(r,s.fee),u=W(m,c),l=W(d,c),p=xt(u,e),g=xt(l,s.fee.amount),w="limited_reserve_transfer_assets";return new jt({module:Ne,func:w,getTx:B=>{let v=B.getUnsafeApi().tx[Ne][w];return n.key===s.fee.key?v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[p]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):oa(m,d)?v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[g,p]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):v({dest:bt(c,r,i),beneficiary:St(c,a),assets:{type:c,value:[p,g]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),J0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="limited_teleport_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Q0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c=r.xcmVersion??"V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="reserve_transfer_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0})})}}),Y0=()=>({build:async({address:t,amount:e,asset:n,destination:s,source:o})=>{let a=j(t),r=o.chain,i=s.chain,c="V4",m=W(N(r,n),c),d=xt(m,e),u=bt(c,r,i),l=St(c,a),p={type:c,value:[d]},g="transfer_assets";return new jt({module:Ne,func:g,getTx:w=>w.getUnsafeApi().tx[Ne][g]({dest:u,beneficiary:l,assets:p,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Z0=t=>({build:async({address:e,asset:n,amount:s,destination:o,messageId:a,sender:r,source:i})=>{let c="V4",m=i.chain,d=o.chain,u=o.fee.amount,l=o.fee,p=j(r),g=d.usesCexForwarding?An(m,r,d):e,w=j(g),{transferType:B}=t,v=W(N(m,n),c),V=W(N(m,l),c),D=xt(v,s),H=xt(V,u),K=n.isEqual(l),C=ba(c,m,d,n),Me=C?.dest??bt(c,m,d),st={type:c,value:K?[D]:[H,D]},dt=_s(c,B,v),un={type:c,value:K?v:V},qn=_s(c,B,V),Xt;if(ya(v)&&o.chain.isEvmChain())Xt=kn(c,w,p,v,a);else if(C){let $t=j0.toBigInt(t.executionFee??o.fee.amount,o.fee.decimals),Kn=W(N(d,n),c);Xt=Aa(c,w,d,C.mode,Kn,$t)}else Xt=xa(c,w,st.value.length);let dn="transfer_assets_using_type_and_then";return new jt({module:Ne,func:dn,getTx:$t=>$t.getUnsafeApi().tx[Ne][dn]({dest:Me,assets:st,assets_transfer_type:dt,remote_fees_id:un,fees_transfer_type:qn,custom_xcm_on_dest:Xt,weight_limit:{type:"Unlimited"}})})}});function em(t){let e=n=>({build:async s=>{let o=n(s),a="execute";return new jt({module:Ne,func:a,getTx:r=>r.getUnsafeApi().tx[Ne][a]({message:o,max_weight:{ref_time:20000000000n,proof_size:500000n}})})}});return t?e(t):{viaSnowbridge:()=>e(Co)}}var Bs=()=>({limitedReserveTransferAssets:$0,limitedTeleportAssets:J0,reserveTransferAssets:Q0,transferAssets:Y0,transferAssetsUsingTypeAndThen:Z0,execute:em});import{ExtrinsicConfig as nm}from"@galacticcouncil/xc-core";import{encodeAssetId as sm}from"@galacticcouncil/common";import{XcmV3Junctions as wa,XcmV3Junction as tm}from"@galacticcouncil/descriptors";var Ca=(t,e,n)=>e.parachainId===0?{type:t,value:{parents:1,interior:wa.X1(n)}}:{type:t,value:{parents:1,interior:wa.X2([tm.Parachain(e.parachainId),n])}};var Ea="XTokens",om=()=>({build:async({address:t,amount:e,asset:n,destination:s,sender:o,source:a})=>{let r=a.chain,i=s.chain,c="V3",m=i.usesCexForwarding?An(r,o,i):t,d=j(m),u=r.getAssetId(n),l=sm(u),p="transfer";return new nm({module:Ea,func:p,getTx:g=>g.getUnsafeApi().tx[Ea][p]({currency_id:l,amount:e,dest:Ca(c,i,d),dest_weight_limit:{type:"Unlimited"}})})}}),Ss=()=>({transfer:om});function f(){return{assetConversion:Ko,assets:zo,balances:$o,evm:Yo,polkadotXcm:Bs,router:Zo,utility:ta,xTokens:Ss}}function ut(t,e){return{prior:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,n]).build(s):n.build(s)}},priorMulti:function(n){return{build:async s=>t(s)?f().utility().batchAll([e,...n]).build(s):f().utility().batchAll([...n]).build(s)}}}}import{Abi as Is,Ntt as am,Snowbridge as rm,Basejump as im,Wormhole as _a}from"@galacticcouncil/xc-core";var va=80000n,ka=120000n,Ta=100000n,Pa=2000000n,Fs=15000000000000n;function cm(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:n})=>{let s=n,o=new xe(s),a=new ke(t.hub),r=vn(e,s),i=da(e,s),c=Ot(Xe),m=250000000n,d=wo(Xe,s.parachainId),[u,l,p,g]=await Promise.all([o.calculateDestinationFeeV5(i,x),a.calculateDeliveryFee(r,s.parachainId),a.calculateDeliveryFee(r,hn),a.calculateDestinationFeeV5(d,x)]),w=U(u,33n),B=U(l,33n),v=U(p,33n),D=U(g,33n)+B,H=w,K=await a.quoteEtherForDot(c,D),C=U(K,30n),Me=C<Fs*2n?Fs*2n:C,st=U(await a.quoteEtherForDot(c,H),100n),dt=U(await a.quoteDotToEther(c,m+v),30n);return{amount:Me+dt+st,breakdown:{executionFee:Me,relayerFee:dt,remoteEtherFee:st,hydrationDotFee:H}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:n,source:s,destination:o})=>{let a=s,r=o,i=new ke(t.hub),c=Ot(Xe),m=bs(e,a),[d,u,l]=await Promise.all([i.getBridgeDeliveryFee(),i.calculateDeliveryFee(m,hn),i.calculateDestinationFee(m,n)]),p=await r.evmClient.getProvider().getGasPrice(),g=Pa+ka+va+Ta,w=p*g,B=U(w,10n),v=d+U(u,33n)+U(l,33n),V=U(await i.quoteDotForExactEther(c,B),20n),D=new xe(a),H=os({tokenAddress:"0x0000000000000000000000000000000000000000",senderPubKey:"0x"+"00".repeat(32),beneficiaryHex:"0x"+"00".repeat(20),tokenAmount:1000000000000n,sourceExecutionFee:1000000000n,dotRemoteFee:1000000000n,dotToEtherSwapAmount:1000000000n,etherFeeAmount:1000000000n,topic:ze}),K=U(await D.calculateDestinationFeeV5(H,x),33n);return{amount:v+V+K,breakdown:{dotRemoteFee:v,dotToEtherSwapAmount:V,etherFeeAmount:B,sourceExecutionFee:K}}}}),calculateInboundFeeV1:t=>({build:async({feeAsset:e,destination:n,source:s})=>{let o=s,a=n,r=rm.fromChain(o),i=new Re(a),c=new ke(t.hub),m=vn(e,a),[d,u]=await Promise.all([i.calculateDestinationFee(m,x),c.calculateDeliveryFee(m,a.parachainId)]),l=u+U(d,25n),p=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Is.Snowbridge,address:r.getGateway(),args:[p,a.parachainId,l],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:l}}}}),calculateOutboundFeeV1:t=>({build:async({transferAsset:e,feeAsset:n,source:s})=>{let o=s,a=new ke(t.hub),r=bs(e,o),i=vn(e,o),[c,m,d,u,l]=await Promise.all([a.getBridgeDeliveryFeeV1(),a.calculateDeliveryFee(r,hn),a.calculateDestinationFee(r,n),a.calculateDeliveryFee(i,o.parachainId),a.calculateDestinationFee(i,n)]);return{amount:c+m+U(d,25n)+u+U(l,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:m,assetHubDestinationFee:d,returnToSenderDeliveryFee:u,returnToSenderDestinationFee:l}}}})}}function mm(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:n,destination:s})=>{let o=n,a=s,r=t?.reserve;if(ca(e,o,a,r),r){let l=new Re(a),p=new Re(r),g=Es(e,a),w=ua(e,r,a),[B,v]=await Promise.all([l.calculateDestinationFee(g,e),p.calculateDestinationFee(w,e)]),V=v+B,D=U(V,20n),H=D-V;return{amount:D,breakdown:{reserveFee:v,destinationFee:B,margin:H}}}let i=new Re(a),c=ma(e,a),m=await i.calculateDestinationFee(c,e),d=U(m,20n),u=d-m;return{amount:d,breakdown:{totalFee:m,margin:u}}}})}}function um(){return{quoteExecutorCost:()=>({build:async({address:t,destinationAsset:e,transferAsset:n,source:s,destination:o})=>{let a=s,r=am.fromChain(a,n),i=_a.fromChain(a),c=_a.fromChain(o),m=await ct(o,e).getRedeemBudget(t),[d,u]=await Promise.all([a.evmClient.getProvider().readContract({abi:Is.NttManager,address:r.manager,args:[c.getWormholeId(),Qt],functionName:"quoteDeliveryPrice"}),Gt.quote(i.getWormholeId(),c.getWormholeId(),m)]);return{amount:d[1]+u.estimatedCost,breakdown:{deliveryPrice:d[1],executorCost:u.estimatedCost}}}})}}function dm(){return{quoteFee:()=>({build:async({feeAsset:t,source:e})=>{let n=e,s=im.fromChain(n),o=n.getAssetId(t);return{amount:await n.evmClient.getProvider().readContract({abi:Is.Basejump,address:s.getAddress(),args:[o],functionName:"quoteFee"})}}})}}function P(){return{Basejump:dm,XcmPaymentApi:mm,Snowbridge:cm,Wormhole:um}}var lm="0";function fm(){return{build:async({address:t,chain:e})=>{let s=await new xe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=s?s.toString():lm,a=e.findAssetById(o);return a?a.asset:Rt}}}var pm=()=>({accountCurrencyMap:fm});function an(){return{multiTransactionPayment:pm}}import{EvmParachain as hm,MoveConfig as gm,Ntt as ym,suiPkg as Tn,Wormhole as Ba}from"@galacticcouncil/xc-core";import{Transaction as bm}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Ds}from"@mysten/sui/utils";import{encoding as xm}from"@wormhole-foundation/sdk-base";var Am=()=>({build:async t=>{let{address:e,amount:n,asset:s,source:o,destination:a}=t,r=o.chain,i=a.chain,c=ym.fromChain(r,s),m=Ba.fromChain(r),d=Ba.fromChain(i),u=r.client,l=e;i instanceof hm&&(l=await i.getDerivatedAddress(e));let p=xm.hex.decode(d.normalizeAddress(l)),g=m.getCoreBridge(),w=c.manager,B=c.transceiver.wormhole,v=c.token,[V,D,H,K]=await Promise.all([Tn.getWormholePackageId(u,g),Tn.getCurrentPackageId(u,w),Tn.getCurrentPackageId(u,B),Tn.getCoinMetadataId(u,v)]),C=new bm,[Me]=C.splitCoins(C.gas,[C.pure.u64(n)]),[st]=C.moveCall({target:`${D}::upgrades::new_version_gated`,arguments:[]}),[dt,un]=C.moveCall({target:`${D}::ntt::prepare_transfer`,typeArguments:[v],arguments:[C.object(w),Me,C.object(K),C.pure.u16(d.getWormholeId()),C.pure.vector("u8",Array.from(p)),C.pure.option("vector<u8>",null),C.pure.bool(!1)]}),[qn]=C.moveCall({target:`${D}::state::get_next_sequence`,typeArguments:[v],arguments:[C.object(w)]});C.moveCall({target:`${D}::ntt::transfer_tx_sender`,typeArguments:[v],arguments:[C.object(w),st,C.object(K),dt,C.object(Ds)]});let[Xt]=C.moveCall({target:`${D}::state::create_transceiver_message`,typeArguments:[`${H}::wormhole_transceiver::TransceiverAuth`,v],arguments:[C.object(w),qn,C.object(Ds)]}),[dn]=C.moveCall({target:`${H}::wormhole_transceiver::release_outbound`,typeArguments:[`${D}::auth::ManagerAuth`],arguments:[C.object(B),Xt]}),[$t]=C.splitCoins(C.gas,[C.pure.u64(0n)]);C.moveCall({target:`${V}::publish_message::publish_message`,arguments:[C.object(g),$t,dn,C.object(Ds)]});let[Kn]=C.moveCall({target:"0x2::coin::from_balance",typeArguments:[v],arguments:[un]});return C.mergeCoins(C.gas,[Kn]),[new gm({transaction:C,func:"transfer",module:"NttManager"})]}}),Sa=()=>({transfer:Am});function Fa(){return{Ntt:Sa}}function Xs(){return{Wormhole:Fa}}import{EvmParachain as wm,Ntt as Cm,ProgramConfig as Da,SolanaBalanceType as Em,Wormhole as Ia}from"@galacticcouncil/xc-core";import{getMinimumBalanceForRentExemptAccount as vm}from"@solana/spl-token";import{Keypair as km,TransactionMessage as Tm}from"@solana/web3.js";import{toChain as Pm}from"@wormhole-foundation/sdk-base";import{UniversalAddress as _m}from"@wormhole-foundation/sdk-definitions";import{SolanaAddress as Bm}from"@wormhole-foundation/sdk-solana";import"@wormhole-foundation/sdk-definitions-ntt";async function Sm(t,e){return!("message"in e)||e.message.version==="legacy"?[]:(await Promise.all(e.message.addressTableLookups.map(s=>t.getAddressLookupTable(s.accountKey)))).map(s=>s.value).filter(s=>s!==null)}async function Fm(t,e,n){let s=await Sm(t,e),o="message"in e?Tm.decompile(e.message,{addressLookupTableAccounts:s}).instructions:e.instructions;return new Da({instructions:o,signers:n,lookupTables:s,func:"transfer",module:"NttManager"})}var Im=()=>({build:async t=>{let{address:e,amount:n,asset:s,sender:o,source:a,destination:r}=t,i=a.chain,c=r.chain,m=Cm.fromChain(i,s),d=Ia.fromChain(i),u=Ia.fromChain(c),l=e;c instanceof wm&&(l=await c.getDerivatedAddress(e));let{SolanaNtt:p}=await import("@wormhole-foundation/sdk-solana-ntt"),g=new p("Mainnet","Solana",i.connection,{coreBridge:d.getCoreBridge(),ntt:{manager:m.manager,token:m.token,transceiver:{wormhole:m.transceiver.wormhole}}}),w=i.getBalanceType(s)===Em.Native,B=km.generate(),v=[];for await(let H of g.transfer(new Bm(o),n,{chain:Pm(u.getWormholeId()),address:new _m(u.normalizeAddress(l))},{queue:!1,automatic:!1,wrapNative:w},B)){let{transaction:K,signers:C}=H.transaction;v.push(await Fm(i.connection,K,C??[]))}let V=w?BigInt(await vm(i.connection)):0n,D=v[v.length-1];return[...v.slice(0,-1),new Da({instructions:D.instructions,signers:D.signers,lookupTables:D.lookupTables,rentReserve:V,func:"transfer",module:"NttManager"})]}}),Xa=()=>({transfer:Im});function Ra(){return{Ntt:Xa}}function Rs(){return{Wormhole:Ra}}var Na={};Jt(Na,{Tag:()=>At});var At=(i=>(i.Basejump="Basejump",i.Ntt="Ntt",i.NttExecutor="NttExecutor",i.Wormhole="Wormhole",i.Relayer="Relayer",i.Snowbridge="Snowbridge",i.SnowbridgeV1="SnowbridgeV1",i))(At||{});function Va(t,e){return new Ls({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Ha(t,e){return new Ls({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:k}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function Ma(t,e){return new Ls({source:{asset:t,fee:{asset:k},destinationFee:t},destination:{chain:h,asset:e,fee:{amount:P().Basejump().quoteFee(),asset:t}},contract:z().Basejump().bridgeViaWormhole(),tags:["Basejump"]})}var Xm=[Ma(De,Oe)],Rm=[Va(De,Oe)],Lm=[Ha(De,Oe)],Wa=new Dm({chain:kt,routes:[...Rm,...Lm,...Xm]});import{AssetRoute as Ga,ChainRoutes as Nm}from"@galacticcouncil/xc-core";import{AssetRoute as rn}from"@galacticcouncil/xc-core";function wt(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}function Ft(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:k}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function Oa(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:0,asset:t}},contract:z().Wormhole().Ntt().transferWithExecutor(),tags:["Wormhole","Ntt","NttExecutor"]})}function ee(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Snowbridge().calculateInboundFee({hub:_}),asset:k}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]})}function te(t,e){return new rn({source:{asset:t,fee:{asset:k}},destination:{chain:h,asset:e,fee:{amount:P().Snowbridge().calculateInboundFeeV1({hub:_}),asset:k}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]})}var Vm=[wt(We,je),wt(Be,$e),wt(E,Qe),wt(y,Je),wt(Se,Ze),wt(Ye,ve),wt(k,ve)],Hm=[Ft(We,je),Ft(Be,$e),Ft(E,Qe),Ft(y,Je),Ft(Se,Ze),Ft(Ye,ve),Oa(k,ve)],Mm=[new Ga({source:{asset:k,fee:{asset:k}},destination:{chain:h,asset:k,fee:{amount:P().Snowbridge().calculateInboundFee({hub:_}),asset:k}},contract:z().Snowbridge().v2SendMessage(),tags:["Snowbridge"]}),ee(se,se),ee(oe,oe),ee(ae,ae),ee(re,re),ee(ue,ue),ee(pe,pe),ee(he,he),ee(ce,ce),ee(ie,ie),ee(me,me),ee(de,de),ee(ge,ge),ee(ye,ye),ee(E,at),ee(y,ot)],Wm=[new Ga({source:{asset:k,fee:{asset:k}},destination:{chain:h,asset:k,fee:{amount:P().Snowbridge().calculateInboundFeeV1({hub:_}),asset:k}},contract:z().Snowbridge().sendToken(),tags:["Snowbridge","SnowbridgeV1"]}),te(se,se),te(oe,oe),te(ae,ae),te(re,re),te(ue,ue),te(pe,pe),te(he,he),te(ce,ce),te(ie,ie),te(me,me),te(de,de),te(ge,ge),te(ye,ye),te(E,at),te(y,ot)],Ua=new Nm({chain:A,routes:[...Vm,...Hm,...Mm,...Wm]});var qa=[Wa,Ua];import{AssetRoute as Bn,ChainRoutes as za}from"@galacticcouncil/xc-core";import{AssetRoute as Ns}from"@galacticcouncil/xc-core";var It=0,Om=t=>{let{source:e}=t;return!!e.feeSwap},Gm=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},Ka=f().assetConversion().swapTokensForExactTokens({slippage:30});function Um(t,e,n){return new Ns({source:{asset:t,fee:{asset:x,extra:It}},destination:{chain:e,asset:t,fee:{amount:n,asset:y}},extrinsic:ut(Gm,Ka).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Pn(t,e,n){return new Ns({source:{asset:t,fee:{asset:t,swap:!t.isEqual(x)}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:ut(Om,Ka).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function cn(t,e,n){return new Ns({source:{asset:t,fee:{asset:x,extra:It}},destination:{chain:e,asset:t,fee:{amount:n,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function _n(t){return Um(t,h,.02)}var qm=[new Bn({source:{asset:x,fee:{asset:x,extra:It}},destination:{chain:h,asset:x,fee:{amount:.001,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Bn({source:{asset:T,fee:{asset:x,extra:It}},destination:{chain:h,asset:T,fee:{amount:1e-4,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),cn(y,h,.02),cn(E,h,.02),_n(rt)],Km=[new Bn({source:{asset:T,fee:{asset:x,extra:It}},destination:{chain:Ke,asset:T,fee:{amount:.001,asset:T}},extrinsic:f().polkadotXcm().transferAssets()})],zm=[cn(y,R,.03),cn(E,R,.03)],jm=[new Bn({source:{asset:X,fee:{asset:x,extra:It}},destination:{chain:pt,asset:X,fee:{amount:2.5,asset:X}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],ja=new za({chain:ft,routes:[Pn(y,h,.02),Pn(E,h,.02),Pn(x,h,.001)]}),$a=new za({chain:_,routes:[...qm,...Km,...zm,...jm]});import{AssetRoute as Ct,ChainRoutes as $m}from"@galacticcouncil/xc-core";var Jm=[new Ct({source:{asset:I},destination:{chain:h,asset:I,fee:{amount:.044306118,asset:I}},extrinsic:f().polkadotXcm().reserveTransferAssets()}),new Ct({source:{asset:F,fee:{asset:I}},destination:{chain:h,asset:F,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:L,fee:{asset:I}},destination:{chain:h,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:Pe,fee:{asset:I}},destination:{chain:h,asset:Pe,fee:{amount:.01,asset:Pe}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:G,fee:{asset:I}},destination:{chain:h,asset:G,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:O,fee:{asset:I}},destination:{chain:h,asset:O,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:R}),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:y,fee:{asset:I}},destination:{chain:h,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Ct({source:{asset:E,fee:{asset:I}},destination:{chain:h,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Ja=new $m({chain:Y,routes:[...Jm]});import{AssetRoute as nt,ChainRoutes as Qm}from"@galacticcouncil/xc-core";var Ym=[new nt({source:{asset:F},destination:{chain:h,asset:F,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:F}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:G,fee:{asset:F}},destination:{chain:h,asset:G,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:G}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:O,fee:{asset:F}},destination:{chain:h,asset:O,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:O}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:x,fee:{asset:F}},destination:{chain:h,asset:x,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new nt({source:{asset:I,fee:{asset:F}},destination:{chain:h,asset:I,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:Y}),asset:I}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:L,fee:{asset:F}},destination:{chain:h,asset:L,fee:{amount:625e-8,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:y,fee:{asset:F}},destination:{chain:h,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:E,fee:{asset:F}},destination:{chain:h,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Zm=[new nt({source:{asset:y,fee:{asset:F}},destination:{chain:_,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new nt({source:{asset:E,fee:{asset:F}},destination:{chain:_,asset:E,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:E}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],Qa=new Qm({chain:R,routes:[...Ym,...Zm]});import{AssetRoute as Dt,ChainRoutes as tu}from"@galacticcouncil/xc-core";var $=()=>({asset:an().multiTransactionPayment().accountCurrencyMap()});import{AssetRoute as Et}from"@galacticcouncil/xc-core";var eu=.02,Sn=t=>{let{source:e}=t,{enabled:n}=e.destinationFeeSwap||{};return!!n},Fn=f().router().buy({slippage:30});function Ae(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:e,asset:t,fee:{amount:P().XcmPaymentApi().calculateDestFee(n?{reserve:n}:void 0),asset:t}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})}function vt(t,e){return new Et({source:{asset:t,fee:$()},destination:{chain:e,asset:t,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})}function In(t){return new Et({source:{asset:t,fee:$()},destination:{chain:_,asset:t,fee:{amount:eu,asset:y}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().limitedReserveTransferAssets())})}function Vs(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:Ke,asset:t,fee:{amount:e,asset:t}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:n})})}function Ve(t,e,n){let s=z().Wormhole().Ntt().transfer();return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:0,asset:t}},contract:s,extrinsic:f().evm().call(s),tags:["Wormhole","Ntt"]})}function He(t,e,n){let s=z().Wormhole().Ntt().transferViaExecutor();return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Wormhole().quoteExecutorCost(),asset:ve}},contract:s,extrinsic:ut(Sn,Fn).prior(f().evm().call(s)),tags:["Wormhole","Ntt","NttExecutor"]})}function J(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Snowbridge().calculateOutboundFee({hub:_}),asset:x}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().execute().viaSnowbridge()),tags:["Snowbridge"]})}function Q(t,e,n){return new Et({source:{asset:t,fee:$()},destination:{chain:n,asset:e,fee:{amount:P().Snowbridge().calculateOutboundFeeV1({hub:_}),asset:x}},extrinsic:ut(Sn,Fn).prior(f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge","SnowbridgeV1"]})}var nu=[vt(x,_),vt(T,_),vt(y,_),vt(E,_),In(rt)],su=[Vs(T,.05,.005),Vs(x,.2,.02)],ou=[Ae(I,Y),Ae(F,Y,R),new Dt({source:{asset:L,fee:$()},destination:{chain:Y,asset:L,fee:{amount:2e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),new Dt({source:{asset:Pe,fee:$()},destination:{chain:Y,asset:Pe,fee:{amount:.01,asset:Pe}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),Ae(G,Y,R),Ae(O,Y,R),Ae(y,Y,_),Ae(E,Y,_)],au=[Ae(F,R),Ae(G,R),Ae(O,R),Ae(I,R,Y),new Dt({source:{asset:L,fee:$()},destination:{chain:R,asset:L,fee:{amount:5e-6,asset:L}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()}),Ae(y,R,_),Ae(E,R,_),new Dt({source:{asset:x,fee:$()},destination:{chain:R,asset:x,fee:{amount:P().XcmPaymentApi().calculateDestFee({reserve:_}),asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],ru=[new Dt({source:{asset:X,fee:$()},destination:{chain:pt,asset:X,fee:{amount:2.5,asset:X}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],iu=[Ae(Ue,Ht)],cu=[new Dt({source:{asset:Ce,fee:$()},destination:{chain:Mt,asset:Ce,fee:{amount:.02,asset:Ce}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],mu=[new Dt({source:{asset:_e,fee:$()},destination:{chain:Vt,asset:_e,fee:{amount:1.1,asset:_e}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],uu=[Ae(Ge,Nt)],du=[Ve(je,We,A),Ve($e,Be,A),Ve(Qe,E,A),Ve(Je,y,A),Ve(Ze,Se,A),Ve(ve,k,A)],lu=[Ve(Oe,De,kt)],fu=[Ve(le,le,qe),Ve(we,we,qe),Ve(Ee,Ee,qe)],pu=[Ve(fe,fe,Tt)],hu=[He(je,We,A),He($e,Be,A),He(Qe,E,A),He(Je,y,A),He(Ze,Se,A),He(ve,k,A),He(Oe,De,kt),He(le,Lt,qe),He(we,we,qe),He(Ee,Ee,qe),He(fe,fe,Tt)],gu=[J(k,k,A),J(se,se,A),J(oe,oe,A),J(ae,ae,A),J(re,re,A),J(ue,ue,A),J(pe,pe,A),J(he,he,A),J(ge,ge,A),J(ce,ce,A),J(ie,ie,A),J(me,me,A),J(de,de,A),J(ye,ye,A),J(at,E,A),J(ot,y,A)],yu=[Q(k,k,A),Q(se,se,A),Q(oe,oe,A),Q(ae,ae,A),Q(re,re,A),Q(ue,ue,A),Q(pe,pe,A),Q(he,he,A),Q(ge,ge,A),Q(ce,ce,A),Q(ie,ie,A),Q(me,me,A),Q(de,de,A),Q(ye,ye,A),Q(at,E,A),Q(ot,y,A)],bu=[vt(x,ft),vt(y,ft),vt(E,ft)],Ya=new tu({chain:h,routes:[...nu,...ou,...au,...bu,...lu,...du,...gu,...fu,...pu,...hu,...yu,...cu,...su,...ru,...uu,...mu,...iu]});import{AssetRoute as Za,ChainRoutes as xu}from"@galacticcouncil/xc-core";var Au=[new Za({source:{asset:X},destination:{chain:h,asset:X,fee:{amount:.01,asset:X}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],wu=[new Za({source:{asset:X},destination:{chain:_,asset:X,fee:{amount:.1,asset:X}},extrinsic:f().polkadotXcm().limitedTeleportAssets()})],er=new xu({chain:pt,routes:[...Au,...wu]});import{AssetRoute as Cu,ChainRoutes as Eu}from"@galacticcouncil/xc-core";var vu=[new Cu({source:{asset:Ue},destination:{chain:h,asset:Ue,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],tr=new Eu({chain:Ht,routes:[...vu]});import{AssetRoute as ku,ChainRoutes as Tu}from"@galacticcouncil/xc-core";var Pu=[new ku({source:{asset:_e},destination:{chain:h,asset:_e,fee:{amount:.2,asset:_e}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],nr=new Tu({chain:Vt,routes:[...Pu]});import{AssetRoute as _u,ChainRoutes as Bu}from"@galacticcouncil/xc-core";var Su=[new _u({source:{asset:Ce,fee:{asset:Ce,extra:.030555}},destination:{chain:h,asset:Ce,fee:{amount:.03,asset:Ce}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],sr=new Bu({chain:Mt,routes:[...Su]});import{AssetRoute as Fu,ChainRoutes as Iu}from"@galacticcouncil/xc-core";var Du=[new Fu({source:{asset:Ge},destination:{chain:h,asset:Ge,fee:{amount:.205,asset:Ge}},extrinsic:f().polkadotXcm().reserveTransferAssets()})],or=new Iu({chain:Nt,routes:[...Du]});var ar=[$a,ja,Ja,Qa,Ya,er,or,tr,nr,sr];import{AssetRoute as Xu,ChainRoutes as Ru}from"@galacticcouncil/xc-core";function Hs(t){return new Xu({source:{asset:t,fee:{asset:le}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},program:Rs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Lu=[Hs(le),Hs(we),Hs(Ee)],rr=new Ru({chain:qe,routes:[...Lu]});var ir=[rr];import{AssetRoute as Nu,ChainRoutes as Vu}from"@galacticcouncil/xc-core";function Hu(t){return new Nu({source:{asset:t,fee:{asset:fe}},destination:{chain:h,asset:t,fee:{amount:0,asset:t}},move:Xs().Wormhole().Ntt().transfer(),tags:["Wormhole","Ntt"]})}var Mu=[Hu(fe)],cr=new Vu({chain:Tt,routes:[...Mu]});var mr=[cr];import{AssetRoute as Dn,ChainRoutes as Wu}from"@galacticcouncil/xc-core";import{AssetRoute as L1}from"@galacticcouncil/xc-core";var mn=.0015;var Ou=new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:_,asset:T,fee:{amount:.002,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Gu=new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:Wt,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Uu=[new Dn({source:{asset:T,fee:{asset:T,extra:mn}},destination:{chain:h,asset:T,fee:{amount:.04,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve",executionFee:.005})}),new Dn({source:{asset:x,fee:{asset:T,extra:mn}},destination:{chain:h,asset:x,fee:{amount:.15,asset:x}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve",executionFee:.01})})],ur=new Wu({chain:Ke,routes:[Gu,Ou,...Uu]});import{AssetRoute as dr,ChainRoutes as qu}from"@galacticcouncil/xc-core";var Ms=()=>({asset:an().multiTransactionPayment().accountCurrencyMap()});var Ku=[new dr({source:{asset:y,fee:Ms()},destination:{chain:Ke,asset:y,fee:{amount:P().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:f().polkadotXcm().limitedReserveTransferAssets()})],zu=[new dr({source:{asset:T,fee:Ms()},destination:{chain:Ke,asset:T,fee:{amount:.0012,asset:T}},extrinsic:f().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],lr=new qu({chain:Wt,routes:[...Ku,...zu]});var fr=[ur,lr];var ju=[...qa,...ar,...ir,...mr,...fr],$u=new Map(ju.map(t=>[t.chain.key,t]));import{Parachain as Ar}from"@galacticcouncil/xc-core";import{Parachain as Ju,TransferValidation as pr,TransferValidationError as hr}from"@galacticcouncil/xc-core";var Xn=class extends pr{async validate(e){let{source:n}=e,{chain:s,fee:o,feeBalance:a}=n;if(a.amount<o.amount)throw new hr("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:s.name,error:"fee.insufficientBalance"})}},Rn=class extends pr{async skipFor(e){let{asset:n,source:s}=e,{enabled:o}=s.destinationFeeSwap||{};return n.isEqual(s.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:s}=e,{chain:o,destinationFee:a,destinationFeeBalance:r}=s,i=await this.getMin(o,a),c=a.copyWith({amount:a.amount+i});if(r.amount<c.amount)throw new hr("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,n){if(e instanceof Ju)return(await e.getMin(n)).amount;let s=e.getAssetMin(n);return BigInt(s*10**n.decimals)}};import{Ntt as gr,TransferValidation as Qu,TransferValidationError as Ws}from"@galacticcouncil/xc-core";import{big as Yu}from"@galacticcouncil/common";function yr(t,e){throw new Ws("Ntt_Limit_Unreachable",{asset:t.originSymbol,chain:e.name,error:"ntt.limitUnreachable"})}var Ln=class extends Qu{skipFor(e){let{asset:n,destination:s,source:o}=e;return!gr.isKnown(o.chain,n)||!gr.isKnown(s.chain,s.balance)}async validate(e){if(this.skipFor(e))return;let{amount:n,asset:s,destination:o,source:a}=e,[r,i]=await Promise.all([ct(a.chain,s).getOutboundLimit().catch(()=>yr(s,a.chain)),ct(o.chain,o.balance).getInboundLimit(a.chain).catch(()=>yr(o.balance,o.chain))]);if(r.windowMs>0&&n>r.capacity)throw new Ws("Ntt_Outbound_Limit_Exceeded",{asset:s.originSymbol,chain:a.chain.name,decimals:a.balance.decimals,headroom:r.capacity,limit:r.limit,windowMs:r.windowMs,error:"ntt.outboundLimitExceeded"});let c=Yu.convertDecimals(n,a.balance.decimals,o.balance.decimals);if(i.windowMs>0&&c>i.capacity)throw new Ws("Ntt_Inbound_Limit_Exceeded",{asset:o.balance.originSymbol,chain:o.chain.name,decimals:o.balance.decimals,headroom:i.capacity,limit:i.limit,windowMs:i.windowMs,error:"ntt.inboundLimitExceeded"})}};import{TransferValidation as br,TransferValidationError as xr}from"@galacticcouncil/xc-core";var Nn=class extends br{async skipFor(e){let{asset:n,destination:s}=e,o=s.chain;return await new ke(o).checkIfSufficient(n)}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain;if(await new ke(a).getSystemAccountBalance(s)===0n)throw new xr("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Vn=class extends br{async validate(e){let{asset:n,sender:s,source:o}=e,a=o.chain;if(await new ke(a).checkIfFrozen(s,n))throw new xr("Asset_Frozen",{asset:n.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};import{TransferValidation as Os,TransferValidationError as Hn}from"@galacticcouncil/xc-core";var Zu=12,ed=1,Mn=class extends Os{async skipFor(e){let{destination:n}=e,s=n.chain,o=new xe(s),a=n.balance.amount>0n,r=await o.checkIfSufficient(n.balance);return a||r}async validate(e){if(await this.skipFor(e))return;let{address:s,destination:o}=e,a=o.chain,r=new xe(a),i=await r.getFeeAsset(s),c=a.findAssetById(i),m=c.min||ed,d=c.decimals||Zu,u=m*Math.pow(10,d),l=await r.getAssetBalance(s,i);if(BigInt(u*1.1)>l)throw new Hn("Insufficient_Ed",{amount:u,asset:c.asset.originSymbol,chain:a.name,error:"account.insufficientDeposit"})}},Wn=class extends Os{async validate(e){let{amount:n,asset:s,destination:o}=e,a=o.chain,i=await new xe(a).getAssetDepositLimit(s);if(i.locked)throw new Hn("Deposit_Asset_Lockdown",{asset:s.originSymbol,chain:a.name,lockedUntilBlock:i.lockedUntilBlock,error:"circuitBreaker.assetLockdown"});if(i.headroom!==null&&n>i.headroom)throw new Hn("Deposit_Limit_Exceeded",{asset:s.originSymbol,chain:a.name,headroom:i.headroom,limit:i.limit,error:"circuitBreaker.depositLimitExceeded"})}},On=class extends Os{async validate(e){let{source:n}=e,s=n.chain,a=await new xe(s).getGlobalWithdrawLimit();if(a.lockdown)throw new Hn("Withdraw_Lockdown_Active",{chain:s.name,lockdownUntilMs:a.lockdownUntilMs,error:"circuitBreaker.withdrawLockdown"})}};var ne={isAny:()=>!0,isHydration:t=>t instanceof Ar&&t.parachainId===2034,isHub:t=>t instanceof Ar&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},td=[new Xn(ne.isAny,ne.isAny),new Rn(ne.isAny,ne.isAny),new Nn(ne.isAny,ne.isHub),new Vn(ne.isHub,ne.isAny),new Mn(ne.isAny,ne.isHydration),new Wn(ne.isAny,ne.isHydration),new On(ne.isHydration,ne.isAny),new Ln(ne.isAny,ne.isAny)];var Cr={};Jt(Cr,{AssethubDex:()=>Us,HydrationDex:()=>Gs});import{pool as nd,sor as sd,tx as od}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as ad}from"@galacticcouncil/common";import{Binary as rd}from"polkadot-api";import{memoize1 as id}from"@thi.ng/memoize";var{PoolType:Gn}=nd,{TradeRouteBuilder:cd,TradeRouter:md}=sd,{TxBuilderFactory:ud}=od,Gs=class{chain;client;poolCtx;txBuilder;getCtx=id(async e=>{console.log("init swap router",e,"\u2705");let n=new md(this.poolCtx);return n.withFilter({useOnly:[Gn.Aave,Gn.Omni,Gn.Stable,Gn.XYK]}),n});constructor(e,n){this.chain=e,this.poolCtx=n,this.client=new xe(this.chain),this.txBuilder=new ud(n.client,n.evm)}async getCalldata(e,n,s,o,a=0){let r=Number(this.chain.getMetadataAssetId(n)),i=Number(this.chain.getMetadataAssetId(s)),c=o.amount,m=await this.getCtx(1),d=await m.getMostLiquidRoute(r,i),u=await m.getBuy(r,i,c,d),g=await(await this.txBuilder.trade(u).withBeneficiary(e).withSlippage(a).build()).get().getEncodedData();return rd.toHex(g)}async getQuote(e,n,s,o){let a=Number(this.chain.getMetadataAssetId(e)),r=Number(this.chain.getMetadataAssetId(n)),i=s.amount,c=await this.getCtx(1);try{let m=await c.getMostLiquidRoute(a,r),d=await c.getBuy(a,r,i,m);return{amount:d.amountIn,route:cd.build(d.swaps)}}catch(m){if(o)return{amount:await this.getFallbackPrice(e,s.amount)};throw m}}async getFallbackPrice(e,n){let s=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(s));if(!o)throw new Error(`No price found for asset ${e.key}`);let a=o*n,r=Math.pow(10,ad);return a/BigInt(r)}};import{encodeLocation as wr}from"@galacticcouncil/common";var Us=class{chain;client;constructor(e){this.chain=e,this.client=new ke(this.chain)}async getCalldata(e,n,s,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,n,s){let o=this.chain.getAssetXcmLocation(e),a=this.chain.getAssetXcmLocation(n),r=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(wr(o),wr(a),s.amount,!0);if(!r)throw new Error("Failed to get swap quote");return{amount:r}}};import{ConfigService as ld}from"@galacticcouncil/xc-core";import{Asset as dd}from"@galacticcouncil/xc-core";function Un(t){let{id:e,origin:n,symbol:s}=t,o=s.toLowerCase();return new dd({key:[o,n,e].join("_"),originSymbol:s})}function Er(t){let{decimals:e,id:n}=t;return{asset:Un(t),decimals:e,id:n,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}function vr(t){let{decimals:e,id:n,internalId:s,origin:o}=t;return{asset:Un(t),decimals:e,id:s,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:n}]}}}}var qs=class extends ld{registerExternal(e){let n=this.getChain("hydration"),s=this.getChain("assethub"),o=a=>!!n.findAssetById(a.internalId.toString());e.filter(a=>!o(a)&&a.origin===1e3).forEach(a=>{let r=Un(a),i=Er(a),c=vr(a);console.log("\u{1F480} Registering "+r.key),s.updateAsset(i),n.updateAsset(c),this.updateAsset(r),this.updateChainRoute(s,_n(r)),this.updateChainRoute(n,In(r))})}};export{qs as HydrationConfigService,Pr as assetsMap,La as builders,_i as chainsMap,Mo as clients,Cr as dex,$u as routesMap,Na as tags,td as validations};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "Cross-chain hydradx & basilisk dapp configuration",
5
5
  "author": "GalacticCouncil",
6
6
  "repository": {