@galacticcouncil/xc-cfg 1.4.0 → 1.4.1

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