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