@galacticcouncil/xc-cfg 1.4.2 → 1.4.3

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