@galacticcouncil/xc-cfg 1.6.0 → 1.7.0

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