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