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