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