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