@galacticcouncil/xc-cfg 2.8.1 → 2.8.2-pr378-7eba3d2

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