@galacticcouncil/xc-cfg 0.6.0 → 0.6.2

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 CHANGED
@@ -1 +1 @@
1
- "use strict";var Zn=Object.defineProperty;var fi=Object.getOwnPropertyDescriptor;var pi=Object.getOwnPropertyNames;var hi=Object.prototype.hasOwnProperty;var Zt=(t,e)=>{for(var s in e)Zn(t,s,{get:e[s],enumerable:!0})},bi=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pi(e))!hi.call(t,o)&&o!==s&&Zn(t,o,{get:()=>e[o],enumerable:!(n=fi(e,o))||n.enumerable});return t};var yi=t=>bi(Zn({},"__esModule",{value:!0}),t);var Q0={};Zt(Q0,{HydrationConfigService:()=>Qn,assetsMap:()=>Va,builders:()=>Xa,chainsMap:()=>to,clients:()=>va,dex:()=>Ma,routesMap:()=>ai,tags:()=>Fa,validations:()=>oi});module.exports=yi(Q0);var b=require("@galacticcouncil/xc-core"),Ee=new b.Asset({key:"aave",originSymbol:"AAVE"}),ne=new b.Asset({key:"aca",originSymbol:"ACA"}),Ie=new b.Asset({key:"ajun",originSymbol:"AJUN"}),D=new b.Asset({key:"astr",originSymbol:"ASTR"}),R=new b.Asset({key:"bnc",originSymbol:"BNC"}),ea=new b.Asset({key:"bsx",originSymbol:"BSX"}),ke=new b.Asset({key:"cfg",originSymbol:"CFG"}),Re=new b.Asset({key:"cfg_new",originSymbol:"CFG"}),Se=new b.Asset({key:"cru",originSymbol:"CRU"}),xe=new b.Asset({key:"dai",originSymbol:"DAI"}),ae=new b.Asset({...xe,key:"dai_mwh"}),mt=new b.Asset({key:"ded",originSymbol:"DED"}),w=new b.Asset({key:"dot",originSymbol:"DOT"}),ut=new b.Asset({key:"dota",originSymbol:"DOTA"}),H=new b.Asset({key:"eth",originSymbol:"ETH"}),_e=new b.Asset({key:"ena",originSymbol:"ENA"}),x=new b.Asset({key:"glmr",originSymbol:"GLMR"}),J=new b.Asset({key:"hdx",originSymbol:"HDX"}),V=new b.Asset({key:"ibtc",originSymbol:"IBTC"}),W=new b.Asset({key:"intr",originSymbol:"INTR"}),re=new b.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),xi=new b.Asset({key:"kar",originSymbol:"KAR"}),De=new b.Asset({key:"kilt",originSymbol:"KILT"}),X=new b.Asset({key:"ksm",originSymbol:"KSM"}),Le=new b.Asset({key:"ldo",originSymbol:"LDO"}),He=new b.Asset({key:"laos",originSymbol:"LAOS"}),We=new b.Asset({key:"lbtc",originSymbol:"LBTC"}),Me=new b.Asset({key:"ewt",originSymbol:"EWT"}),ge=new b.Asset({key:"ldot",originSymbol:"LDOT"}),Ve=new b.Asset({key:"link",originSymbol:"LINK"}),O=new b.Asset({key:"myth",originSymbol:"MYTH"}),ta=new b.Asset({key:"nodl",originSymbol:"NODL"}),Ke=new b.Asset({key:"neuro",originSymbol:"NEURO"}),Ue=new b.Asset({key:"pen",originSymbol:"PEN"}),Ne=new b.Asset({key:"pha",originSymbol:"PHA"}),Oe=new b.Asset({key:"paxg",originSymbol:"PAXG"}),te=new b.Asset({key:"pink",originSymbol:"PINK"}),Ge=new b.Asset({key:"ring",originSymbol:"RING"}),ze=new b.Asset({key:"sky",originSymbol:"SKY"}),$=new b.Asset({key:"sol",originSymbol:"SOL"}),ie=new b.Asset({key:"sui",originSymbol:"SUI"}),sa=new b.Asset({key:"sub",originSymbol:"SUB"}),qe=new b.Asset({key:"susde",originSymbol:"sUSDe"}),et=new b.Asset({key:"susds",originSymbol:"sUSDS"}),Ce=new b.Asset({...et,key:"susds_mwh"}),je=new b.Asset({key:"tbtc",originSymbol:"tBTC"}),na=new b.Asset({key:"teer",originSymbol:"TEER"}),aa=new b.Asset({key:"tnkr",originSymbol:"TNKR"}),$e=new b.Asset({key:"trac",originSymbol:"TRAC"}),Je=new b.Asset({key:"unq",originSymbol:"UNQ"}),h=new b.Asset({key:"usdt",originSymbol:"USDT"}),Te=new b.Asset({...h,key:"usdt_mwh"}),Dt=new b.Asset({...h,key:"usdt_eth"}),g=new b.Asset({key:"usdc",originSymbol:"USDC"}),Q=new b.Asset({...g,key:"usdc_mwh"}),Lt=new b.Asset({...g,key:"usdc_eth"}),Y=new b.Asset({key:"vastr",originSymbol:"vASTR"}),M=new b.Asset({key:"vdot",originSymbol:"vDOT"}),es=new b.Asset({key:"weth",originSymbol:"WETH"}),se=new b.Asset({...es,key:"weth_mwh"}),tt=new b.Asset({key:"wbtc",originSymbol:"WBTC"}),ve=new b.Asset({...tt,key:"wbtc_mwh"}),Qe=new b.Asset({key:"wsteth",originSymbol:"wstETH"}),lt=new b.Asset({key:"wud",originSymbol:"WUD"}),oa=new b.Asset({key:"xrt",originSymbol:"XRT"}),Ae=new b.Asset({key:"ztg",originSymbol:"ZTG"}),gi=[Ee,ne,Ie,D,ea,ke,Re,Se,R,xe,ae,mt,w,ut,_e,H,x,J,V,W,xi,De,X,Le,He,We,Me,re,ge,Ve,O,Ke,ta,Oe,Ne,Ue,te,Ge,ze,$,ie,sa,qe,et,Ce,na,aa,$e,je,Je,g,Q,Lt,h,Te,Dt,Y,M,tt,ve,es,se,Qe,lt,oa,Ae],Va=new Map(gi.map(t=>[t.key,t]));var Ks=require("@galacticcouncil/xc-core");var Ka=require("viem/chains"),S=new Ks.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ee,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:es,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:qe,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:et,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:je,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:tt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:We,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Le,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ve,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Oe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:ze,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:$e,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Qe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Ks.ChainEcosystem.Ethereum,evmChain:Ka.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 Ua=[S];var zs=require("@galacticcouncil/xc-core"),Oa=require("viem");var Os=require("@polkadot-api/substrate-bindings"),ra=require("@polkadot-api/utils"),Ai="evm:",Us=new TextEncoder().encode(Ai),Ns=class{async toH160(e,s){if(!s)return this.toDefaultH160(e);try{let n=await s.getChainSpecData(),r=await s.getTypedApi(n.genesisHash).query.EvmAccounts.evm_addresses(e);if(r)return r}catch{}return this.toDefaultH160(e)}toDefaultH160(e){let s=(0,Os.getSs58AddressInfo)(e);if(!s.isValid)throw new Error("Invalid SS58 address");let n=s.publicKey;if(n.length>=24&&n.slice(0,4).every((u,c)=>u===Us[c]))return(0,ra.toHex)(n.slice(4,24));let r=new Uint8Array(Us.length+n.length);r.set(Us),r.set(n,Us.length);let i=(0,Os.Blake2256)(r);return(0,ra.toHex)(i.slice(0,20))}};var Na=require("@polkadot-api/substrate-bindings"),wi="ETH\0",Gs=class{async toH160(e){let s=(0,Na.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(wi),r=n.slice(o.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var ki=new Ns,Ci=(0,Oa.defineChain)({id:787,name:"Acala",network:"acala",nativeCurrency:{decimals:18,name:"ACA",symbol:"ACA"},rpcUrls:{public:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]},default:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]}},blockExplorers:{default:{name:"Acala Blockscout",url:"https://blockscout.acala.network"}},testnet:!1}),Ht=new zs.EvmParachain({assetsData:[{asset:ne,id:{Token:ne.originSymbol},metadataId:{NativeAssetId:{Token:ne.originSymbol}},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ge,decimals:10,id:{Token:ge.originSymbol},metadataId:{NativeAssetId:{Token:ge.originSymbol}},min:.05,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,decimals:18,id:{ForeignAsset:0},min:.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:zs.ChainEcosystem.Polkadot,evmChain:Ci,evmResolver:ki,explorer:"https://acala.subscan.io",genesisHash:"0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c",key:"acala",name:"Acala",parachainId:2e3,ss58Format:10,wormhole:{id:12,coreBridge:"0xa321448d90d4e5b0A732867c18eA198e75CAC48E",tokenBridge:"0xae9d7fe007b3327AA64A32824Aaac52C42a6E624"},ws:"wss://acala-rpc.n.dwellir.com"});var qs=require("@galacticcouncil/xc-core");var ts=new qs.Parachain({assetsData:[{asset:Ie,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:qs.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Fs=require("@galacticcouncil/xc-core");var Ga={assetsData:[{asset:w,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:mt,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:ut,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:lt,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:X,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Fs.ChainEcosystem.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://polkadot-asset-hub-rpc.polkadot.io","wss://asset-hub-polkadot-rpc.n.dwellir.com"]},v=new Fs.Parachain({...Ga,key:"assethub",name:"AssetHub Polkadot"}),ss=new Fs.Parachain({...Ga,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});var js=require("@galacticcouncil/xc-core");var ce=new js.Parachain({assetsData:[{asset:D,xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,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:x,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ne,id:"18446744073709551622",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:M,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:js.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var $s=require("@galacticcouncil/xc-core");var Ti=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],K=new $s.Parachain({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Y,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:w,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:D,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:x,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:$s.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Ti});var Js=require("@galacticcouncil/xc-core");var vi=["wss://rpc-centrifuge.luckyfriday.io","wss://fullnode.centrifuge.io"],Wt=new Js.Parachain({assetsData:[{asset:ke,id:"Native",xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:{ForeignAsset:5},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:x,id:{ForeignAsset:4},decimals:18,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Js.ChainEcosystem.Polkadot,explorer:"https://centrifuge.subscan.io",genesisHash:"0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82",key:"centrifuge",name:"Centrifuge",parachainId:2031,ss58Format:36,ws:vi});var Qs=require("@galacticcouncil/xc-core");var ns=new Qs.Parachain({assetsData:[{asset:Se,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qs.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"]});var Ys=require("@galacticcouncil/xc-core"),za=require("viem/chains");var as=new Ys.EvmParachain({assetsData:[{asset:Ge,id:"SelfReserve",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ys.ChainEcosystem.Polkadot,evmChain:za.darwinia,explorer:"https://darwinia.subscan.io",genesisHash:"0xf0b8924b12e8108550d28870bc03f7b45a947e1b2b9abf81bfb0b89ecb60570e",key:"darwinia",name:"Darwinia",parachainId:2046,ss58Format:18,usesH160Acc:!0,ws:"wss://darwinia-rpc.dwellir.com"});var Zs=require("@galacticcouncil/xc-core"),qa=require("viem");var Pi=new Gs,ia=["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"],ca=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Bi=(0,qa.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:ia,webSocket:ca},default:{http:ia,webSocket:ca}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),l=new Zs.EvmParachain({assetsData:[{asset:J,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Ee,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ne,decimals:12,id:1000099,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ie,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,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:ke,decimals:18,id:13,min:.033,xcmLocation:{parents:1,interior:{X2:[{Parachain:2031},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Re,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Se,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:mt,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:w,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ut,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:ae,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:_e,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:x,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:De,decimals:15,id:28,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:2086}}}},{asset:Me,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Le,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:X,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:He,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:We,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ge,decimals:10,id:1000100,min:.011,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ve,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Oe,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:Ke,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:ta,decimals:11,id:26,min:1.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2026},{PalletInstance:2}]}}},{asset:Ue,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:te,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:Ne,decimals:12,id:8,min:.055,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:Ge,decimals:18,id:31,min:1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ze,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:sa,decimals:10,id:24,min:.02,xcmLocation:{parents:1,interior:{X1:{Parachain:2101}}}},{asset:$,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:qe,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:et,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ce,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:je,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:$e,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Je,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:g,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:Q,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Lt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Te,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Dt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Y,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:tt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ve,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:es,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:se,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:lt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:Ae,decimals:10,id:12,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2092},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Zs.ChainEcosystem.Polkadot,evmChain:Bi,evmResolver:Pi,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:ca,rpcs:ia});var en=require("@galacticcouncil/xc-core");var Pe=new en.Parachain({assetsData:[{asset:W,decimals:10,id:{Token:W.originSymbol}},{asset:V,decimals:8,id:{Token:V.originSymbol}},{asset:w,decimals:10,id:{Token:w.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:M,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:en.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});var tn=require("@galacticcouncil/xc-core");var os=new tn.Parachain({assetsData:[{asset:De,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:tn.ChainEcosystem.Polkadot,explorer:"https://spiritnet.subscan.io",genesisHash:"0x411f057b9107718c9624d6aa4a3f23c1653898297f3d4d529d9bb6511a39dd21",key:"kilt",name:"Kilt",parachainId:2086,ss58Format:38,ws:"wss://spiritnet.kilt.io"});var sn=require("@galacticcouncil/xc-core");var rs=new sn.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:sn.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 nn=require("@galacticcouncil/xc-core"),ja=require("viem");var Xi=(0,ja.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 nn.EvmParachain({assetsData:[{asset:x,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ae,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:$,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:re,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Ce,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:Q,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Te,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ve,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:ne,decimals:12,id:"0xffffffffa922fef94566104a6e5a35a4fcddaa9f",xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:w,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:te,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:g,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:nn.ChainEcosystem.Polkadot,evmChain:Xi,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 an=require("@galacticcouncil/xc-core");var kt=new an.Parachain({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:an.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 on=require("@galacticcouncil/xc-core");var is=new on.Parachain({assetsData:[{asset:Ke,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:on.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 rn=require("@galacticcouncil/xc-core");var cs=new rn.Parachain({assetsData:[{asset:Ue,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:rn.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech"});var Es=require("@galacticcouncil/xc-core");var $a={assetsData:[{asset:w,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Es.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"},Mt=new Es.Parachain({...$a,key:"polkadot"}),Ja=new Es.Parachain({...$a,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});var cn=require("@galacticcouncil/xc-core");var ms=new cn.Parachain({assetsData:[{asset:Je,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:cn.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 dt=new mn.Parachain({assetsData:[{asset:Ae,id:"Ztg",xcmLocation:{parents:0,interior:"Here"}},{asset:Q,decimals:6,id:{ForeignAsset:1},xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:x,decimals:18,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:mn.ChainEcosystem.Polkadot,explorer:"https://zeitgeist.subscan.io",genesisHash:"0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060",key:"zeitgeist",name:"Zeitgeist",parachainId:2092,ss58Format:73,usesChainDecimals:!0,ws:"wss://zeitgeist.api.onfinality.io/public-ws"});var un=require("@galacticcouncil/xc-core");var us=new un.Parachain({assetsData:[{asset:Me,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:un.ChainEcosystem.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com"});var Qa=[Ht,ts,v,ss,ce,K,Wt,ns,as,l,os,rs,is,Pe,_,kt,cs,Mt,Ja,ms,dt,us];var ln=require("@galacticcouncil/xc-core");var Vt=new ln.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:$,decimals:9},{asset:re,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:ln.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 Ya=[Vt];var dn=require("@galacticcouncil/xc-core");var ls=new dn.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:dn.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Za=[ls];var fn=require("@galacticcouncil/xc-core");var ft=new fn.Parachain({assetsData:[{asset:X,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:fn.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 pn=require("@galacticcouncil/xc-core");var ds=new pn.Parachain({assetsData:[{asset:ea,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:X,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:na,decimals:12,id:17,xcmLocation:{parents:1,interior:{X2:[{Parachain:2015},{GeneralKey:{length:4,data:"0x5445455200000000000000000000000000000000000000000000000000000000"}}]}}},{asset:aa,decimals:12,id:6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2125},{GeneralIndex:0}]}}},{asset:oa,decimals:9,id:16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2119},{GeneralKey:{length:4,data:"0x42414a5500000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:pn.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 eo=[ft,ds];var Fi=[...Ua,...Qa,...Ya,...Za,...eo],to=new Map(Fi.map(t=>[t.key,t]));var zt=require("@galacticcouncil/xc-core");var Xa={};Zt(Xa,{AssetMinBuilder:()=>Ct,BalanceBuilder:()=>a,ContractBuilder:()=>F,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>yt,FeeAmountBuilder:()=>f,FeeAssetBuilder:()=>Rs,MoveBuilder:()=>Ba,ProgramBuilder:()=>vn,XcmTransferType:()=>me,XcmVersion:()=>bt});var hn=require("@galacticcouncil/xc-core");function Ct(){return{assetRegistry:Ei,assets:Ii}}function Ei(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new hn.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new hn.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Ii(){return{asset:()=>({build:({asset:t})=>new hn.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var Is=require("@galacticcouncil/xc-core");function so(){return{erc20:Si,native:Ri}}function Ri(){return{build:({address:t})=>new Is.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Si(){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 Is.ContractConfig({abi:Is.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var fs=require("@galacticcouncil/xc-core"),ps=require("@galacticcouncil/common");function no(){return{assets:_i,system:Li,tokens:Hi,ormlTokens:Wi,foreignAssets:Di}}function _i(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,ps.encodeAssetId)(n);return new fs.SubstrateQueryConfig({module:"Assets",func:"Account",args:[o,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Di(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let r=(0,ps.encodeLocation)(o);return new fs.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Li(){return{account:()=>({build:({address:t})=>new fs.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function Hi(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,ps.encodeAssetId)(n);return new fs.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Wi(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,ps.encodeAssetId)(n);return new fs.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}var ma=require("@galacticcouncil/xc-core");function ao(){return{native:Mi,token:Vi}}function Mi(){return{build:({address:t})=>new ma.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Vi(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new ma.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var oo=require("@galacticcouncil/xc-core");function ro(){return{native:Ki}}function Ki(){return{build:({address:t})=>new oo.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function a(){return{evm:so,substrate:no,solana:ao,sui:ro}}var Kt=require("@galacticcouncil/xc-core"),io=require("viem"),Ui=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],r=s.map(i=>(0,io.encodeFunctionData)({abi:Kt.Abi[i.module],functionName:i.func,args:i.args}));return new Kt.ContractConfig({abi:Kt.Abi.Batch,address:Kt.Precompile.Batch,args:[n,o,r,[]],func:"batchAll",module:"Batch"})}}),co=()=>({batchAll:Ui});var bs=require("@galacticcouncil/xc-core");function hs(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function pt(t){return typeof t=="object"?Object.values(t)[0]:t}function mo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:r}=e,i=r?r.chain:o.chain,u=bs.Wormhole.fromChain(i),c=i.getAssetId(n);return new bs.ContractConfig({abi:bs.Abi.Erc20,address:pt(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}var Tt=require("@galacticcouncil/xc-core");var{Ss58Addr:Ni}=Tt.addr,Oi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r}=t,i=o.chain,u=r.chain,c=Tt.Snowbridge.fromChain(i),d=i.getAssetId(n),y=pt(d),A=n.originSymbol==="ETH",k=r.feeBreakdown.bridgeFeeInDot,P=r.fee.amount;return new Tt.ContractConfig({abi:Tt.Abi.Snowbridge,address:c.getGateway(),args:[y,u.parachainId,[1,Ni.getPubKey(e)],k,s],value:A?P+s:P,func:"sendToken",module:"Snowbridge"})}}),uo=()=>({sendToken:Oi});var U=require("@galacticcouncil/xc-core"),ua=require("@solana/web3.js"),lo=require("@solana/spl-token");var Gi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,destination:i}=e,u=U.Wormhole.fromChain(r.chain),c=U.Wormhole.fromChain(t.moonchain),d=U.Precompile.Bridge,y=r.chain.getAssetId(o),A=0,k=await U.mrl.createPayload(i.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:u.getTokenBridge(),args:[pt(y),n,c.getWormholeId(),c.normalizeAddress(d),A,k.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),zi=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:r}=e,i=U.Wormhole.fromChain(o.chain),u=U.Wormhole.fromChain(t.moonchain),c=U.Precompile.Bridge,d=0,y=await U.mrl.createPayload(r.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),d,y.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),qi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,d=U.Wormhole.fromChain(u),y=U.Wormhole.fromChain(c),A=e;if(c.isSolana()){let N=c.getAssetId(n);A=(await(0,lo.getAssociatedTokenAddress)(new ua.PublicKey(N),new ua.PublicKey(e))).toBase58()}let k=u.getAssetId(n),P=0,I=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:d.getTokenBridge(),args:[pt(k),s,y.getWormholeId(),y.normalizeAddress(A),P,I],func:"transferTokens",module:"TokenBridge"})}}),ji=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,r=U.Wormhole.fromChain(n.chain),i=U.Wormhole.fromChain(o.chain),u=0,c=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),fo=()=>({transferTokens:qi,transferTokensWithPayload:Gi,wrapAndTransferETH:ji,wrapAndTransferETHWithPayload:zi});var Ut=require("@galacticcouncil/xc-core");var $i=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,d=Ut.Wormhole.fromChain(u),y=Ut.Wormhole.fromChain(c),A=0,k=0,P=u.getAssetId(n);return new Ut.ContractConfig({abi:Ut.Abi.TokenRelayer,address:d.getTokenRelayer(),args:[pt(P),s,A,y.getWormholeId(),y.normalizeAddress(e),k],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),po=()=>({transferTokensWithRelay:$i});function ho(){return{TokenBridge:fo,TokenRelayer:po}}var ht=require("@galacticcouncil/xc-core"),Ao=require("@galacticcouncil/common");var bo=require("@galacticcouncil/xc-core"),yo=require("@polkadot-api/substrate-bindings"),xo=require("@polkadot-api/utils"),{EvmAddr:Ji}=bo.addr;function la(t,e){let s=Ji.isValid(t)?"03":"01",n=(0,yo.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);let o=`0x${s}${(0,xo.toHex)(n.publicKey).slice(2)}00`;return[1,e.parachainId?[`0x0000000${e.parachainId.toString(16)}`,o]:[o]]}function bn(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")}`}var go=18446744073709551615n;function wo(){return{transfer:(t=go)=>({build:async({address:e,amount:s,asset:n,destination:o,source:r})=>{let i=r.chain.getAssetId(n);return new ht.ContractConfig({abi:ht.Abi.Xtokens,address:ht.Precompile.Xtokens,args:[typeof i=="string"?bn(i):n,s,la(e,o.chain),t],func:"transfer",module:"Xtokens"})}}),transferMultiCurrencies:(t=go)=>({build:async({address:e,amount:s,asset:n,destination:o,source:r})=>{let i=r.chain.getAssetId(n),u=r.chain.getAssetId(r.destinationFeeBalance),c=Ao.big.toBigInt(o.fee.amount,o.fee.decimals);return new ht.ContractConfig({abi:ht.Abi.Xtokens,address:ht.Precompile.Xtokens,args:[[[typeof i=="string"?bn(i):i,s],[typeof u=="string"?bn(u):u,c]],1,la(e,o.chain),t],func:"transferMultiCurrencies",module:"Xtokens"})}})}}function F(){return{Batch:co,Erc20:mo,Snowbridge:uo,Wormhole:ho,Xtokens:wo}}var Co=require("@galacticcouncil/xc-core"),ko="AssetConversion",Qi=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=o,d=c.getAssetXcmLocation(i),y=c.getAssetXcmLocation(u),A=i.amount+i.amount*BigInt(t.slippage)/100n,k=u.amount;return new Co.ExtrinsicConfig({module:ko,func:e,getTx:P=>P.getUnsafeApi().tx[ko][e]({path:[d,y],amount_out:k,amount_in_max:A,send_to:s,keep_alive:!0})})}}},To=()=>({swapTokensForExactTokens:Qi});var yn=require("@galacticcouncil/descriptors"),vo=require("@galacticcouncil/xc-core"),Yi="Assets",Zi=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let r=o.chain,{fee:i}=o,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new vo.ExtrinsicConfig({module:Yi,func:t,getTx:d=>d.getTypedApi(yn.hub).tx.Assets.transfer({id:Number(c),target:yn.MultiAddress.Id(n),amount:u})})}}},Po=()=>({transfer:Zi});var Xo=require("@galacticcouncil/xc-core"),Bo="Balances",ec=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Xo.ExtrinsicConfig({module:Bo,func:e,getTx:n=>n.getUnsafeApi().tx[Bo][e]({dest:s,keep_alive:t})})}},Fo=()=>({transferAll:ec});var Eo=require("@galacticcouncil/descriptors"),Io=require("@galacticcouncil/xc-core"),tc="Router",sc=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=o,c=n,d=c.getMetadataAssetId(r),y=c.getMetadataAssetId(i),A=i.amount,k=r.amount+r.amount*BigInt(t.slippage)/100n;return new Io.ExtrinsicConfig({module:tc,func:"buy",getTx:P=>P.getTypedApi(Eo.hydration).tx.Router.buy({asset_in:Number(d),asset_out:Number(y),amount_out:A,max_amount_in:k,route:u})})}}),Ro=()=>({buy:sc});var _o=require("@galacticcouncil/xc-core"),So="Utility",nc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new _o.ExtrinsicConfig({module:So,func:e,getTx:o=>{let r=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[So][e]({calls:r})}})}}},Do=()=>({batchAll:nc});var xn=require("@galacticcouncil/xc-core"),da=require("polkadot-api"),Ho=require("viem");var bt=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(bt||{}),me=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(me||{});var Lo="EthereumXcm",ac=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",r=(0,Ho.encodeFunctionData)({abi:xn.Abi[n.module],functionName:n.func,args:n.args});return new xn.ExtrinsicConfig({module:Lo,func:e,getTx:i=>i.getUnsafeApi().tx[Lo][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:da.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:da.Binary.fromHex(r),access_list:void 0}}})})}}},fa=()=>({transact:ac});var Pt=require("@galacticcouncil/xc-core"),kn=require("@galacticcouncil/common");var xs=require("@galacticcouncil/xc-core"),ar=require("polkadot-api"),p=require("@galacticcouncil/descriptors");var Wo=require("@galacticcouncil/descriptors"),fe=340282366920938463463374607431768211455n,Nt="0x0000000000000000000000000000000000000000000000000000000000000000",ys={parents:1,interior:Wo.XcmV3Junctions.Here()},Mo=0,Vo=1e3,Ko=1002,Uo=1,Ot="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var No="0x0000000000000000000000000000000000000000";var Z=require("@galacticcouncil/descriptors"),Zo=require("polkadot-api");var Oo=require("@galacticcouncil/xc-core"),pa=require("@galacticcouncil/descriptors"),ha=require("polkadot-api"),Go=require("@polkadot-api/substrate-bindings"),zo=require("@polkadot-api/utils");function G(t){if(t.length===42&&t.startsWith("0x"))return pa.XcmV3Junction.AccountKey20({key:ha.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,Go.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return pa.XcmV3Junction.AccountId32({id:ha.FixedSizeBinary.fromHex((0,zo.toHex)(s.publicKey)),network:void 0})}function gn(t,e,s){return Oo.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var ba=require("@galacticcouncil/xc-core");function qo(t,e){let s=ba.multiloc.findNestedKey(t,"GeneralIndex"),n=ba.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(r)?!1:Number(o)>Number(r)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var An={};Zt(An,{ETHER_TOKEN_ADDRESS:()=>xa,bridgeLocation:()=>$o,erc20Location:()=>rc,erc20LocationReanchored:()=>ic,parachainLocation:()=>oc});var Be=require("@galacticcouncil/descriptors"),ya=require("polkadot-api"),xa="0x0000000000000000000000000000000000000000",jo=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function $o(t){return{parents:2,interior:Be.XcmV3Junctions.X1(jo(t))}}function oc(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function rc(t,e){return e===xa?$o(t):{parents:2,interior:Be.XcmV3Junctions.X2([jo(t),Be.XcmV3Junction.AccountKey20({key:ya.Binary.fromHex(e)})])}}function ic(t){return t===xa?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:ya.Binary.fromHex(t)}))}}var Jo=require("@galacticcouncil/common"),Qo=require("@galacticcouncil/xc-core");function q(t,e){return cc(e)>=4?(0,Jo.encodeLocation)(t):mc(t)}function cc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function mc(t){return{Concrete:{...t}}}function uc(t){if(t&&t.interior!=="Here")return Qo.multiloc.findParachain(t)}function Yo(t,e,s,n){let o=s.getAssetXcmLocation(t),r=uc(o);if(n){if(r===void 0)throw new Error(`No reserve chain for "${t.originSymbol}" on ${s.name}`);if(r!==n.parachainId)throw new Error(`Wrong reserve chain for "${t.originSymbol}": expected ${r}, got ${n.parachainId}`)}if(!n&&r!==void 0){let i=e.parachainId===r,u=s.parachainId===r;if(!i&&!u)throw new Error(`Reserve chain ${r} required for "${t.originSymbol}"`)}}function ga(t,e){let s="V4",n=q(z(e,t),s),o=Zo.Binary.fromHex(Nt);return[Z.XcmV4Instruction.ReserveAssetDeposited([{id:ys,fun:Z.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:Z.XcmV3MultiassetFungibility.Fungible(fe)}]),Z.XcmV4Instruction.ClearOrigin(),Z.XcmV4Instruction.BuyExecution({fees:{id:ys,fun:Z.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:Z.XcmV3WeightLimit.Unlimited()}),Z.XcmV4Instruction.DepositAsset({assets:Z.XcmV4AssetAssetFilter.Wild(Z.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:Z.XcmV3Junctions.X1(G(Ot))}}),Z.XcmV4Instruction.SetTopic(o)]}var st=require("@galacticcouncil/descriptors");function er(t,e){let s="V4",n=q(z(e,t),s),o=wn("V4",G(No),G(Ot),n,Nt);return[st.XcmV4Instruction.WithdrawAsset([{id:ys,fun:st.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:st.XcmV3MultiassetFungibility.Fungible(fe)}]),st.XcmV4Instruction.ClearOrigin(),st.XcmV4Instruction.BuyExecution({fees:{id:ys,fun:st.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:st.XcmV3WeightLimit.Unlimited()}),...o.value]}var B=require("@galacticcouncil/descriptors"),Aa=require("polkadot-api");function tr(t,e){let s="V4",n=q(z(e,t),s),o=Aa.Binary.fromHex(Nt);return[B.XcmV4Instruction.WithdrawAsset([{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(G(Ot))}}),B.XcmV4Instruction.SetTopic(o)]}function wa(t,e){let s="V4",n=q(z(e,t),s);return[B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(G(Ot))}})]}function sr(t,e,s){let n="V4",o=q(z(e,t),n),r=Aa.Binary.fromHex(Nt),i=wa(t,s);return[B.XcmV4Instruction.WithdrawAsset([{id:o,fun:B.XcmV3MultiassetFungibility.Fungible(fe)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:o,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositReserveAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:B.XcmV3Junctions.X1(B.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),B.XcmV4Instruction.SetTopic(r)]}var nr=[xs.ChainEcosystem.Polkadot,xs.ChainEcosystem.Kusama],lc={parents:1,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.Parachain(1e3))},dc=t=>t.parents===1&&t.interior==="Here",fc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:nr.includes(t.ecosystem)&&nr.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,nt=(t,e,s)=>{if(fc(e,s)){let o=s.ecosystem===xs.ChainEcosystem.Polkadot?p.XcmV3JunctionNetworkId.Polkadot():p.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:p.XcmV3Junctions.X2([p.XcmV3Junction.GlobalConsensus(o),p.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===Mo)return{type:t,value:{parents:1,interior:p.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Vo:s.parachainId;return{type:t,value:{parents:1,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.Parachain(n))}}},Gt=(t,e)=>({type:t,value:{parents:0,interior:p.XcmV3Junctions.X1(e)}}),ka=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:dc(s)?lc:s}}:{type:e},vt=(t,e)=>({id:t,fun:p.XcmV3MultiassetFungibility.Fungible(e)}),or=(t,e,s)=>({type:t,value:[p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]});var wn=(t,e,s,n,o)=>{let r=ar.Binary.fromHex(o);return{type:t,value:[p.XcmV4Instruction.SetAppendix([p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(s)}})]),p.XcmV4Instruction.InitiateReserveWithdraw({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllOf({id:n,fun:p.XcmV2MultiassetWildFungibility.Fungible()})),reserve:An.bridgeLocation(Uo),xcm:[p.XcmV4Instruction.BuyExecution({fees:{id:pc(n),fun:p.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}}),p.XcmV4Instruction.SetTopic(r)]}),p.XcmV4Instruction.SetTopic(r)]}},pc=t=>{let e=xs.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.AccountKey20({key:e}))}:{parents:0,interior:p.XcmV3Junctions.Here()}},rr=(t,e,s,n,o,r)=>({type:t,value:[p.XcmV4Instruction.WithdrawAsset([{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)}]),p.XcmV4Instruction.BuyExecution({fees:{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.Transact({origin_kind:p.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:o}),p.XcmV4Instruction.RefundSurplus(),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]}),ir=(t,e,s,n,o,r)=>({type:t,value:[p.XcmV4Instruction.WithdrawAsset([{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(o)}]),p.XcmV4Instruction.BuyExecution({fees:{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(r)}}),p.XcmV4Instruction.RefundSurplus(),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]});var pe="PolkadotXcm",hc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=q(z(i,n.fee),c),A=vt(d,e),k=vt(y,n.fee.amount),P="limited_reserve_transfer_assets";return new Pt.ExtrinsicConfig({module:pe,func:P,getTx:I=>{let N=I.getUnsafeApi().tx[pe][P];return s.key===n.fee.key?N({dest:nt(c,i,u),beneficiary:Gt(c,r),assets:{type:c,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):qo(d,y)?N({dest:nt(c,i,u),beneficiary:Gt(c,r),assets:{type:c,value:[k,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):N({dest:nt(c,i,u),beneficiary:Gt(c,r),assets:{type:c,value:[A,k]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),bc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=vt(d,e),A=nt(c,i,u),k=Gt(c,r),P={type:c,value:[y]},I="limited_teleport_assets";return new Pt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),yc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=vt(d,e),A=nt(c,i,u),k=Gt(c,r),P={type:c,value:[y]},I="reserve_transfer_assets";return new Pt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0})})}}),xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=vt(d,e),A=nt(c,i,u),k=Gt(c,r),P={type:c,value:[y]},I="transfer_assets";return new Pt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),gc=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:r,sender:i,source:u,transact:c})=>{let d="V4",y=u.chain,A=o.chain,k=o.fee.amount,P=o.fee;c&&(A=c.chain,k=kn.big.toBigInt(c.fee.amount,c.fee.decimals),P=c.fee);let I=G(i),N=c||A.usesCexForwarding?gn(y,i,A):e,L=G(N),{transferType:ee}=t,j=q(z(y,s),d),T=q(z(y,P),d),rt=vt(j,n),_t=vt(T,k),it=s.isEqual(P),At=nt(d,y,A),ct={type:d,value:it?[rt]:[_t,rt]},wt=ka(d,ee,j),Xs={type:d,value:it?j:T},Yn=ka(d,ee,T),Yt;o.chain.key==="ethereum"?Yt=wn(d,L,I,j,r):Yt=or(d,L,ct.value.length);let Vs="transfer_assets_using_type_and_then";return new Pt.ExtrinsicConfig({module:pe,func:Vs,getTx:di=>di.getUnsafeApi().tx[pe][Vs]({dest:At,assets:ct,assets_transfer_type:wt,remote_fees_id:Xs,fees_transfer_type:Yn,custom_xcm_on_dest:Yt,weight_limit:{type:"Unlimited"}})})}}),Ac=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=o.chain,c=r.chain,d=gn(u,n,c),y=G(d),{fee:A}=r,k=q(z(c,A),i),P=kn.big.toBigInt(e.fee,A.decimals);return new Pt.ExtrinsicConfig({module:pe,func:t,getTx:I=>I.getUnsafeApi().tx[pe][t]({dest:nt(i,u,c),message:rr(i,y,k,P,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:r,sender:i,source:u,destination:c}=s,d="V4",y=u.chain,A=c.chain,k=gn(y,i,A),P=G(k),I=G(o),N=q(z(A,r),d),{fee:L}=c,ee=kn.big.toBigInt(e.fee,L.decimals),j=n>L.amount?n-(L.amount+ee):n;return new Pt.ExtrinsicConfig({module:pe,func:t,getTx:T=>T.getUnsafeApi().tx[pe][t]({dest:nt(d,y,A),message:ir(d,P,N,j,ee,I)})})}})}},Ca=()=>({limitedReserveTransferAssets:hc,limitedTeleportAssets:bc,reserveTransferAssets:yc,transferAssets:xc,transferAssetsUsingTypeAndThen:gc,send:Ac});var lr=require("@galacticcouncil/xc-core");var gs=require("@galacticcouncil/descriptors"),cr=(t,e)=>({parents:1,interior:gs.XcmV3Junctions.X2([gs.XcmV3Junction.Parachain(t.parachainId),e])}),mr=(t,e)=>({id:t,fun:gs.XcmV3MultiassetFungibility.Fungible(e)});var ur="XTransfer",wc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r="V3",i=G(t),u=o.chain,c=n.chain,d=q(z(u,s),r),y=mr(d,e),A=cr(c,i),k="transfer";return new lr.ExtrinsicConfig({module:ur,func:k,getTx:P=>P.getUnsafeApi().tx[ur][k]([y,A,{refTime:5e9,proofSize:0}])})}}),Ta=()=>({transfer:wc});function m(){return{assetConversion:To,assets:Po,balances:Fo,ethereumXcm:fa,polkadotXcm:Ca,router:Ro,utility:Do,xTransfer:Ta}}function yt(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}var Bt=require("@galacticcouncil/xc-core");var va={};Zt(va,{AssethubClient:()=>he,BaseClient:()=>Xe,HydrationClient:()=>Ye});var dr=require("@galacticcouncil/common"),Cn=require("@galacticcouncil/descriptors"),Xe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??Cn.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:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=(0,dr.encodeLocation)(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,Cn.XcmVersionedAssetId.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var As=require("@galacticcouncil/descriptors"),fr=require("@galacticcouncil/common"),Tn=require("@polkadot-api/substrate-bindings"),pr=require("@polkadot-api/utils");var he=class extends Xe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,fr.encodeLocation)(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,pr.toHex)((0,Tn.Twox128)(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let r=Tn.u128.dec(o);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=As.XcmVersionedLocation.V5({parents:1,interior:As.XcmV5Junctions.X1(As.XcmV5Junction.Parachain(s))}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!o.success)throw Error("Can't query XCM delivery fee.");let r=o.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var hr=require("@galacticcouncil/descriptors");var Ye=class extends Xe{constructor(e){super(e,hr.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=o;return BigInt(r)-BigInt(i)}};function kc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,r=Bt.Wormhole.fromChain(n),i=Bt.Wormhole.fromChain(o),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Bt.Abi.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function Cc(){return{TokenRelayer:kc}}function Tc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,r=s,i=Bt.Snowbridge.fromChain(o),u=new Xe(r),c=new he(t.hub),d=ga(e,r),[y,A]=await Promise.all([u.calculateDestinationFee(d,w),c.calculateDeliveryFee(d,r.parachainId)]),k=A+hs(y,25n),P=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Bt.Abi.Snowbridge,address:i.getGateway(),args:[P,r.parachainId,k],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:k}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,r=new he(t.hub),i=er(e,o),u=ga(e,o),[c,d,y,A,k]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,Ko),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,o.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+d+hs(y,25n)+A+hs(k,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:d,assetHubDestinationFee:y,returnToSenderDeliveryFee:A,returnToSenderDestinationFee:k}}}})}}function vc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,r=n,i=t?.reserve;if(Yo(e,o,r,i),i){let k=new Xe(r),P=new Xe(i),I=wa(e,r),N=sr(e,i,r),[L,ee]=await Promise.all([k.calculateDestinationFee(I,e),P.calculateDestinationFee(N,e)]),j=ee+L,T=hs(j,20n),rt=T-j;return{amount:T,breakdown:{reserveFee:ee,destinationFee:L,margin:rt}}}let u=new Xe(r),c=tr(e,r),d=await u.calculateDestinationFee(c,e),y=hs(d,20n),A=y-d;return{amount:y,breakdown:{totalFee:d,margin:A}}}})}}function f(){return{XcmPaymentApi:vc,Snowbridge:Tc,Wormhole:Cc}}var Pc="0";function Bc(){return{build:async({address:t,chain:e})=>{let n=await new Ye(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Pc,r=e.findAssetById(o);return r?r.asset:J}}}var Xc=()=>({accountCurrencyMap:Bc});function Rs(){return{multiTransactionPayment:Xc}}var be=require("@galacticcouncil/xc-core"),ue=require("@solana/spl-token"),Ze=require("@solana/web3.js"),Pa=require("@wormhole-foundation/sdk-connect"),Xt=require("@wormhole-foundation/sdk-solana-tokenbridge"),Fc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,d=be.Wormhole.fromChain(u),y=be.Wormhole.fromChain(t.moonchain),A=be.Precompile.Bridge,k=await be.mrl.createPayload(i.chain,s),P=new Ze.PublicKey(r),I=new Pa.UniversalAddress(A),N=y.getWormholeId(),L=P,ee=0,j=Ze.Keypair.generate(),T=Ze.Keypair.generate(),rt=await(0,ue.getMinimumBalanceForRentExemptAccount)(c.connection),_t=Ze.SystemProgram.createAccount({fromPubkey:L,newAccountPubkey:T.publicKey,lamports:rt,space:ue.ACCOUNT_SIZE,programId:ue.TOKEN_PROGRAM_ID}),it=Ze.SystemProgram.transfer({fromPubkey:L,lamports:n,toPubkey:T.publicKey}),At=(0,ue.createInitializeAccountInstruction)(T.publicKey,ue.NATIVE_MINT,L),ct=(0,Xt.createApproveAuthoritySignerInstruction)(d.getTokenBridge(),T.publicKey,L,n),wt=(0,Xt.createTransferNativeWithPayloadInstruction)(c.connection,d.getTokenBridge(),d.getCoreBridge(),r,j.publicKey,T.publicKey,ue.NATIVE_MINT,ee,n,I.toUint8Array(),N,k.toU8a()),Xs=(0,ue.createCloseAccountInstruction)(T.publicKey,L,L);return new be.ProgramConfig({instructions:[_t,it,At,ct,wt,Xs],signers:[j,T],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ec=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,sender:i,destination:u}=e,c=r.chain,d=c,y=be.Wormhole.fromChain(c),A=be.Wormhole.fromChain(t.moonchain),k=be.Precompile.Bridge,P=await be.mrl.createPayload(u.chain,s),I=new Ze.PublicKey(i),N=r.chain.getAssetId(o),L=new Ze.PublicKey(N),ee=await(0,ue.getAssociatedTokenAddress)(L,I),j=new Pa.UniversalAddress(k),T=A.getWormholeId();if(await(0,Xt.getWrappedMeta)(d.connection,y.getTokenBridge(),L).catch(wt=>null).then(wt=>wt!=null))throw new Error("Wrapped assets not supported yet");let _t=0,it=Ze.Keypair.generate(),At=(0,Xt.createApproveAuthoritySignerInstruction)(y.getTokenBridge(),ee,I,n),ct=(0,Xt.createTransferNativeWithPayloadInstruction)(d.connection,y.getTokenBridge(),y.getCoreBridge(),i,it.publicKey,ee,L,_t,n,j.toUint8Array(),T,P.toU8a());return new be.ProgramConfig({instructions:[At,ct],signers:[it],func:"TransferWithPayload",module:"TokenBridge"})}})}),br=()=>({transferNativeWithPayload:Fc,transferTokenWithPayload:Ec});function yr(){return{TokenBridge:br}}function vn(){return{Wormhole:yr}}var xt=require("@galacticcouncil/xc-core"),xr=require("@mysten/sui/transactions"),Pn=require("@mysten/sui/utils"),gr=require("@wormhole-foundation/sdk-connect"),Ss=require("@wormhole-foundation/sdk-sui"),Ic=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,d=xt.Wormhole.fromChain(u),y=xt.Wormhole.fromChain(t.moonchain),A=0,k=xt.Precompile.Bridge,P=await xt.mrl.createPayload(i.chain,s),I=new gr.UniversalAddress(k),N=y.getWormholeId(),L=Pn.SUI_TYPE_ARG,[ee,j]=await Promise.all([(0,Ss.getPackageId)(c.client,d.coreBridge),(0,Ss.getPackageId)(c.client,d.tokenBridge)]),T=new xr.Transaction,[rt]=T.splitCoins(T.gas,[T.pure.u64(n)]),[_t]=T.splitCoins(T.gas,[T.pure.u64(i.fee.amount)]),[it]=T.moveCall({target:`${j}::state::verified_asset`,arguments:[T.object(d.tokenBridge)],typeArguments:[L]}),At=!1,ct=await(async()=>{let Yt=await(0,Ss.getOldestEmitterCapObjectId)(c.client,ee,r);if(Yt!==null)return T.object(Yt);{let[Vs]=T.moveCall({target:`${ee}::emitter::new`,arguments:[T.object(d.coreBridge)]});return At=!0,Vs}})(),[wt,Xs]=T.moveCall({target:`${j}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ct,it,rt,T.pure.u16(N),T.pure.vector("u8",I.toUint8Array()),T.pure.vector("u8",P.toU8a()),T.pure.u32(A)],typeArguments:[L]});T.moveCall({target:`${j}::coin_utils::return_nonzero`,arguments:[Xs],typeArguments:[L]});let[Yn]=T.moveCall({target:`${j}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[T.object(d.tokenBridge),wt],typeArguments:[L]});return T.moveCall({target:`${ee}::publish_message::publish_message`,arguments:[T.object(d.coreBridge),_t,Yn,T.object(Pn.SUI_CLOCK_OBJECT_ID)]}),At&&T.transferObjects([ct],T.pure.address(r)),new xt.MoveConfig({transaction:T,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Ar=()=>({transferNativeWithPayload:Ic});function wr(){return{TokenBridge:Ar}}function Ba(){return{Wormhole:wr}}var Fa={};Zt(Fa,{Tag:()=>Ft});var Ft=(o=>(o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(Ft||{});var Ea=require("@galacticcouncil/xc-core");function ws(t,e){return new Ea.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:t,balance:a().evm().erc20()}},destination:{chain:l,asset:e,fee:{amount:0,asset:e}},contract:F().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})}function le(t,e){return new Ea.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:l,asset:e,fee:{amount:f().Snowbridge().calculateInboundFee({hub:v}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Rc=[new zt.AssetRoute({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().native()}},destination:{chain:l,asset:se,fee:{amount:0,asset:se}},contract:F().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]}),ws(xe,ae),ws(tt,ve),ws(g,Q),ws(h,Te),ws(et,Ce)],Sc=[new zt.AssetRoute({source:{asset:H,balance:a().evm().native(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:l,asset:H,fee:{amount:f().Snowbridge().calculateInboundFee({hub:v}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]}),le(Ee,Ee),le(Re,Re),le(_e,_e),le(Oe,Oe),le(qe,qe),le(je,je),le(We,We),le(Le,Le),le(Ve,Ve),le(ze,ze),le($e,$e),le(Qe,Qe),le(g,Lt),le(h,Dt)],Lp=[new zt.AssetRoute({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().erc20()}},destination:{chain:_,asset:se,fee:{amount:0,asset:se}},contract:F().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new zt.AssetRoute({source:{asset:xe,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:xe,balance:a().evm().erc20()}},destination:{chain:_,asset:ae,fee:{amount:0,asset:ae}},contract:F().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],kr=new zt.ChainRoutes({chain:S,routes:[...Rc,...Sc]});var Cr=[kr];var _s=require("@galacticcouncil/xc-core");var _c=[new _s.AssetRoute({source:{asset:ne,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:ne,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ne}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new _s.AssetRoute({source:{asset:ge,balance:a().substrate().tokens().accounts(),fee:{asset:ne,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:ge,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ge}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Tr=new _s.ChainRoutes({chain:Ht,routes:[..._c]});var Et=require("@galacticcouncil/xc-core");var Bn=require("@galacticcouncil/xc-core");var qt=0,Dc=t=>{let{source:e}=t;return!!e.feeSwap},Lc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},vr=m().assetConversion().swapTokensForExactTokens({slippage:30});function Pr(t,e,s){return new Bn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().assets().account()},min:Ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:yt(Lc,vr).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Xn(t,e,s){return new Bn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:t,balance:a().substrate().assets().account(),swap:!0},destinationFee:{balance:a().substrate().assets().account()},min:Ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:yt(Dc,vr).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function jt(t,e,s){return new Bn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().assets().account()},min:Ct().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function $t(t){return Pr(t,l,.02)}function Br(t){return Pr(t,_,.25)}var Hc=[new Et.AssetRoute({source:{asset:w,balance:a().substrate().system().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().system().account()},min:Ct().assets().asset()},destination:{chain:l,asset:w,fee:{amount:.001,asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Et.AssetRoute({source:{asset:X,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:l,asset:X,fee:{amount:1e-4,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),jt(h,l,.02),jt(g,l,.02),$t(te),$t(mt),$t(ut),$t(lt)],Wc=[new Et.AssetRoute({source:{asset:X,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:ft,asset:X,fee:{amount:.001,asset:X}},extrinsic:m().polkadotXcm().transferAssets()})],Mc=[jt(h,_,.25),jt(g,_,.25),Br(te)],Vc=[jt(h,K,.03),jt(g,K,.03)],Kc=[new Et.AssetRoute({source:{asset:O,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:qt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:kt,asset:O,fee:{amount:2.5,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Xr=new Et.ChainRoutes({chain:v,routes:[...Hc,...Wc,...Mc,...Vc,...Kc]}),Fr=new Et.ChainRoutes({chain:ss,routes:[Xn(h,l,.02),Xn(g,l,.02),Xn(w,l,.001)]});var we=require("@galacticcouncil/xc-core");var Uc=[new we.AssetRoute({source:{asset:D,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new we.AssetRoute({source:{asset:R,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:R,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:x,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:V,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:W,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:Ne,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:Ne,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:M,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:Y,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:Y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:h,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:g,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Er=new we.ChainRoutes({chain:ce,routes:[...Uc]});var ye=require("@galacticcouncil/xc-core");var Nc=[new ye.AssetRoute({source:{asset:R,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:R,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:M,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:Y,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:Y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:w,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ye.AssetRoute({source:{asset:D,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:D,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:x,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:V,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Oc=[new ye.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:v,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:v,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ir=new ye.ChainRoutes({chain:K,routes:[...Nc,...Oc]});var Ds=require("@galacticcouncil/xc-core");var Gc=[new Ds.AssetRoute({source:{asset:ke,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:ke,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ke}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ds.AssetRoute({source:{asset:x,balance:a().substrate().ormlTokens().accounts(),fee:{asset:ke,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().ormlTokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Rr=new Ds.ChainRoutes({chain:Wt,routes:[...Gc]});var at=require("@galacticcouncil/xc-core");var zc="0",E=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===zc?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),de=()=>({asset:Rs().multiTransactionPayment().accountCurrencyMap(),balance:E()});var Jt=require("@galacticcouncil/xc-core");var qc=.9,jc=1,$c=.03,Fn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},En=m().router().buy({slippage:30});function C(t,e,s){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:e,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function Qt(t){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:yt(Fn,En).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function In(t,e,s){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:ss,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:$c})])})}function Sr(t,e,s){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:e,asset:t,fee:{amount:s,asset:x}},extrinsic:yt(Fn,En).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function It(t){return Sr(t,_,.08)}function _r(t){return Sr(t,dt,.1)}function Dr(t,e,s,n,o,r){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{asset:t,balance:E()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:yt(Fn,En).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:qc})]),transact:{chain:_,fee:{amount:jc,asset:x,balance:E()},extrinsic:m().ethereumXcm().transact(o)},tags:r})}function Ia(t,e,s){return Dr(t,e,s,0,F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenBridge()),F().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function Rt(t,e,s){return Dr(t,e,s,f().Wormhole().TokenRelayer().calculateRelayerFee(),F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function oe(t,e,s){return new Jt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:s,asset:e,fee:{amount:f().Snowbridge().calculateOutboundFee({hub:v}),asset:w}},extrinsic:yt(Fn,En).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Jc=[C(ne,Ht),C(ge,Ht)],Qc=[new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:X,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:X,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:h,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:g,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),Qt(te),Qt(mt),Qt(ut),Qt(lt)],Yc=[C(D,ce),C(R,ce,K),C(x,ce),C(V,ce),C(W,ce),C(Ne,ce),C(M,ce,K),C(Y,ce),C(h,ce,v),C(g,ce,v)],Zc=[C(R,K),C(M,K),C(Y,K),C(w,K),C(D,K),C(x,K),C(V,K),C(h,K,v),C(g,K,v),new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:K,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],e0=[C(ke,Wt),C(x,Wt)],t0=[C(V,Pe),C(W,Pe),C(J,Pe),C(h,Pe,v),C(g,Pe,v),new at.AssetRoute({source:{asset:M,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:Pe,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:Pe,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],s0=[C(J,_),C(x,_),C(h,_,v),C(g,_,v),It(ae),It(Ce),It(Q),It(Te),It(ve),It(se),It($)],n0=[C(Ae,dt),C(x,dt),_r(Q)],a0=[C(O,kt)],o0=[C(Je,ms)],r0=[C(Se,ns)],i0=[C(De,os)],c0=[C(He,rs)],m0=[C(Me,us)],u0=[C(Ue,cs)],l0=[C(Ke,is)],d0=[C(Ge,as)],f0=[C(Ie,ts)],p0=[Rt(ae,xe,S),Rt(se,H,S),Rt(ve,tt,S),Rt(Te,h,S),Rt(Q,g,S),Ia(Ce,et,S)],h0=[oe(H,H,S),oe(Ee,Ee,S),oe(Re,Re,S),oe(_e,_e,S),oe(Oe,Oe,S),oe(qe,qe,S),oe(je,je,S),oe($e,$e,S),oe(We,We,S),oe(Le,Le,S),oe(Ve,Ve,S),oe(ze,ze,S),oe(Qe,Qe,S),oe(Lt,g,S),oe(Dt,h,S)],b0=[Rt($,$,Vt),Ia(re,re,Vt)],y0=[Rt(ie,ie,ls)],x0=[In(h,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),In(g,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),In(w,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Lr=new at.ChainRoutes({chain:l,routes:[...Jc,...f0,...Qc,...Yc,...Zc,...e0,...x0,...r0,...d0,...h0,...p0,...t0,...i0,...c0,...m0,...s0,...a0,...l0,...u0,...b0,...y0,...o0,...n0]});var ot=require("@galacticcouncil/xc-core");var g0=[new ot.AssetRoute({source:{asset:W,balance:a().substrate().tokens().accounts(),destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:V,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:J,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:J,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:J}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:M,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:w,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Hr=new ot.ChainRoutes({chain:Pe,routes:[...g0]});var gt=require("@galacticcouncil/xc-core");var Ra=require("@galacticcouncil/xc-core");function A0(t,e,s){return new Ra.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().Xtokens().transfer()})}function w0(t,e,s){return new Ra.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:x,balance:a().evm().erc20()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().Xtokens().transfer()})}function St(t,e){return A0(t,l,e)}function Rn(t,e){return w0(t,l,e)}var k0=[new gt.AssetRoute({source:{asset:x,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:x,fee:{amount:.05,asset:x}},contract:F().Xtokens().transfer()}),Rn(J,.6),Rn(h,.3),Rn(g,.3),St(ae,.004),St(Ce,.004),St(Q,.004),St(Te,.004),St(ve,1e-7),St(se,2e-6),St($,2e-5)],C0=[new gt.AssetRoute({source:{asset:te,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:te,fee:{amount:.18,asset:h}},contract:F().Xtokens().transferMultiCurrencies()}),new gt.AssetRoute({source:{asset:h,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:h,fee:{amount:.18,asset:h}},contract:F().Xtokens().transfer()}),new gt.AssetRoute({source:{asset:g,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:g,fee:{amount:.18,asset:g}},contract:F().Xtokens().transfer()})],eb=[new gt.AssetRoute({source:{asset:se,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{asset:se,balance:a().evm().erc20()}},destination:{chain:S,asset:H,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new gt.AssetRoute({source:{asset:ae,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{asset:ae,balance:a().evm().erc20()}},destination:{chain:S,asset:xe,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:xe}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Wr=new gt.ChainRoutes({chain:_,routes:[...k0,...C0]});var Ls=require("@galacticcouncil/xc-core");var T0=[new Ls.AssetRoute({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:O,fee:{amount:.01,asset:O}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],v0=[new Ls.AssetRoute({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:v,asset:O,fee:{amount:.1,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Mr=new Ls.ChainRoutes({chain:kt,routes:[...T0,...v0]});var Sn=require("@galacticcouncil/xc-core");var P0=[new Sn.AssetRoute({source:{asset:Je,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Je,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Je}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Vr=new Sn.ChainRoutes({chain:ms,routes:[...P0]});var ks=require("@galacticcouncil/xc-core");var B0=[new ks.AssetRoute({source:{asset:Ae,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ae,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ae}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ks.AssetRoute({source:{asset:x,balance:a().substrate().tokens().accounts(),fee:{asset:Ae,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ks.AssetRoute({source:{asset:Q,balance:a().substrate().tokens().accounts(),fee:{asset:Ae,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:Q,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Kr=new ks.ChainRoutes({chain:dt,routes:[...B0]});var _n=require("@galacticcouncil/xc-core");var X0=[new _n.AssetRoute({source:{asset:Se,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Se,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Se}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ur=new _n.ChainRoutes({chain:ns,routes:[...X0]});var Dn=require("@galacticcouncil/xc-core");var F0=[new Dn.AssetRoute({source:{asset:De,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:De,fee:{amount:.03,asset:De}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Nr=new Dn.ChainRoutes({chain:os,routes:[...F0]});var Ln=require("@galacticcouncil/xc-core");var E0=[new Ln.AssetRoute({source:{asset:Ue,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ue,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Or=new Ln.ChainRoutes({chain:cs,routes:[...E0]});var Hn=require("@galacticcouncil/xc-core");var I0=[new Hn.AssetRoute({source:{asset:Ge,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ge,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Gr=new Hn.ChainRoutes({chain:as,routes:[...I0]});var Wn=require("@galacticcouncil/xc-core");var R0=[new Wn.AssetRoute({source:{asset:Ie,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ie,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],zr=new Wn.ChainRoutes({chain:ts,routes:[...R0]});var Mn=require("@galacticcouncil/xc-core");var S0=[new Mn.AssetRoute({source:{asset:He,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:He,fee:{amount:2,asset:He}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],qr=new Mn.ChainRoutes({chain:rs,routes:[...S0]});var Vn=require("@galacticcouncil/xc-core");var _0=[new Vn.AssetRoute({source:{asset:Me,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Me,fee:{amount:.03,asset:Me}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],jr=new Vn.ChainRoutes({chain:us,routes:[..._0]});var Kn=require("@galacticcouncil/xc-core");var D0=[new Kn.AssetRoute({source:{asset:Ke,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ke,fee:{amount:.205,asset:Ke}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],$r=new Kn.ChainRoutes({chain:is,routes:[...D0]});var Jr=[Tr,zr,Xr,Fr,Er,Ir,Rr,Lr,Hr,Wr,Mr,$r,Vr,Kr,Ur,Nr,Or,Gr,qr,jr];var Hs=require("@galacticcouncil/xc-core");var L0=[new Hs.AssetRoute({source:{asset:$,balance:a().solana().native(),destinationFee:{asset:$,balance:a().solana().native()}},destination:{chain:l,asset:$,fee:{amount:0,asset:$}},program:vn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]}),new Hs.AssetRoute({source:{asset:re,balance:a().solana().token(),fee:{asset:$,balance:a().solana().native()},destinationFee:{asset:re,balance:a().solana().token()}},destination:{chain:l,asset:re,fee:{amount:0,asset:re}},program:vn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})],Qr=new Hs.ChainRoutes({chain:Vt,routes:[...L0]});var Yr=[Qr];var Un=require("@galacticcouncil/xc-core");var H0=[new Un.AssetRoute({source:{asset:ie,balance:a().sui().native(),destinationFee:{asset:ie,balance:a().sui().native()}},destination:{chain:l,asset:ie,fee:{amount:0,asset:ie}},move:Ba().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})],Zr=new Un.ChainRoutes({chain:ls,routes:[...H0]});var ei=[Zr];var Ws=require("@galacticcouncil/xc-core");var W0=require("@galacticcouncil/xc-core");var Sa=0;var M0=new Ws.AssetRoute({source:{asset:X,balance:a().substrate().system().account(),fee:{asset:X,balance:a().substrate().system().account(),extra:Sa},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:v,asset:X,fee:{amount:.002,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),V0=new Ws.AssetRoute({source:{asset:X,balance:a().substrate().system().account(),fee:{asset:X,balance:a().substrate().system().account(),extra:Sa},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:ds,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),ti=new Ws.ChainRoutes({chain:ft,routes:[V0,M0]});var Ms=require("@galacticcouncil/xc-core");var K0="0",Cs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===K0?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),_a=()=>({asset:Rs().multiTransactionPayment().accountCurrencyMap(),balance:Cs()});var U0=[new Ms.AssetRoute({source:{asset:h,balance:Cs(),fee:_a(),destinationFee:{balance:Cs()}},destination:{chain:ft,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],N0=[new Ms.AssetRoute({source:{asset:X,balance:Cs(),fee:_a(),destinationFee:{balance:Cs()}},destination:{chain:ft,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],si=new Ms.ChainRoutes({chain:ds,routes:[...U0,...N0]});var ni=[ti,si];var O0=[...Cr,...Jr,...Yr,...ei,...ni],ai=new Map(O0.map(t=>[t.chain.key,t]));var Da=require("@galacticcouncil/xc-core");var Ts=require("@galacticcouncil/xc-core");var Nn=class extends Ts.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:r}=s;if(r.amount<o.amount)throw new Ts.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},On=class extends Ts.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(o,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new Ts.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new he(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};var vs=require("@galacticcouncil/xc-core");var Gn=class extends vs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new he(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain;if(await new he(r).getSystemAccountBalance(n)===0n)throw new vs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},zn=class extends vs.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,r=o.chain;if(await new he(r).checkIfFrozen(n,s))throw new vs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Ps=require("@galacticcouncil/xc-core");var G0=12,z0=1,q0=18,qn=class extends Ps.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new Ye(n),r=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain,i=new Ye(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),d=c.min||z0,y=c.decimals||G0,A=d*Math.pow(10,y),k=await i.getAssetBalance(n,u);if(BigInt(A*1.1)>k)throw new Ps.TransferValidationError("Insufficient_Ed",{amount:A,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},jn=class extends Ps.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,r=o.chain,i=new Ye(r),u=r.getBalanceAssetId(x),c=r.getAssetDecimals(x)||q0,d=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(d))throw new Ps.TransferValidationError("Insufficient_Ed",{amount:1,asset:x.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var Fe={isAny:()=>!0,isHydration:t=>t instanceof Da.Parachain&&t.parachainId===2034,isHub:t=>t instanceof Da.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},oi=[new Nn(Fe.isAny,Fe.isAny),new On(Fe.isAny,Fe.isAny),new Gn(Fe.isAny,Fe.isHub),new zn(Fe.isHub,Fe.isAny),new qn(Fe.isAny,Fe.isHydration),new jn(Fe.isHydration,Fe.isAny)];var Ma={};Zt(Ma,{AssethubDex:()=>Wa,HydrationDex:()=>La});var Bs=require("@galacticcouncil/sdk-next"),ii=require("@galacticcouncil/common");var ri=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:$n}=Bs.pool,{TradeRouteBuilder:j0,TradeRouter:$0}=Bs.sor,{TxBuilderFactory:J0}=Bs.tx,La=class{chain;client;poolCtx;txBuilder;getCtx=ri(async e=>{console.log("init swap router",e,"\u2705");let s=new $0(this.poolCtx);return s.withFilter({useOnly:[$n.Aave,$n.Omni,$n.Stable,$n.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ye(this.chain),this.txBuilder=new J0(s.client,s.evm)}async getCalldata(e,s,n,o,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=o.amount,d=await this.getCtx(1),y=await d.getMostLiquidRoute(i,u),A=await d.getBuy(i,u,c,y);return(await(await this.txBuilder.trade(A).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,o){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let d=await c.getMostLiquidRoute(r,i),y=await c.getBuy(r,i,u,d);return{amount:y.amountIn,route:j0.build(y.swaps)}}catch(d){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw d}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let r=o*s,i=Math.pow(10,ii.RUNTIME_DECIMALS);return r/BigInt(i)}};var Ha=require("@galacticcouncil/common"),Wa=class{chain;client;constructor(e){this.chain=e,this.client=new he(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Ha.encodeLocation)(o),(0,Ha.encodeLocation)(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var li=require("@galacticcouncil/xc-core");var ci=require("@galacticcouncil/xc-core");function Jn(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new ci.Asset({key:[o,s,e].join("_"),originSymbol:n})}function mi(t){let{decimals:e,id:s}=t;return{asset:Jn(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function ui(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:Jn(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Qn=class extends li.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!o(r)&&r.origin===1e3).forEach(r=>{let i=Jn(r),u=mi(r),c=ui(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,$t(i)),this.updateChainRoute(s,Qt(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
1
+ "use strict";var ea=Object.defineProperty;var bi=Object.getOwnPropertyDescriptor;var yi=Object.getOwnPropertyNames;var xi=Object.prototype.hasOwnProperty;var es=(t,e)=>{for(var s in e)ea(t,s,{get:e[s],enumerable:!0})},gi=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yi(e))!xi.call(t,o)&&o!==s&&ea(t,o,{get:()=>e[o],enumerable:!(n=bi(e,o))||n.enumerable});return t};var Ai=t=>gi(ea({},"__esModule",{value:!0}),t);var em={};es(em,{HydrationConfigService:()=>Jn,assetsMap:()=>Ua,builders:()=>Fa,chainsMap:()=>no,clients:()=>Pa,dex:()=>Va,routesMap:()=>ii,tags:()=>Ea,validations:()=>ci});module.exports=Ai(em);var b=require("@galacticcouncil/xc-core"),Ee=new b.Asset({key:"aave",originSymbol:"AAVE"}),ne=new b.Asset({key:"aca",originSymbol:"ACA"}),Ie=new b.Asset({key:"ajun",originSymbol:"AJUN"}),D=new b.Asset({key:"astr",originSymbol:"ASTR"}),R=new b.Asset({key:"bnc",originSymbol:"BNC"}),ta=new b.Asset({key:"bsx",originSymbol:"BSX"}),ke=new b.Asset({key:"cfg",originSymbol:"CFG"}),Re=new b.Asset({key:"cfg_new",originSymbol:"CFG"}),Se=new b.Asset({key:"cru",originSymbol:"CRU"}),xe=new b.Asset({key:"dai",originSymbol:"DAI"}),ae=new b.Asset({...xe,key:"dai_mwh"}),mt=new b.Asset({key:"ded",originSymbol:"DED"}),w=new b.Asset({key:"dot",originSymbol:"DOT"}),ut=new b.Asset({key:"dota",originSymbol:"DOTA"}),H=new b.Asset({key:"eth",originSymbol:"ETH"}),_e=new b.Asset({key:"ena",originSymbol:"ENA"}),x=new b.Asset({key:"glmr",originSymbol:"GLMR"}),$=new b.Asset({key:"hdx",originSymbol:"HDX"}),V=new b.Asset({key:"ibtc",originSymbol:"IBTC"}),W=new b.Asset({key:"intr",originSymbol:"INTR"}),re=new b.Asset({key:"jitoSol",originSymbol:"jitoSOL"}),wi=new b.Asset({key:"kar",originSymbol:"KAR"}),De=new b.Asset({key:"kilt",originSymbol:"KILT"}),X=new b.Asset({key:"ksm",originSymbol:"KSM"}),Le=new b.Asset({key:"ldo",originSymbol:"LDO"}),He=new b.Asset({key:"laos",originSymbol:"LAOS"}),We=new b.Asset({key:"lbtc",originSymbol:"LBTC"}),Me=new b.Asset({key:"ewt",originSymbol:"EWT"}),ge=new b.Asset({key:"ldot",originSymbol:"LDOT"}),Ve=new b.Asset({key:"link",originSymbol:"LINK"}),O=new b.Asset({key:"myth",originSymbol:"MYTH"}),sa=new b.Asset({key:"nodl",originSymbol:"NODL"}),Ke=new b.Asset({key:"neuro",originSymbol:"NEURO"}),Ue=new b.Asset({key:"pen",originSymbol:"PEN"}),Ne=new b.Asset({key:"pha",originSymbol:"PHA"}),Oe=new b.Asset({key:"paxg",originSymbol:"PAXG"}),te=new b.Asset({key:"pink",originSymbol:"PINK"}),Ge=new b.Asset({key:"ring",originSymbol:"RING"}),ze=new b.Asset({key:"sky",originSymbol:"SKY"}),j=new b.Asset({key:"sol",originSymbol:"SOL"}),ie=new b.Asset({key:"sui",originSymbol:"SUI"}),na=new b.Asset({key:"sub",originSymbol:"SUB"}),qe=new b.Asset({key:"susde",originSymbol:"sUSDe"}),et=new b.Asset({key:"susds",originSymbol:"sUSDS"}),Ce=new b.Asset({...et,key:"susds_mwh"}),je=new b.Asset({key:"tbtc",originSymbol:"tBTC"}),aa=new b.Asset({key:"teer",originSymbol:"TEER"}),oa=new b.Asset({key:"tnkr",originSymbol:"TNKR"}),$e=new b.Asset({key:"trac",originSymbol:"TRAC"}),Je=new b.Asset({key:"unq",originSymbol:"UNQ"}),h=new b.Asset({key:"usdt",originSymbol:"USDT"}),Te=new b.Asset({...h,key:"usdt_mwh"}),Dt=new b.Asset({...h,key:"usdt_eth"}),g=new b.Asset({key:"usdc",originSymbol:"USDC"}),J=new b.Asset({...g,key:"usdc_mwh"}),Lt=new b.Asset({...g,key:"usdc_eth"}),Q=new b.Asset({key:"vastr",originSymbol:"vASTR"}),M=new b.Asset({key:"vdot",originSymbol:"vDOT"}),ts=new b.Asset({key:"weth",originSymbol:"WETH"}),se=new b.Asset({...ts,key:"weth_mwh"}),tt=new b.Asset({key:"wbtc",originSymbol:"WBTC"}),ve=new b.Asset({...tt,key:"wbtc_mwh"}),Qe=new b.Asset({key:"wsteth",originSymbol:"wstETH"}),lt=new b.Asset({key:"wud",originSymbol:"WUD"}),ra=new b.Asset({key:"xrt",originSymbol:"XRT"}),Ae=new b.Asset({key:"ztg",originSymbol:"ZTG"}),ki=[Ee,ne,Ie,D,ta,ke,Re,Se,R,xe,ae,mt,w,ut,_e,H,x,$,V,W,wi,De,X,Le,He,We,Me,re,ge,Ve,O,Ke,sa,Oe,Ne,Ue,te,Ge,ze,j,ie,na,qe,et,Ce,aa,oa,$e,je,Je,g,J,Lt,h,Te,Dt,Q,M,tt,ve,ts,se,Qe,lt,ra,Ae],Ua=new Map(ki.map(t=>[t.key,t]));var Vs=require("@galacticcouncil/xc-core");var Na=require("viem/chains"),S=new Vs.EvmChain({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:H,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Ee,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Re,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:ts,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:xe,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:_e,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:qe,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:et,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:je,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:tt,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:We,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:g,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:h,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Le,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:Ve,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:Oe,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:ze,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:$e,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Qe,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:Vs.ChainEcosystem.Ethereum,evmChain:Na.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 Oa=[S];var Gs=require("@galacticcouncil/xc-core"),za=require("viem");var Ns=require("@polkadot-api/substrate-bindings"),ia=require("@polkadot-api/utils"),Ci="evm:",Ks=new TextEncoder().encode(Ci),Us=class{async toH160(e,s){if(!s)return this.toDefaultH160(e);try{let n=await s.getChainSpecData(),r=await s.getTypedApi(n.genesisHash).query.EvmAccounts.evm_addresses(e);if(r)return r}catch{}return this.toDefaultH160(e)}toDefaultH160(e){let s=(0,Ns.getSs58AddressInfo)(e);if(!s.isValid)throw new Error("Invalid SS58 address");let n=s.publicKey;if(n.length>=24&&n.slice(0,4).every((u,c)=>u===Ks[c]))return(0,ia.toHex)(n.slice(4,24));let r=new Uint8Array(Ks.length+n.length);r.set(Ks),r.set(n,Ks.length);let i=(0,Ns.Blake2256)(r);return(0,ia.toHex)(i.slice(0,20))}};var Ga=require("@polkadot-api/substrate-bindings"),Ti="ETH\0",Os=class{async toH160(e){let s=(0,Ga.getSs58AddressInfo)(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let n=s.publicKey,o=Buffer.from(Ti),r=n.slice(o.length,-8);return"0x"+Buffer.from(r).toString("hex")}};var vi=new Us,Pi=(0,za.defineChain)({id:787,name:"Acala",network:"acala",nativeCurrency:{decimals:18,name:"ACA",symbol:"ACA"},rpcUrls:{public:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]},default:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]}},blockExplorers:{default:{name:"Acala Blockscout",url:"https://blockscout.acala.network"}},testnet:!1}),Ht=new Gs.EvmParachain({assetsData:[{asset:ne,id:{Token:ne.originSymbol},metadataId:{NativeAssetId:{Token:ne.originSymbol}},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ge,decimals:10,id:{Token:ge.originSymbol},metadataId:{NativeAssetId:{Token:ge.originSymbol}},min:.05,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:x,decimals:18,id:{ForeignAsset:0},min:.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Gs.ChainEcosystem.Polkadot,evmChain:Pi,evmResolver:vi,explorer:"https://acala.subscan.io",genesisHash:"0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c",key:"acala",name:"Acala",parachainId:2e3,ss58Format:10,wormhole:{id:12,coreBridge:"0xa321448d90d4e5b0A732867c18eA198e75CAC48E",tokenBridge:"0xae9d7fe007b3327AA64A32824Aaac52C42a6E624"},ws:"wss://acala-rpc.n.dwellir.com"});var zs=require("@galacticcouncil/xc-core");var ss=new zs.Parachain({assetsData:[{asset:Ie,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:zs.ChainEcosystem.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});var Xs=require("@galacticcouncil/xc-core");var qa={assetsData:[{asset:w,decimals:10,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:1337,min:.7,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:mt,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:ut,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:lt,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:X,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Xs.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"]},v=new Xs.Parachain({...qa,key:"assethub",name:"AssetHub Polkadot"}),ns=new Xs.Parachain({...qa,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});var qs=require("@galacticcouncil/xc-core");var ce=new qs.Parachain({assetsData:[{asset:D,xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:"340282366920938463463374607431768211455",decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:"4294969280",decimals:6,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,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:x,id:"18446744073709551619",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,id:"18446744073709551620",decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ne,id:"18446744073709551622",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:M,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:qs.ChainEcosystem.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});var js=require("@galacticcouncil/xc-core");var Bi=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],K=new js.Parachain({assetsData:[{asset:R,id:{Native:R.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Q,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:w,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:h,id:{Token2:2},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,id:{Token2:5},decimals:6,min:.001,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:te,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:D,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:x,id:{Token2:1},decimals:18,min:1e-5,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,id:{Token2:6},decimals:8,min:1e-6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:js.ChainEcosystem.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Bi});var $s=require("@galacticcouncil/xc-core");var Xi=["wss://rpc-centrifuge.luckyfriday.io","wss://fullnode.centrifuge.io"],Wt=new $s.Parachain({assetsData:[{asset:ke,id:"Native",xcmLocation:{parents:0,interior:"Here"}},{asset:w,id:{ForeignAsset:5},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:x,id:{ForeignAsset:4},decimals:18,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:$s.ChainEcosystem.Polkadot,explorer:"https://centrifuge.subscan.io",genesisHash:"0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82",key:"centrifuge",name:"Centrifuge",parachainId:2031,ss58Format:36,ws:Xi});var Js=require("@galacticcouncil/xc-core");var as=new Js.Parachain({assetsData:[{asset:Se,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Js.ChainEcosystem.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"]});var Qs=require("@galacticcouncil/xc-core"),ja=require("viem/chains");var os=new Qs.EvmParachain({assetsData:[{asset:Ge,id:"SelfReserve",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qs.ChainEcosystem.Polkadot,evmChain:ja.darwinia,explorer:"https://darwinia.subscan.io",genesisHash:"0xf0b8924b12e8108550d28870bc03f7b45a947e1b2b9abf81bfb0b89ecb60570e",key:"darwinia",name:"Darwinia",parachainId:2046,ss58Format:18,usesH160Acc:!0,ws:"wss://darwinia-rpc.dwellir.com"});var Ys=require("@galacticcouncil/xc-core"),$a=require("viem");var Fi=new Os,ca=["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"],ma=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Ei=(0,$a.defineChain)({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:ca,webSocket:ma},default:{http:ca,webSocket:ma}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),l=new Ys.EvmParachain({assetsData:[{asset:$,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Ee,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ne,decimals:12,id:1000099,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ie,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:D,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:ke,decimals:18,id:13,min:.033,xcmLocation:{parents:1,interior:{X2:[{Parachain:2031},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Re,decimals:18,id:41,min:.1,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"}}]}}},{asset:Se,decimals:12,id:27,min:.0079,xcmLocation:{parents:1,interior:{X1:{Parachain:2008}}}},{asset:mt,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:w,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:ut,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:ae,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:_e,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:x,decimals:18,id:16,min:.035,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}},{asset:V,decimals:8,id:11,min:36e-8,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:W,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:re,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:De,decimals:15,id:28,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:2086}}}},{asset:Me,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Le,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:X,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:He,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:We,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:ge,decimals:10,id:1000100,min:.011,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ve,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:Oe,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:Ke,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:sa,decimals:11,id:26,min:1.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2026},{PalletInstance:2}]}}},{asset:Ue,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:te,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:Ne,decimals:12,id:8,min:.055,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:Ge,decimals:18,id:31,min:1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ze,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:na,decimals:10,id:24,min:.02,xcmLocation:{parents:1,interior:{X1:{Parachain:2101}}}},{asset:j,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:qe,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:et,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:Ce,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:je,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:$e,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Je,decimals:18,id:25,min:1.23,xcmLocation:{parents:1,interior:{X1:{Parachain:2037}}}},{asset:g,decimals:6,id:22,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:J,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:Lt,decimals:6,id:1000766,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"}}]}}},{asset:h,decimals:6,id:10,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:Te,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:Dt,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:Q,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:M,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:tt,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ve,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:ts,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:se,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:lt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:Ae,decimals:10,id:12,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2092},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ys.ChainEcosystem.Polkadot,evmChain:Ei,evmResolver:Fi,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:ma,rpcs:ca});var Zs=require("@galacticcouncil/xc-core");var Pe=new Zs.Parachain({assetsData:[{asset:W,decimals:10,id:{Token:W.originSymbol}},{asset:V,decimals:8,id:{Token:V.originSymbol}},{asset:w,decimals:10,id:{Token:w.originSymbol},xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:{ForeignAsset:2},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:g,decimals:6,id:{ForeignAsset:12},xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:$,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:M,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Zs.ChainEcosystem.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});var en=require("@galacticcouncil/xc-core");var rs=new en.Parachain({assetsData:[{asset:De,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:en.ChainEcosystem.Polkadot,explorer:"https://spiritnet.subscan.io",genesisHash:"0x411f057b9107718c9624d6aa4a3f23c1653898297f3d4d529d9bb6511a39dd21",key:"kilt",name:"Kilt",parachainId:2086,ss58Format:38,ws:"wss://spiritnet.kilt.io"});var tn=require("@galacticcouncil/xc-core");var is=new tn.Parachain({assetsData:[{asset:He,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:tn.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 sn=require("@galacticcouncil/xc-core"),Ja=require("viem");var Ii=(0,Ja.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 sn.EvmParachain({assetsData:[{asset:x,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:ae,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:j,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:re,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Ce,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:J,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:Te,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ve,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:se,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:ne,decimals:12,id:"0xffffffffa922fef94566104a6e5a35a4fcddaa9f",xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:w,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:$,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:te,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:g,decimals:6,id:"0xffffffff7d2b0b761af01ca8e25242976ac0ad7d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1337}]}}},{asset:h,decimals:6,id:"0xffffffffea09fb06d082fd1275cd48b191cbcd1d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:sn.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",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});var nn=require("@galacticcouncil/xc-core");var Ct=new nn.Parachain({assetsData:[{asset:O,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:nn.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 an=require("@galacticcouncil/xc-core");var cs=new an.Parachain({assetsData:[{asset:Ke,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:an.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 ms=new on.Parachain({assetsData:[{asset:Ue,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:on.ChainEcosystem.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech"});var Fs=require("@galacticcouncil/xc-core");var Qa={assetsData:[{asset:w,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Fs.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"},Mt=new Fs.Parachain({...Qa,key:"polkadot"}),Ya=new Fs.Parachain({...Qa,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});var rn=require("@galacticcouncil/xc-core");var us=new rn.Parachain({assetsData:[{asset:Je,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:rn.ChainEcosystem.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});var cn=require("@galacticcouncil/xc-core");var dt=new cn.Parachain({assetsData:[{asset:Ae,id:"Ztg",xcmLocation:{parents:0,interior:"Here"}},{asset:J,decimals:6,id:{ForeignAsset:1},xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:x,decimals:18,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:cn.ChainEcosystem.Polkadot,explorer:"https://zeitgeist.subscan.io",genesisHash:"0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060",key:"zeitgeist",name:"Zeitgeist",parachainId:2092,ss58Format:73,usesChainDecimals:!0,ws:"wss://zeitgeist.api.onfinality.io/public-ws"});var mn=require("@galacticcouncil/xc-core");var ls=new mn.Parachain({assetsData:[{asset:Me,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,ws:"wss://wnp-rpc.mainnet.energywebx.com"});var Za=[Ht,ss,v,ns,ce,K,Wt,as,os,l,rs,is,cs,Pe,_,Ct,ms,Mt,Ya,us,dt,ls];var un=require("@galacticcouncil/xc-core");var Vt=new un.SolanaChain({id:101,key:"solana",name:"Solana",assetsData:[{asset:j,decimals:9},{asset:re,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:un.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 eo=[Vt];var ln=require("@galacticcouncil/xc-core");var ds=new ln.SuiChain({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ie,decimals:9}],ecosystem:ln.ChainEcosystem.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var to=[ds];var dn=require("@galacticcouncil/xc-core");var ft=new dn.Parachain({assetsData:[{asset:X,decimals:12,id:0,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:1984,xcmLocation:{parents:1,interior:{X2:[{PalletInstance:50},{GeneralIndex:1984}]}}}],ecosystem:dn.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 fn=require("@galacticcouncil/xc-core");var fs=new fn.Parachain({assetsData:[{asset:ta,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:X,decimals:12,id:1,xcmLocation:{parents:1,interior:"Here"}},{asset:h,decimals:6,id:14,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:1984}]}}},{asset:aa,decimals:12,id:17,xcmLocation:{parents:1,interior:{X2:[{Parachain:2015},{GeneralKey:{length:4,data:"0x5445455200000000000000000000000000000000000000000000000000000000"}}]}}},{asset:oa,decimals:12,id:6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2125},{GeneralIndex:0}]}}},{asset:ra,decimals:9,id:16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2119},{GeneralKey:{length:4,data:"0x42414a5500000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:fn.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 so=[ft,fs];var Ri=[...Oa,...Za,...eo,...to,...so],no=new Map(Ri.map(t=>[t.key,t]));var qt=require("@galacticcouncil/xc-core");var Fa={};es(Fa,{AssetMinBuilder:()=>Tt,BalanceBuilder:()=>a,ContractBuilder:()=>F,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>yt,FeeAmountBuilder:()=>f,FeeAssetBuilder:()=>Is,MoveBuilder:()=>Xa,ProgramBuilder:()=>Tn,XcmTransferType:()=>me,XcmVersion:()=>bt});var pn=require("@galacticcouncil/xc-core");function Tt(){return{assetRegistry:Si,assets:_i}}function Si(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new pn.SubstrateQueryConfig({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new pn.SubstrateQueryConfig({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function _i(){return{asset:()=>({build:({asset:t})=>new pn.SubstrateQueryConfig({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}var Es=require("@galacticcouncil/xc-core");function ao(){return{erc20:Li,native:Di}}function Di(){return{build:({address:t})=>new Es.ContractConfig({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Li(){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 Es.ContractConfig({abi:Es.Abi.Erc20,address:n,args:[t],func:"balanceOf",module:"Erc20"})}}}var ps=require("@galacticcouncil/xc-core"),hs=require("@galacticcouncil/common");function oo(){return{assets:Hi,system:Mi,tokens:Vi,ormlTokens:Ki,foreignAssets:Wi}}function Hi(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,hs.encodeAssetId)(n);return new ps.SubstrateQueryConfig({module:"Assets",func:"Account",args:[o,t],transform:async r=>BigInt(r?.balance?.toString()??"0")})}})}}function Wi(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let o=s.getAssetXcmLocation(e);if(!o)throw new Error("Missing asset xcm location for "+e.key);let r=(0,hs.encodeLocation)(o);return new ps.SubstrateQueryConfig({module:"ForeignAssets",func:"Account",args:[r,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Mi(){return{account:()=>({build:({address:t})=>new ps.SubstrateQueryConfig({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,n=BigInt(s?.free?.toString()??"0"),o=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return n>=o?n-o:0n}})})}}function Vi(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,hs.encodeAssetId)(n);return new ps.SubstrateQueryConfig({module:"Tokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Ki(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e),o=(0,hs.encodeAssetId)(n);return new ps.SubstrateQueryConfig({module:"OrmlTokens",func:"Accounts",args:[t,o],transform:async r=>{let i=BigInt(r?.free?.toString()??"0"),u=BigInt(r?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}var ua=require("@galacticcouncil/xc-core");function ro(){return{native:Ui,token:Ni}}function Ui(){return{build:({address:t})=>new ua.SolanaQueryConfig({address:t,func:"rpc_getBalance",module:"Native"})}}function Ni(){return{build:({address:t,asset:e,chain:s})=>{let n=s.getBalanceAssetId(e);if(!n)throw new Error(`Invalid token address: ${e}`);return new ua.SolanaQueryConfig({address:t,token:n.toString(),func:"getBalance",module:"Token"})}}}var io=require("@galacticcouncil/xc-core");function co(){return{native:Oi}}function Oi(){return{build:({address:t})=>new io.SuiQueryConfig({address:t,func:"sui_getBalance",module:"Native"})}}function a(){return{evm:ao,substrate:oo,solana:ro,sui:co}}var Kt=require("@galacticcouncil/xc-core"),mo=require("viem"),Gi=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),n=s.map(i=>i.address),o=[0,0],r=s.map(i=>(0,mo.encodeFunctionData)({abi:Kt.Abi[i.module],functionName:i.func,args:i.args}));return new Kt.ContractConfig({abi:Kt.Abi.Batch,address:Kt.Precompile.Batch,args:[n,o,r,[]],func:"batchAll",module:"Batch"})}}),uo=()=>({batchAll:Gi});var ys=require("@galacticcouncil/xc-core");function bs(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function pt(t){return typeof t=="object"?Object.values(t)[0]:t}function lo(){return{approve:t=>({build:async e=>{let{amount:s,asset:n,source:o,transact:r}=e,i=r?r.chain:o.chain,u=ys.Wormhole.fromChain(i),c=i.getAssetId(n);return new ys.ContractConfig({abi:ys.Abi.Erc20,address:pt(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}var vt=require("@galacticcouncil/xc-core");var{Ss58Addr:zi}=vt.addr,qi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r}=t,i=o.chain,u=r.chain,c=vt.Snowbridge.fromChain(i),d=i.getAssetId(n),y=pt(d),A=n.originSymbol==="ETH",k=r.feeBreakdown.bridgeFeeInDot,P=r.fee.amount;return new vt.ContractConfig({abi:vt.Abi.Snowbridge,address:c.getGateway(),args:[y,u.parachainId,[1,zi.getPubKey(e)],k,s],value:A?P+s:P,func:"sendToken",module:"Snowbridge"})}}),fo=()=>({sendToken:qi});var U=require("@galacticcouncil/xc-core"),la=require("@solana/web3.js"),po=require("@solana/spl-token");var ji=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,destination:i}=e,u=U.Wormhole.fromChain(r.chain),c=U.Wormhole.fromChain(t.moonchain),d=U.Precompile.Bridge,y=r.chain.getAssetId(o),A=0,k=await U.mrl.createPayload(i.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:u.getTokenBridge(),args:[pt(y),n,c.getWormholeId(),c.normalizeAddress(d),A,k.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),$i=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,destination:r}=e,i=U.Wormhole.fromChain(o.chain),u=U.Wormhole.fromChain(t.moonchain),c=U.Precompile.Bridge,d=0,y=await U.mrl.createPayload(r.chain,s);return new U.ContractConfig({abi:U.Abi.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),d,y.toHex()],value:n,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),Ji=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,d=U.Wormhole.fromChain(u),y=U.Wormhole.fromChain(c),A=e;if(c.isSolana()){let N=c.getAssetId(n);A=(await(0,po.getAssociatedTokenAddress)(new la.PublicKey(N),new la.PublicKey(e))).toBase58()}let k=u.getAssetId(n),P=0,I=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:d.getTokenBridge(),args:[pt(k),s,y.getWormholeId(),y.normalizeAddress(A),P,I],func:"transferTokens",module:"TokenBridge"})}}),Qi=()=>({build:async t=>{let{address:e,amount:s,source:n,destination:o}=t,r=U.Wormhole.fromChain(n.chain),i=U.Wormhole.fromChain(o.chain),u=0,c=0;return new U.ContractConfig({abi:U.Abi.TokenBridge,address:r.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),ho=()=>({transferTokens:Ji,transferTokensWithPayload:ji,wrapAndTransferETH:Qi,wrapAndTransferETHWithPayload:$i});var Ut=require("@galacticcouncil/xc-core");var Yi=()=>({build:async t=>{let{address:e,amount:s,asset:n,source:o,destination:r,transact:i}=t,u=i?i.chain:o.chain,c=r.chain,d=Ut.Wormhole.fromChain(u),y=Ut.Wormhole.fromChain(c),A=0,k=0,P=u.getAssetId(n);return new Ut.ContractConfig({abi:Ut.Abi.TokenRelayer,address:d.getTokenRelayer(),args:[pt(P),s,A,y.getWormholeId(),y.normalizeAddress(e),k],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),bo=()=>({transferTokensWithRelay:Yi});function yo(){return{TokenBridge:ho,TokenRelayer:bo}}var ht=require("@galacticcouncil/xc-core"),ko=require("@galacticcouncil/common");var xo=require("@galacticcouncil/xc-core"),go=require("@polkadot-api/substrate-bindings"),Ao=require("@polkadot-api/utils"),{EvmAddr:Zi}=xo.addr;function da(t,e){let s=Zi.isValid(t)?"03":"01",n=(0,go.getSs58AddressInfo)(t);if(!n.isValid)throw new Error(`Invalid SS58 address: ${t}`);let o=`0x${s}${(0,Ao.toHex)(n.publicKey).slice(2)}00`;return[1,e.parachainId?[`0x0000000${e.parachainId.toString(16)}`,o]:[o]]}function hn(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")}`}var wo=18446744073709551615n;function Co(){return{transfer:(t=wo)=>({build:async({address:e,amount:s,asset:n,destination:o,source:r})=>{let i=r.chain.getAssetId(n);return new ht.ContractConfig({abi:ht.Abi.Xtokens,address:ht.Precompile.Xtokens,args:[typeof i=="string"?hn(i):n,s,da(e,o.chain),t],func:"transfer",module:"Xtokens"})}}),transferMultiCurrencies:(t=wo)=>({build:async({address:e,amount:s,asset:n,destination:o,source:r})=>{let i=r.chain.getAssetId(n),u=r.chain.getAssetId(r.destinationFeeBalance),c=ko.big.toBigInt(o.fee.amount,o.fee.decimals);return new ht.ContractConfig({abi:ht.Abi.Xtokens,address:ht.Precompile.Xtokens,args:[[[typeof i=="string"?hn(i):i,s],[typeof u=="string"?hn(u):u,c]],1,da(e,o.chain),t],func:"transferMultiCurrencies",module:"Xtokens"})}})}}function F(){return{Batch:uo,Erc20:lo,Snowbridge:fo,Wormhole:yo,Xtokens:Co}}var vo=require("@galacticcouncil/xc-core"),To="AssetConversion",ec=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:n})=>{let{chain:o}=n,r=n.destinationFeeSwap||n.feeSwap;if(!r)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=r,c=o,d=c.getAssetXcmLocation(i),y=c.getAssetXcmLocation(u),A=i.amount+i.amount*BigInt(t.slippage)/100n,k=u.amount;return new vo.ExtrinsicConfig({module:To,func:e,getTx:P=>P.getUnsafeApi().tx[To][e]({path:[d,y],amount_out:k,amount_in_max:A,send_to:s,keep_alive:!0})})}}},Po=()=>({swapTokensForExactTokens:ec});var bn=require("@galacticcouncil/descriptors"),Bo=require("@galacticcouncil/xc-core"),tc="Assets",sc=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:n,destination:o})=>{let r=o.chain,{fee:i}=o,u=s>i.amount?s-i.amount:s,c=r.getMetadataAssetId(e);return new Bo.ExtrinsicConfig({module:tc,func:t,getTx:d=>d.getTypedApi(bn.hub).tx.Assets.transfer({id:Number(c),target:bn.MultiAddress.Id(n),amount:u})})}}},Xo=()=>({transfer:sc});var Eo=require("@galacticcouncil/xc-core"),Fo="Balances",nc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Eo.ExtrinsicConfig({module:Fo,func:e,getTx:n=>n.getUnsafeApi().tx[Fo][e]({dest:s,keep_alive:t})})}},Io=()=>({transferAll:nc});var Ro=require("@galacticcouncil/descriptors"),So=require("@galacticcouncil/xc-core"),ac="Router",oc=t=>({build:async({source:s})=>{let{chain:n,destinationFeeSwap:o}=s;if(!o)throw new Error("Swap context not found.");let{aIn:r,aOut:i,route:u}=o,c=n,d=c.getMetadataAssetId(r),y=c.getMetadataAssetId(i),A=i.amount,k=r.amount+r.amount*BigInt(t.slippage)/100n;return new So.ExtrinsicConfig({module:ac,func:"buy",getTx:P=>P.getTypedApi(Ro.hydration).tx.Router.buy({asset_in:Number(d),asset_out:Number(y),amount_out:A,max_amount_in:k,route:u})})}}),_o=()=>({buy:oc});var Lo=require("@galacticcouncil/xc-core"),Do="Utility",rc=t=>{let e="batch_all";return{build:async s=>{let n=await Promise.all(t.map(o=>o.build(s)));return new Lo.ExtrinsicConfig({module:Do,func:e,getTx:o=>{let r=n.map(i=>i.getTx(o).decodedCall);return o.getUnsafeApi().tx[Do][e]({calls:r})}})}}},Ho=()=>({batchAll:rc});var yn=require("@galacticcouncil/xc-core"),fa=require("polkadot-api"),Mo=require("viem");var bt=(r=>(r.v1="V1",r.v2="V2",r.v3="V3",r.v4="V4",r.v5="V5",r))(bt||{}),me=(o=>(o.Teleport="Teleport",o.LocalReserve="LocalReserve",o.DestinationReserve="DestinationReserve",o.RemoteReserve="RemoteReserve",o))(me||{});var Wo="EthereumXcm",ic=t=>{let e="transact";return{build:async s=>{let n=await t.build(s),o="V1",r=(0,Mo.encodeFunctionData)({abi:yn.Abi[n.module],functionName:n.func,args:n.args});return new yn.ExtrinsicConfig({module:Wo,func:e,getTx:i=>i.getUnsafeApi().tx[Wo][e]({xcm_transaction:{type:o,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:fa.Binary.fromHex(n.address)},value:[0n,0n,0n,0n],input:fa.Binary.fromHex(r),access_list:void 0}}})})}}},pa=()=>({transact:ic});var Bt=require("@galacticcouncil/xc-core"),wn=require("@galacticcouncil/common");var Gt=require("@galacticcouncil/xc-core"),rr=require("polkadot-api"),p=require("@galacticcouncil/descriptors");var Vo=require("@galacticcouncil/descriptors"),fe=340282366920938463463374607431768211455n,Nt="0x0000000000000000000000000000000000000000000000000000000000000000",xs={parents:1,interior:Vo.XcmV3Junctions.Here()},Ko=0,Uo=1e3,No=1002,Oo=1,Ot="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var Go="0x0000000000000000000000000000000000000000";var Y=require("@galacticcouncil/descriptors"),tr=require("polkadot-api");var zo=require("@galacticcouncil/xc-core"),ha=require("@galacticcouncil/descriptors"),ba=require("polkadot-api"),qo=require("@polkadot-api/substrate-bindings"),jo=require("@polkadot-api/utils");function G(t){if(t.length===42&&t.startsWith("0x"))return ha.XcmV3Junction.AccountKey20({key:ba.FixedSizeBinary.fromHex(t),network:void 0});let s=(0,qo.getSs58AddressInfo)(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ha.XcmV3Junction.AccountId32({id:ba.FixedSizeBinary.fromHex((0,jo.toHex)(s.publicKey)),network:void 0})}function xn(t,e,s){return zo.acc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}var ya=require("@galacticcouncil/xc-core");function $o(t,e){let s=ya.multiloc.findNestedKey(t,"GeneralIndex"),n=ya.multiloc.findNestedKey(e,"GeneralIndex"),o=s&&s.GeneralIndex,r=n&&n.GeneralIndex;return Number.isNaN(o)||Number.isNaN(r)?!1:Number(o)>Number(r)}function z(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var gn={};es(gn,{ETHER_TOKEN_ADDRESS:()=>ga,bridgeLocation:()=>Qo,erc20Location:()=>mc,erc20LocationReanchored:()=>uc,parachainLocation:()=>cc});var Be=require("@galacticcouncil/descriptors"),xa=require("polkadot-api"),ga="0x0000000000000000000000000000000000000000",Jo=t=>Be.XcmV3Junction.GlobalConsensus(Be.XcmV3JunctionNetworkId.Ethereum({chain_id:BigInt(t)}));function Qo(t){return{parents:2,interior:Be.XcmV3Junctions.X1(Jo(t))}}function cc(t){return{parents:1,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.Parachain(t))}}function mc(t,e){return e===ga?Qo(t):{parents:2,interior:Be.XcmV3Junctions.X2([Jo(t),Be.XcmV3Junction.AccountKey20({key:xa.Binary.fromHex(e)})])}}function uc(t){return t===ga?{parents:0,interior:{type:"Here"}}:{parents:0,interior:Be.XcmV3Junctions.X1(Be.XcmV3Junction.AccountKey20({key:xa.Binary.fromHex(t)}))}}var Yo=require("@galacticcouncil/common"),Zo=require("@galacticcouncil/xc-core");function q(t,e){return lc(e)>=4?(0,Yo.encodeLocation)(t):dc(t)}function lc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function dc(t){return{Concrete:{...t}}}function fc(t){if(t&&t.interior!=="Here")return Zo.multiloc.findParachain(t)}function er(t,e,s,n){let o=s.getAssetXcmLocation(t),r=fc(o);if(n){if(r===void 0)throw new Error(`No reserve chain for "${t.originSymbol}" on ${s.name}`);if(r!==n.parachainId)throw new Error(`Wrong reserve chain for "${t.originSymbol}": expected ${r}, got ${n.parachainId}`)}if(!n&&r!==void 0){let i=e.parachainId===r,u=s.parachainId===r;if(!i&&!u)throw new Error(`Reserve chain ${r} required for "${t.originSymbol}"`)}}function Aa(t,e){let s="V4",n=q(z(e,t),s),o=tr.Binary.fromHex(Nt);return[Y.XcmV4Instruction.ReserveAssetDeposited([{id:xs,fun:Y.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:Y.XcmV3MultiassetFungibility.Fungible(fe)}]),Y.XcmV4Instruction.ClearOrigin(),Y.XcmV4Instruction.BuyExecution({fees:{id:xs,fun:Y.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:Y.XcmV3WeightLimit.Unlimited()}),Y.XcmV4Instruction.DepositAsset({assets:Y.XcmV4AssetAssetFilter.Wild(Y.XcmV4AssetWildAsset.AllCounted(2)),beneficiary:{parents:0,interior:Y.XcmV3Junctions.X1(G(Ot))}}),Y.XcmV4Instruction.SetTopic(o)]}var st=require("@galacticcouncil/descriptors");function sr(t,e){let s="V4",n=q(z(e,t),s),o=An("V4",G(Go),G(Ot),n,Nt);return[st.XcmV4Instruction.WithdrawAsset([{id:xs,fun:st.XcmV3MultiassetFungibility.Fungible(fe)},{id:n,fun:st.XcmV3MultiassetFungibility.Fungible(fe)}]),st.XcmV4Instruction.ClearOrigin(),st.XcmV4Instruction.BuyExecution({fees:{id:xs,fun:st.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:st.XcmV3WeightLimit.Unlimited()}),...o.value]}var B=require("@galacticcouncil/descriptors"),wa=require("polkadot-api");function nr(t,e){let s="V4",n=q(z(e,t),s),o=wa.Binary.fromHex(Nt);return[B.XcmV4Instruction.WithdrawAsset([{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(G(Ot))}}),B.XcmV4Instruction.SetTopic(o)]}function ka(t,e){let s="V4",n=q(z(e,t),s);return[B.XcmV4Instruction.BuyExecution({fees:{id:n,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:B.XcmV3Junctions.X1(G(Ot))}})]}function ar(t,e,s){let n="V4",o=q(z(e,t),n),r=wa.Binary.fromHex(Nt),i=ka(t,s);return[B.XcmV4Instruction.WithdrawAsset([{id:o,fun:B.XcmV3MultiassetFungibility.Fungible(fe)}]),B.XcmV4Instruction.ClearOrigin(),B.XcmV4Instruction.BuyExecution({fees:{id:o,fun:B.XcmV3MultiassetFungibility.Fungible(fe)},weight_limit:B.XcmV3WeightLimit.Unlimited()}),B.XcmV4Instruction.DepositReserveAsset({assets:B.XcmV4AssetAssetFilter.Wild(B.XcmV4AssetWildAsset.AllCounted(1)),dest:{parents:1,interior:B.XcmV3Junctions.X1(B.XcmV3Junction.Parachain(s.parachainId))},xcm:i}),B.XcmV4Instruction.SetTopic(r)]}var or=[Gt.ChainEcosystem.Polkadot,Gt.ChainEcosystem.Kusama],pc={parents:1,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.Parachain(1e3))},hc=t=>t.parents===1&&t.interior==="Here",bc=(t,e)=>!t.ecosystem||!e.ecosystem?!1:or.includes(t.ecosystem)&&or.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,ir=t=>{let e=Gt.multiloc.findGlobalConsensus(t);return e&&"Ethereum"in e},nt=(t,e,s)=>{if(bc(e,s)){let o=s.ecosystem===Gt.ChainEcosystem.Polkadot?p.XcmV3JunctionNetworkId.Polkadot():p.XcmV3JunctionNetworkId.Kusama();return{type:t,value:{parents:2,interior:p.XcmV3Junctions.X2([p.XcmV3Junction.GlobalConsensus(o),p.XcmV3Junction.Parachain(s.parachainId)])}}}if(s.parachainId===Ko)return{type:t,value:{parents:1,interior:p.XcmV3Junctions.Here()}};let n=s.key==="ethereum"?Uo:s.parachainId;return{type:t,value:{parents:1,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.Parachain(n))}}},zt=(t,e)=>({type:t,value:{parents:0,interior:p.XcmV3Junctions.X1(e)}}),Ca=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:hc(s)?pc:s}}:{type:e},Pt=(t,e)=>({id:t,fun:p.XcmV3MultiassetFungibility.Fungible(e)}),cr=(t,e,s)=>({type:t,value:[p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(s)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]});var An=(t,e,s,n,o)=>{let r=rr.Binary.fromHex(o);return{type:t,value:[p.XcmV4Instruction.SetAppendix([p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.All()),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(s)}})]),p.XcmV4Instruction.InitiateReserveWithdraw({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllOf({id:n,fun:p.XcmV2MultiassetWildFungibility.Fungible()})),reserve:gn.bridgeLocation(Oo),xcm:[p.XcmV4Instruction.BuyExecution({fees:{id:yc(n),fun:p.XcmV3MultiassetFungibility.Fungible(1n)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}}),p.XcmV4Instruction.SetTopic(r)]}),p.XcmV4Instruction.SetTopic(r)]}},yc=t=>{let e=Gt.multiloc.findNestedKey(t,"key");return e?{parents:0,interior:p.XcmV3Junctions.X1(p.XcmV3Junction.AccountKey20({key:e.key}))}:{parents:0,interior:p.XcmV3Junctions.Here()}},mr=(t,e,s,n,o,r)=>({type:t,value:[p.XcmV4Instruction.WithdrawAsset([{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)}]),p.XcmV4Instruction.BuyExecution({fees:{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.Transact({origin_kind:p.XcmV2OriginKind.SovereignAccount(),require_weight_at_most:{ref_time:r.refTime,proof_size:r.proofSize},call:o}),p.XcmV4Instruction.RefundSurplus(),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]}),ur=(t,e,s,n,o,r)=>({type:t,value:[p.XcmV4Instruction.WithdrawAsset([{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(o)}]),p.XcmV4Instruction.BuyExecution({fees:{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(o)},weight_limit:p.XcmV3WeightLimit.Unlimited()}),p.XcmV4Instruction.TransferAsset({assets:[{id:s,fun:p.XcmV3MultiassetFungibility.Fungible(n)}],beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(r)}}),p.XcmV4Instruction.RefundSurplus(),p.XcmV4Instruction.DepositAsset({assets:p.XcmV4AssetAssetFilter.Wild(p.XcmV4AssetWildAsset.AllCounted(1)),beneficiary:{parents:0,interior:p.XcmV3Junctions.X1(e)}})]});var pe="PolkadotXcm",xc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=q(z(i,n.fee),c),A=Pt(d,e),k=Pt(y,n.fee.amount),P="limited_reserve_transfer_assets";return new Bt.ExtrinsicConfig({module:pe,func:P,getTx:I=>{let N=I.getUnsafeApi().tx[pe][P];return s.key===n.fee.key?N({dest:nt(c,i,u),beneficiary:zt(c,r),assets:{type:c,value:[A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):$o(d,y)?N({dest:nt(c,i,u),beneficiary:zt(c,r),assets:{type:c,value:[k,A]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):N({dest:nt(c,i,u),beneficiary:zt(c,r),assets:{type:c,value:[A,k]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),gc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=Pt(d,e),A=nt(c,i,u),k=zt(c,r),P={type:c,value:[y]},I="limited_teleport_assets";return new Bt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),Ac=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=Pt(d,e),A=nt(c,i,u),k=zt(c,r),P={type:c,value:[y]},I="reserve_transfer_assets";return new Bt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0})})}}),wc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r=G(t),i=o.chain,u=n.chain,c="V4",d=q(z(i,s),c),y=Pt(d,e),A=nt(c,i,u),k=zt(c,r),P={type:c,value:[y]},I="transfer_assets";return new Bt.ExtrinsicConfig({module:pe,func:I,getTx:N=>N.getUnsafeApi().tx[pe][I]({dest:A,beneficiary:k,assets:P,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),kc=t=>({build:async({address:e,asset:s,amount:n,destination:o,messageId:r,sender:i,source:u,transact:c})=>{let d="V4",y=u.chain,A=o.chain,k=o.fee.amount,P=o.fee;c&&(A=c.chain,k=wn.big.toBigInt(c.fee.amount,c.fee.decimals),P=c.fee);let I=G(i),N=c||A.usesCexForwarding?xn(y,i,A):e,L=G(N),{transferType:Z}=t,ee=z(y,s),C=q(ee,d),At=z(y,P),rt=q(At,d),it=Pt(C,n),wt=Pt(rt,k),ct=s.isEqual(P),kt=nt(d,y,A),Zt={type:d,value:ct?[it]:[wt,it]},Qn=Ca(d,Z,C),Ms={type:d,value:ct?C:rt},Yn=Ca(d,Z,rt),Zn;ir(ee)?Zn=An(d,L,I,C,r):Zn=cr(d,L,Zt.value.length);let Ka="transfer_assets_using_type_and_then";return new Bt.ExtrinsicConfig({module:pe,func:Ka,getTx:hi=>hi.getUnsafeApi().tx[pe][Ka]({dest:kt,assets:Zt,assets_transfer_type:Qn,remote_fees_id:Ms,fees_transfer_type:Yn,custom_xcm_on_dest:Zn,weight_limit:{type:"Unlimited"}})})}}),Cc=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:n,source:o,transact:r}=s,i="V4";if(!r)throw new Error("Transact ctx configuration is missing.");let u=o.chain,c=r.chain,d=xn(u,n,c),y=G(d),{fee:A}=r,k=q(z(c,A),i),P=wn.big.toBigInt(e.fee,A.decimals);return new Bt.ExtrinsicConfig({module:pe,func:t,getTx:I=>I.getUnsafeApi().tx[pe][t]({dest:nt(i,u,c),message:mr(i,y,k,P,r.call,r.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:n,address:o,asset:r,sender:i,source:u,destination:c}=s,d="V4",y=u.chain,A=c.chain,k=xn(y,i,A),P=G(k),I=G(o),N=q(z(A,r),d),{fee:L}=c,Z=wn.big.toBigInt(e.fee,L.decimals),ee=n>L.amount?n-(L.amount+Z):n;return new Bt.ExtrinsicConfig({module:pe,func:t,getTx:C=>C.getUnsafeApi().tx[pe][t]({dest:nt(d,y,A),message:ur(d,P,N,ee,Z,I)})})}})}},Ta=()=>({limitedReserveTransferAssets:xc,limitedTeleportAssets:gc,reserveTransferAssets:Ac,transferAssets:wc,transferAssetsUsingTypeAndThen:kc,send:Cc});var pr=require("@galacticcouncil/xc-core");var gs=require("@galacticcouncil/descriptors"),lr=(t,e)=>({parents:1,interior:gs.XcmV3Junctions.X2([gs.XcmV3Junction.Parachain(t.parachainId),e])}),dr=(t,e)=>({id:t,fun:gs.XcmV3MultiassetFungibility.Fungible(e)});var fr="XTransfer",Tc=()=>({build:async({address:t,amount:e,asset:s,destination:n,source:o})=>{let r="V3",i=G(t),u=o.chain,c=n.chain,d=q(z(u,s),r),y=dr(d,e),A=lr(c,i),k="transfer";return new pr.ExtrinsicConfig({module:fr,func:k,getTx:P=>P.getUnsafeApi().tx[fr][k]([y,A,{refTime:5e9,proofSize:0}])})}}),va=()=>({transfer:Tc});function m(){return{assetConversion:Po,assets:Xo,balances:Io,ethereumXcm:pa,polkadotXcm:Ta,router:_o,utility:Ho,xTransfer:va}}function yt(t,e){return{prior:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,s]).build(n):s.build(n)}},priorMulti:function(s){return{build:async n=>t(n)?m().utility().batchAll([e,...s]).build(n):m().utility().batchAll([...s]).build(n)}}}}var Xt=require("@galacticcouncil/xc-core");var Pa={};es(Pa,{AssethubClient:()=>he,BaseClient:()=>Xe,HydrationClient:()=>Ye});var hr=require("@galacticcouncil/common"),kn=require("@galacticcouncil/descriptors"),Xe=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??kn.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:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async calculateDestinationFee(e,s){let n=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!n.success)throw Error("Can't query XCM weight.");let o=this.chain.getAssetXcmLocation(s);if(!o)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let r=(0,hr.encodeLocation)(o),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(n.value,kn.XcmVersionedAssetId.V4(r));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};var As=require("@galacticcouncil/descriptors"),br=require("@galacticcouncil/common"),Cn=require("@polkadot-api/substrate-bindings"),yr=require("@polkadot-api/utils");var he=class extends Xe{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=this.chain.getAssetXcmLocation(e),o=(0,br.encodeLocation)(n);if(s===0)return!0;let r=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(o):await this.api().query.Assets.Asset.getValue(Number(s));return r&&r.is_sufficient||!1}async checkIfFrozen(e,s){let n=this.chain.getAssetId(s);if(n===s.originSymbol)return!1;let o=await this.api().query.Assets.Account.getValue(Number(n),e);return o&&o.status.type==="Frozen"||!1}async getAssetMin(e){let s=this.chain.getAssetId(e);return(await this.api().query.Assets.Asset.getValue(Number(s)))?.min_balance||0n}async getBridgeDeliveryFee(e={defaultFee:2750872500000n}){let s=new TextEncoder().encode(":BridgeHubEthereumBaseFee:"),n=(0,yr.toHex)((0,Cn.Twox128)(s)),o=await this.client._request("state_getStorage",[n]);if(!o)return e.defaultFee;let r=Cn.u128.dec(o);return r===0n?e.defaultFee:r}async calculateDeliveryFee(e,s){let n=As.XcmVersionedLocation.V5({parents:1,interior:As.XcmV5Junctions.X1(As.XcmV5Junction.Parachain(s))}),o=await this.api().apis.XcmPaymentApi.query_delivery_fees(n,{type:"V4",value:e});if(!o.success)throw Error("Can't query XCM delivery fee.");let r=o.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!r)throw Error("Can't find XCM delivery fee in DOT.");let i=r.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};var xr=require("@galacticcouncil/descriptors");var Ye=class extends Xe{constructor(e){super(e,xr.hydration)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),n=Number(s),o=await this.api().query.AssetRegistry.Assets.getValue(n);return o?o.is_sufficient||!1:!0}async getFeeAsset(e){let s=await this.api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(e);return s?s.toString():"0"}async getAssetBalance(e,s){return s==="0"?this.getSystemAccountBalance(e):this.getTokensAccountsBalance(e,s)}async getSystemAccountBalance(e){let n=(await this.api().query.System.Account.getValue(e)).data,{free:o,frozen:r}=n;return BigInt(o)-BigInt(r)}async getTokensAccountsBalance(e,s){let n=Number(s),o=await this.api().query.Tokens.Accounts.getValue(e,n),{free:r,frozen:i}=o;return BigInt(r)-BigInt(i)}};function vc(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let n=s,o=e,r=Xt.Wormhole.fromChain(n),i=Xt.Wormhole.fromChain(o),u=n.getAssetId(t),c=n.getAssetDecimals(t);return{amount:await n.evmClient.getProvider().readContract({abi:Xt.Abi.TokenRelayer,address:r.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function Pc(){return{TokenRelayer:vc}}function Bc(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:n})=>{let o=n,r=s,i=Xt.Snowbridge.fromChain(o),u=new Xe(r),c=new he(t.hub),d=Aa(e,r),[y,A]=await Promise.all([u.calculateDestinationFee(d,w),c.calculateDeliveryFee(d,r.parachainId)]),k=A+bs(y,25n),P=o.getAssetId(e);return{amount:await o.evmClient.getProvider().readContract({abi:Xt.Abi.Snowbridge,address:i.getGateway(),args:[P,r.parachainId,k],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:k}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:n})=>{let o=n,r=new he(t.hub),i=sr(e,o),u=Aa(e,o),[c,d,y,A,k]=await Promise.all([r.getBridgeDeliveryFee(),r.calculateDeliveryFee(i,No),r.calculateDestinationFee(i,s),r.calculateDeliveryFee(u,o.parachainId),r.calculateDestinationFee(u,s)]);return{amount:c+d+bs(y,25n)+A+bs(k,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:d,assetHubDestinationFee:y,returnToSenderDeliveryFee:A,returnToSenderDestinationFee:k}}}})}}function Xc(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:n})=>{let o=s,r=n,i=t?.reserve;if(er(e,o,r,i),i){let k=new Xe(r),P=new Xe(i),I=ka(e,r),N=ar(e,i,r),[L,Z]=await Promise.all([k.calculateDestinationFee(I,e),P.calculateDestinationFee(N,e)]),ee=Z+L,C=bs(ee,20n),At=C-ee;return{amount:C,breakdown:{reserveFee:Z,destinationFee:L,margin:At}}}let u=new Xe(r),c=nr(e,r),d=await u.calculateDestinationFee(c,e),y=bs(d,20n),A=y-d;return{amount:y,breakdown:{totalFee:d,margin:A}}}})}}function f(){return{XcmPaymentApi:Xc,Snowbridge:Bc,Wormhole:Pc}}var Fc="0";function Ec(){return{build:async({address:t,chain:e})=>{let n=await new Ye(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),o=n?n.toString():Fc,r=e.findAssetById(o);return r?r.asset:$}}}var Ic=()=>({accountCurrencyMap:Ec});function Is(){return{multiTransactionPayment:Ic}}var be=require("@galacticcouncil/xc-core"),ue=require("@solana/spl-token"),Ze=require("@solana/web3.js"),Ba=require("@wormhole-foundation/sdk-connect"),Ft=require("@wormhole-foundation/sdk-solana-tokenbridge"),Rc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,d=be.Wormhole.fromChain(u),y=be.Wormhole.fromChain(t.moonchain),A=be.Precompile.Bridge,k=await be.mrl.createPayload(i.chain,s),P=new Ze.PublicKey(r),I=new Ba.UniversalAddress(A),N=y.getWormholeId(),L=P,Z=0,ee=Ze.Keypair.generate(),C=Ze.Keypair.generate(),At=await(0,ue.getMinimumBalanceForRentExemptAccount)(c.connection),rt=Ze.SystemProgram.createAccount({fromPubkey:L,newAccountPubkey:C.publicKey,lamports:At,space:ue.ACCOUNT_SIZE,programId:ue.TOKEN_PROGRAM_ID}),it=Ze.SystemProgram.transfer({fromPubkey:L,lamports:n,toPubkey:C.publicKey}),wt=(0,ue.createInitializeAccountInstruction)(C.publicKey,ue.NATIVE_MINT,L),ct=(0,Ft.createApproveAuthoritySignerInstruction)(d.getTokenBridge(),C.publicKey,L,n),kt=(0,Ft.createTransferNativeWithPayloadInstruction)(c.connection,d.getTokenBridge(),d.getCoreBridge(),r,ee.publicKey,C.publicKey,ue.NATIVE_MINT,Z,n,I.toUint8Array(),N,k.toU8a()),Zt=(0,ue.createCloseAccountInstruction)(C.publicKey,L,L);return new be.ProgramConfig({instructions:[rt,it,wt,ct,kt,Zt],signers:[ee,C],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Sc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,asset:o,source:r,sender:i,destination:u}=e,c=r.chain,d=c,y=be.Wormhole.fromChain(c),A=be.Wormhole.fromChain(t.moonchain),k=be.Precompile.Bridge,P=await be.mrl.createPayload(u.chain,s),I=new Ze.PublicKey(i),N=r.chain.getAssetId(o),L=new Ze.PublicKey(N),Z=await(0,ue.getAssociatedTokenAddress)(L,I),ee=new Ba.UniversalAddress(k),C=A.getWormholeId();if(await(0,Ft.getWrappedMeta)(d.connection,y.getTokenBridge(),L).catch(kt=>null).then(kt=>kt!=null))throw new Error("Wrapped assets not supported yet");let rt=0,it=Ze.Keypair.generate(),wt=(0,Ft.createApproveAuthoritySignerInstruction)(y.getTokenBridge(),Z,I,n),ct=(0,Ft.createTransferNativeWithPayloadInstruction)(d.connection,y.getTokenBridge(),y.getCoreBridge(),i,it.publicKey,Z,L,rt,n,ee.toUint8Array(),C,P.toU8a());return new be.ProgramConfig({instructions:[wt,ct],signers:[it],func:"TransferWithPayload",module:"TokenBridge"})}})}),gr=()=>({transferNativeWithPayload:Rc,transferTokenWithPayload:Sc});function Ar(){return{TokenBridge:gr}}function Tn(){return{Wormhole:Ar}}var xt=require("@galacticcouncil/xc-core"),wr=require("@mysten/sui/transactions"),vn=require("@mysten/sui/utils"),kr=require("@wormhole-foundation/sdk-connect"),Rs=require("@wormhole-foundation/sdk-sui"),_c=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:n,source:o,sender:r,destination:i}=e,u=o.chain,c=u,d=xt.Wormhole.fromChain(u),y=xt.Wormhole.fromChain(t.moonchain),A=0,k=xt.Precompile.Bridge,P=await xt.mrl.createPayload(i.chain,s),I=new kr.UniversalAddress(k),N=y.getWormholeId(),L=vn.SUI_TYPE_ARG,[Z,ee]=await Promise.all([(0,Rs.getPackageId)(c.client,d.coreBridge),(0,Rs.getPackageId)(c.client,d.tokenBridge)]),C=new wr.Transaction,[At]=C.splitCoins(C.gas,[C.pure.u64(n)]),[rt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[it]=C.moveCall({target:`${ee}::state::verified_asset`,arguments:[C.object(d.tokenBridge)],typeArguments:[L]}),wt=!1,ct=await(async()=>{let Ms=await(0,Rs.getOldestEmitterCapObjectId)(c.client,Z,r);if(Ms!==null)return C.object(Ms);{let[Yn]=C.moveCall({target:`${Z}::emitter::new`,arguments:[C.object(d.coreBridge)]});return wt=!0,Yn}})(),[kt,Zt]=C.moveCall({target:`${ee}::transfer_tokens_with_payload::prepare_transfer`,arguments:[ct,it,At,C.pure.u16(N),C.pure.vector("u8",I.toUint8Array()),C.pure.vector("u8",P.toU8a()),C.pure.u32(A)],typeArguments:[L]});C.moveCall({target:`${ee}::coin_utils::return_nonzero`,arguments:[Zt],typeArguments:[L]});let[Qn]=C.moveCall({target:`${ee}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(d.tokenBridge),kt],typeArguments:[L]});return C.moveCall({target:`${Z}::publish_message::publish_message`,arguments:[C.object(d.coreBridge),rt,Qn,C.object(vn.SUI_CLOCK_OBJECT_ID)]}),wt&&C.transferObjects([ct],C.pure.address(r)),new xt.MoveConfig({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),Cr=()=>({transferNativeWithPayload:_c});function Tr(){return{TokenBridge:Cr}}function Xa(){return{Wormhole:Tr}}var Ea={};es(Ea,{Tag:()=>Et});var Et=(o=>(o.Wormhole="Wormhole",o.Relayer="Relayer",o.Snowbridge="Snowbridge",o.Mrl="Mrl",o))(Et||{});var Ia=require("@galacticcouncil/xc-core");function ws(t,e){return new Ia.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:t,balance:a().evm().erc20()}},destination:{chain:l,asset:e,fee:{amount:0,asset:e}},contract:F().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})}function le(t,e){return new Ia.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:l,asset:e,fee:{amount:f().Snowbridge().calculateInboundFee({hub:v}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]})}var Dc=[new qt.AssetRoute({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().native()}},destination:{chain:l,asset:se,fee:{amount:0,asset:se}},contract:F().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]}),ws(xe,ae),ws(tt,ve),ws(g,J),ws(h,Te),ws(et,Ce)],Lc=[new qt.AssetRoute({source:{asset:H,balance:a().evm().native(),fee:{asset:H,balance:a().evm().native()},destinationFee:{balance:a().evm().native()}},destination:{chain:l,asset:H,fee:{amount:f().Snowbridge().calculateInboundFee({hub:v}),asset:H}},contract:F().Snowbridge().sendToken(),tags:["Snowbridge"]}),le(Ee,Ee),le(Re,Re),le(_e,_e),le(Oe,Oe),le(qe,qe),le(je,je),le(We,We),le(Le,Le),le(Ve,Ve),le(ze,ze),le($e,$e),le(Qe,Qe),le(g,Lt),le(h,Dt)],Mp=[new qt.AssetRoute({source:{asset:H,balance:a().evm().native(),destinationFee:{asset:H,balance:a().evm().erc20()}},destination:{chain:_,asset:se,fee:{amount:0,asset:se}},contract:F().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new qt.AssetRoute({source:{asset:xe,balance:a().evm().erc20(),fee:{asset:H,balance:a().evm().native()},destinationFee:{asset:xe,balance:a().evm().erc20()}},destination:{chain:_,asset:ae,fee:{amount:0,asset:ae}},contract:F().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],vr=new qt.ChainRoutes({chain:S,routes:[...Dc,...Lc]});var Pr=[vr];var Ss=require("@galacticcouncil/xc-core");var Hc=[new Ss.AssetRoute({source:{asset:ne,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:ne,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ne}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Ss.AssetRoute({source:{asset:ge,balance:a().substrate().tokens().accounts(),fee:{asset:ne,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:ge,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ge}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Br=new Ss.ChainRoutes({chain:Ht,routes:[...Hc]});var It=require("@galacticcouncil/xc-core");var Pn=require("@galacticcouncil/xc-core");var jt=0,Wc=t=>{let{source:e}=t;return!!e.feeSwap},Mc=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Xr=m().assetConversion().swapTokensForExactTokens({slippage:30});function Fr(t,e,s){return new Pn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().assets().account()},min:Tt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:h}},extrinsic:yt(Mc,Xr).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Bn(t,e,s){return new Pn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:t,balance:a().substrate().assets().account(),swap:!0},destinationFee:{balance:a().substrate().assets().account()},min:Tt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:yt(Wc,Xr).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function $t(t,e,s){return new Pn.AssetRoute({source:{asset:t,balance:a().substrate().assets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().assets().account()},min:Tt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function Jt(t){return Fr(t,l,.02)}function Er(t){return Fr(t,_,.25)}var Vc=[new It.AssetRoute({source:{asset:w,balance:a().substrate().system().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().system().account()},min:Tt().assets().asset()},destination:{chain:l,asset:w,fee:{amount:.001,asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new It.AssetRoute({source:{asset:X,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:l,asset:X,fee:{amount:1e-4,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),$t(h,l,.02),$t(g,l,.02),Jt(te),Jt(mt),Jt(ut),Jt(lt)],Kc=[new It.AssetRoute({source:{asset:X,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:ft,asset:X,fee:{amount:.001,asset:X}},extrinsic:m().polkadotXcm().transferAssets()})],Uc=[$t(h,_,.25),$t(g,_,.25),Er(te)],Nc=[$t(h,K,.03),$t(g,K,.03)],Oc=[new It.AssetRoute({source:{asset:O,balance:a().substrate().foreignAssets().account(),fee:{asset:w,balance:a().substrate().system().account(),extra:jt},destinationFee:{balance:a().substrate().foreignAssets().account()}},destination:{chain:Ct,asset:O,fee:{amount:2.5,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Ir=new It.ChainRoutes({chain:v,routes:[...Vc,...Kc,...Uc,...Nc,...Oc]}),Rr=new It.ChainRoutes({chain:ns,routes:[Bn(h,l,.02),Bn(g,l,.02),Bn(w,l,.001)]});var we=require("@galacticcouncil/xc-core");var Gc=[new we.AssetRoute({source:{asset:D,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:D,fee:{amount:.044306118,asset:D}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new we.AssetRoute({source:{asset:R,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:R,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:x,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:V,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:W,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:Ne,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:Ne,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ne}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:M,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:Q,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:Q,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:h,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new we.AssetRoute({source:{asset:g,balance:a().substrate().assets().account(),fee:{asset:D,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().assets().account()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Sr=new we.ChainRoutes({chain:ce,routes:[...Gc]});var ye=require("@galacticcouncil/xc-core");var zc=[new ye.AssetRoute({source:{asset:R,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:R,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:R}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:M,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:Q,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:Q,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:w,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ye.AssetRoute({source:{asset:D,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:D,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:D}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:x,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:V,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:V}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],qc=[new ye.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:v,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ye.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:R,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:v,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],_r=new ye.ChainRoutes({chain:K,routes:[...zc,...qc]});var _s=require("@galacticcouncil/xc-core");var jc=[new _s.AssetRoute({source:{asset:ke,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:ke,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ke}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new _s.AssetRoute({source:{asset:x,balance:a().substrate().ormlTokens().accounts(),fee:{asset:ke,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().ormlTokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Dr=new _s.ChainRoutes({chain:Wt,routes:[...jc]});var at=require("@galacticcouncil/xc-core");var $c="0",E=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===$c?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),de=()=>({asset:Is().multiTransactionPayment().accountCurrencyMap(),balance:E()});var Qt=require("@galacticcouncil/xc-core");var Jc=.9,Qc=1,Yc=.03,Xn=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Fn=m().router().buy({slippage:30});function T(t,e,s){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:e,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function Yt(t){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:yt(Xn,Fn).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function En(t,e,s){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:ns,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:Yc})])})}function Lr(t,e,s){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:e,asset:t,fee:{amount:s,asset:x}},extrinsic:yt(Xn,Fn).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Rt(t){return Lr(t,_,.08)}function Hr(t){return Lr(t,dt,.1)}function Wr(t,e,s,n,o,r){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{asset:t,balance:E()}},destination:{chain:s,asset:e,fee:{amount:n,asset:e}},extrinsic:yt(Xn,Fn).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:Jc})]),transact:{chain:_,fee:{amount:Qc,asset:x,balance:E()},extrinsic:m().ethereumXcm().transact(o)},tags:r})}function Ra(t,e,s){return Wr(t,e,s,0,F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenBridge()),F().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function St(t,e,s){return Wr(t,e,s,f().Wormhole().TokenRelayer().calculateRelayerFee(),F().Batch().batchAll([F().Erc20().approve(n=>n.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function oe(t,e,s){return new Qt.AssetRoute({source:{asset:t,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:s,asset:e,fee:{amount:f().Snowbridge().calculateOutboundFee({hub:v}),asset:w}},extrinsic:yt(Xn,Fn).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Zc=[T(ne,Ht),T(ge,Ht)],e0=[new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:X,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:X,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:h,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new at.AssetRoute({source:{asset:g,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:v,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:g}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),Yt(te),Yt(mt),Yt(ut),Yt(lt)],t0=[T(D,ce),T(R,ce,K),T(x,ce),T(V,ce),T(W,ce),T(Ne,ce),T(M,ce,K),T(Q,ce),T(h,ce,v),T(g,ce,v)],s0=[T(R,K),T(M,K),T(Q,K),T(w,K),T(D,K),T(x,K),T(V,K),T(h,K,v),T(g,K,v),new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:K,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],n0=[T(ke,Wt),T(x,Wt)],a0=[T(V,Pe),T(W,Pe),T($,Pe),T(h,Pe,v),T(g,Pe,v),new at.AssetRoute({source:{asset:M,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:Pe,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new at.AssetRoute({source:{asset:w,balance:E(),fee:de(),destinationFee:{balance:E()}},destination:{chain:Pe,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Mt}),asset:w}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],o0=[T($,_),T(x,_),T(h,_,v),T(g,_,v),Rt(ae),Rt(Ce),Rt(J),Rt(Te),Rt(ve),Rt(se),Rt(j)],r0=[T(Ae,dt),T(x,dt),Hr(J)],i0=[T(O,Ct)],c0=[T(Je,us)],m0=[T(Se,as)],u0=[T(De,rs)],l0=[T(He,is)],d0=[T(Me,ls)],f0=[T(Ue,ms)],p0=[T(Ke,cs)],h0=[T(Ge,os)],b0=[T(Ie,ss)],y0=[St(ae,xe,S),St(se,H,S),St(ve,tt,S),St(Te,h,S),St(J,g,S),Ra(Ce,et,S)],x0=[oe(H,H,S),oe(Ee,Ee,S),oe(Re,Re,S),oe(_e,_e,S),oe(Oe,Oe,S),oe(qe,qe,S),oe(je,je,S),oe($e,$e,S),oe(We,We,S),oe(Le,Le,S),oe(Ve,Ve,S),oe(ze,ze,S),oe(Qe,Qe,S),oe(Lt,g,S),oe(Dt,h,S)],g0=[St(j,j,Vt),Ra(re,re,Vt)],A0=[St(ie,ie,ds)],w0=[En(h,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),En(g,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),En(w,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Mr=new at.ChainRoutes({chain:l,routes:[...Zc,...b0,...e0,...t0,...s0,...n0,...w0,...m0,...h0,...x0,...y0,...a0,...u0,...l0,...d0,...o0,...i0,...p0,...f0,...g0,...A0,...c0,...r0]});var ot=require("@galacticcouncil/xc-core");var k0=[new ot.AssetRoute({source:{asset:W,balance:a().substrate().tokens().accounts(),destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:V,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:V,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:$,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:$,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:M,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:M,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:K}),asset:M}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:h,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:g,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:g,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:v}),asset:g}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ot.AssetRoute({source:{asset:w,balance:a().substrate().tokens().accounts(),fee:{asset:W,balance:a().substrate().tokens().accounts()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:w,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:w}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Vr=new ot.ChainRoutes({chain:Pe,routes:[...k0]});var gt=require("@galacticcouncil/xc-core");var Sa=require("@galacticcouncil/xc-core");function C0(t,e,s){return new Sa.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().Xtokens().transfer()})}function T0(t,e,s){return new Sa.AssetRoute({source:{asset:t,balance:a().evm().erc20(),fee:{asset:x,balance:a().evm().erc20()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:F().Xtokens().transfer()})}function _t(t,e){return C0(t,l,e)}function In(t,e){return T0(t,l,e)}var v0=[new gt.AssetRoute({source:{asset:x,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:x,fee:{amount:.05,asset:x}},contract:F().Xtokens().transfer()}),In($,.6),In(h,.3),In(g,.3),_t(ae,.004),_t(Ce,.004),_t(J,.004),_t(Te,.004),_t(ve,1e-7),_t(se,2e-6),_t(j,2e-5)],P0=[new gt.AssetRoute({source:{asset:te,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:te,fee:{amount:.18,asset:h}},contract:F().Xtokens().transferMultiCurrencies()}),new gt.AssetRoute({source:{asset:h,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:h,fee:{amount:.18,asset:h}},contract:F().Xtokens().transfer()}),new gt.AssetRoute({source:{asset:g,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{balance:a().evm().erc20()}},destination:{chain:v,asset:g,fee:{amount:.18,asset:g}},contract:F().Xtokens().transfer()})],nb=[new gt.AssetRoute({source:{asset:se,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{asset:se,balance:a().evm().erc20()}},destination:{chain:S,asset:H,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:H}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new gt.AssetRoute({source:{asset:ae,balance:a().evm().erc20(),fee:{asset:x,balance:a().substrate().system().account()},destinationFee:{asset:ae,balance:a().evm().erc20()}},destination:{chain:S,asset:xe,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:xe}},contract:F().Batch().batchAll([F().Erc20().approve(t=>t.getTokenRelayer()),F().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Kr=new gt.ChainRoutes({chain:_,routes:[...v0,...P0]});var Ds=require("@galacticcouncil/xc-core");var B0=[new Ds.AssetRoute({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:O,fee:{amount:.01,asset:O}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],X0=[new Ds.AssetRoute({source:{asset:O,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:v,asset:O,fee:{amount:.1,asset:O}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Ur=new Ds.ChainRoutes({chain:Ct,routes:[...B0,...X0]});var Rn=require("@galacticcouncil/xc-core");var F0=[new Rn.AssetRoute({source:{asset:Je,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Je,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Je}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Nr=new Rn.ChainRoutes({chain:us,routes:[...F0]});var ks=require("@galacticcouncil/xc-core");var E0=[new ks.AssetRoute({source:{asset:Ae,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ae,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ae}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ks.AssetRoute({source:{asset:x,balance:a().substrate().tokens().accounts(),fee:{asset:Ae,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ks.AssetRoute({source:{asset:J,balance:a().substrate().tokens().accounts(),fee:{asset:Ae,balance:a().substrate().system().account()},destinationFee:{balance:a().substrate().tokens().accounts()}},destination:{chain:l,asset:J,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Or=new ks.ChainRoutes({chain:dt,routes:[...E0]});var Sn=require("@galacticcouncil/xc-core");var I0=[new Sn.AssetRoute({source:{asset:Se,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Se,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Se}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Gr=new Sn.ChainRoutes({chain:as,routes:[...I0]});var _n=require("@galacticcouncil/xc-core");var R0=[new _n.AssetRoute({source:{asset:De,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:De,fee:{amount:.03,asset:De}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],zr=new _n.ChainRoutes({chain:rs,routes:[...R0]});var Dn=require("@galacticcouncil/xc-core");var S0=[new Dn.AssetRoute({source:{asset:Ue,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ue,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ue}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],qr=new Dn.ChainRoutes({chain:ms,routes:[...S0]});var Ln=require("@galacticcouncil/xc-core");var _0=[new Ln.AssetRoute({source:{asset:Ge,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ge,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ge}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],jr=new Ln.ChainRoutes({chain:os,routes:[..._0]});var Hn=require("@galacticcouncil/xc-core");var D0=[new Hn.AssetRoute({source:{asset:Ie,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ie,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Ie}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],$r=new Hn.ChainRoutes({chain:ss,routes:[...D0]});var Wn=require("@galacticcouncil/xc-core");var L0=[new Wn.AssetRoute({source:{asset:He,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:He,fee:{amount:2,asset:He}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Jr=new Wn.ChainRoutes({chain:is,routes:[...L0]});var Mn=require("@galacticcouncil/xc-core");var H0=[new Mn.AssetRoute({source:{asset:Me,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Me,fee:{amount:.03,asset:Me}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Qr=new Mn.ChainRoutes({chain:ls,routes:[...H0]});var Vn=require("@galacticcouncil/xc-core");var W0=[new Vn.AssetRoute({source:{asset:Ke,balance:a().substrate().system().account(),destinationFee:{balance:a().substrate().system().account()}},destination:{chain:l,asset:Ke,fee:{amount:.205,asset:Ke}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Yr=new Vn.ChainRoutes({chain:cs,routes:[...W0]});var Zr=[Br,$r,Ir,Rr,Sr,_r,Dr,Mr,Vr,Kr,Ur,Yr,Nr,Or,Gr,zr,qr,jr,Jr,Qr];var Ls=require("@galacticcouncil/xc-core");var M0=[new Ls.AssetRoute({source:{asset:j,balance:a().solana().native(),destinationFee:{asset:j,balance:a().solana().native()}},destination:{chain:l,asset:j,fee:{amount:0,asset:j}},program:Tn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]}),new Ls.AssetRoute({source:{asset:re,balance:a().solana().token(),fee:{asset:j,balance:a().solana().native()},destinationFee:{asset:re,balance:a().solana().token()}},destination:{chain:l,asset:re,fee:{amount:0,asset:re}},program:Tn().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})],ei=new Ls.ChainRoutes({chain:Vt,routes:[...M0]});var ti=[ei];var Kn=require("@galacticcouncil/xc-core");var V0=[new Kn.AssetRoute({source:{asset:ie,balance:a().sui().native(),destinationFee:{asset:ie,balance:a().sui().native()}},destination:{chain:l,asset:ie,fee:{amount:0,asset:ie}},move:Xa().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:_}),tags:["Mrl","Wormhole"]})],si=new Kn.ChainRoutes({chain:ds,routes:[...V0]});var ni=[si];var Hs=require("@galacticcouncil/xc-core");var K0=require("@galacticcouncil/xc-core");var _a=0;var U0=new Hs.AssetRoute({source:{asset:X,balance:a().substrate().system().account(),fee:{asset:X,balance:a().substrate().system().account(),extra:_a},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:v,asset:X,fee:{amount:.002,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),N0=new Hs.AssetRoute({source:{asset:X,balance:a().substrate().system().account(),fee:{asset:X,balance:a().substrate().system().account(),extra:_a},destinationFee:{balance:a().substrate().system().account()}},destination:{chain:fs,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),ai=new Hs.ChainRoutes({chain:ft,routes:[N0,U0]});var Ws=require("@galacticcouncil/xc-core");var O0="0",Cs=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===O0?a().substrate().system().account().build({address:t,asset:e,chain:s}):a().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),Da=()=>({asset:Is().multiTransactionPayment().accountCurrencyMap(),balance:Cs()});var G0=[new Ws.AssetRoute({source:{asset:h,balance:Cs(),fee:Da(),destinationFee:{balance:Cs()}},destination:{chain:ft,asset:h,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:h}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],z0=[new Ws.AssetRoute({source:{asset:X,balance:Cs(),fee:Da(),destinationFee:{balance:Cs()}},destination:{chain:ft,asset:X,fee:{amount:.0012,asset:X}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],oi=new Ws.ChainRoutes({chain:fs,routes:[...G0,...z0]});var ri=[ai,oi];var q0=[...Pr,...Zr,...ti,...ni,...ri],ii=new Map(q0.map(t=>[t.chain.key,t]));var La=require("@galacticcouncil/xc-core");var Ts=require("@galacticcouncil/xc-core");var Un=class extends Ts.TransferValidation{async validate(e){let{source:s}=e,{chain:n,fee:o,feeBalance:r}=s;if(r.amount<o.amount)throw new Ts.TransferValidationError("Insufficient_Fee_Balance",{amount:o.toDecimal(),asset:o.symbol,chain:n.name,error:"fee.insufficientBalance"})}},Nn=class extends Ts.TransferValidation{async skipFor(e){let{asset:s,source:n}=e,{enabled:o}=n.destinationFeeSwap||{};return s.isEqual(n.destinationFee)||!!o}async validate(e){if(await this.skipFor(e))return;let{source:n}=e,{chain:o,destinationFee:r,destinationFeeBalance:i}=n,u=await this.getMin(o,r),c=r.copyWith({amount:r.amount+u});if(i.amount<c.amount)throw new Ts.TransferValidationError("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:o.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new he(e).getAssetMin(s);let o=e.getAssetMin(s)*10**s.decimals;return BigInt(o)}};var vs=require("@galacticcouncil/xc-core");var On=class extends vs.TransferValidation{async skipFor(e){let{asset:s,destination:n}=e,o=n.chain;return await new he(o).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain;if(await new he(r).getSystemAccountBalance(n)===0n)throw new vs.TransferValidationError("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:o.chain.name,error:"account.insufficientDeposit"})}},Gn=class extends vs.TransferValidation{async validate(e){let{asset:s,sender:n,source:o}=e,r=o.chain;if(await new he(r).checkIfFrozen(n,s))throw new vs.TransferValidationError("Asset_Frozen",{asset:s.originSymbol,chain:o.chain.name,error:"asset.frozen"})}};var Ps=require("@galacticcouncil/xc-core");var j0=12,$0=1,J0=18,zn=class extends Ps.TransferValidation{async skipFor(e){let{destination:s}=e,n=s.chain,o=new Ye(n),r=s.balance.amount>0n,i=await o.checkIfSufficient(s.balance);return r||i}async validate(e){if(await this.skipFor(e))return;let{address:n,destination:o}=e,r=o.chain,i=new Ye(r),u=await i.getFeeAsset(n),c=r.findAssetById(u),d=c.min||$0,y=c.decimals||j0,A=d*Math.pow(10,y),k=await i.getAssetBalance(n,u);if(BigInt(A*1.1)>k)throw new Ps.TransferValidationError("Insufficient_Ed",{amount:A,asset:c.asset.originSymbol,chain:r.name,error:"account.insufficientDeposit"})}},qn=class extends Ps.TransferValidation{async skipFor(e){let{source:s,transact:n}=e,{enabled:o}=s.destinationFeeSwap||{};return!(!!n&&n.chain.key==="moonbeam")||!!o}async validate(e){if(await this.skipFor(e))return;let{sender:n,source:o}=e,r=o.chain,i=new Ye(r),u=r.getBalanceAssetId(x),c=r.getAssetDecimals(x)||J0,d=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(n,u.toString())<BigInt(d))throw new Ps.TransferValidationError("Insufficient_Ed",{amount:1,asset:x.originSymbol,chain:r.name,error:"destFee.insufficientBalance"})}};var Fe={isAny:()=>!0,isHydration:t=>t instanceof La.Parachain&&t.parachainId===2034,isHub:t=>t instanceof La.Parachain&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},ci=[new Un(Fe.isAny,Fe.isAny),new Nn(Fe.isAny,Fe.isAny),new On(Fe.isAny,Fe.isHub),new Gn(Fe.isHub,Fe.isAny),new zn(Fe.isAny,Fe.isHydration),new qn(Fe.isHydration,Fe.isAny)];var Va={};es(Va,{AssethubDex:()=>Ma,HydrationDex:()=>Ha});var Bs=require("@galacticcouncil/sdk-next"),ui=require("@galacticcouncil/common");var mi=(t,e=new Map)=>s=>{let n;return e.has(s)?e.get(s):(e.set(s,n=t(s)),n)};var{PoolType:jn}=Bs.pool,{TradeRouteBuilder:Q0,TradeRouter:Y0}=Bs.sor,{TxBuilderFactory:Z0}=Bs.tx,Ha=class{chain;client;poolCtx;txBuilder;getCtx=mi(async e=>{console.log("init swap router",e,"\u2705");let s=new Y0(this.poolCtx);return s.withFilter({useOnly:[jn.Aave,jn.Omni,jn.Stable,jn.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new Ye(this.chain),this.txBuilder=new Z0(s.client,s.evm)}async getCalldata(e,s,n,o,r=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(n)),c=o.amount,d=await this.getCtx(1),y=await d.getMostLiquidRoute(i,u),A=await d.getBuy(i,u,c,y);return(await(await this.txBuilder.trade(A).withBeneficiary(e).withSlippage(r).build()).get().getEncodedData()).asHex()}async getQuote(e,s,n,o){let r=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=n.amount,c=await this.getCtx(1);try{let d=await c.getMostLiquidRoute(r,i),y=await c.getBuy(r,i,u,d);return{amount:y.amountIn,route:Q0.build(y.swaps)}}catch(d){if(o)return{amount:await this.getFallbackPrice(e,n.amount)};throw d}}async getFallbackPrice(e,s){let n=this.chain.getAssetId(e),o=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!o)throw new Error(`No price found for asset ${e}`);let r=o*s,i=Math.pow(10,ui.RUNTIME_DECIMALS);return r/BigInt(i)}};var Wa=require("@galacticcouncil/common"),Ma=class{chain;client;constructor(e){this.chain=e,this.client=new he(this.chain)}async getCalldata(e,s,n,o){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,n){let o=this.chain.getAssetXcmLocation(e),r=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens((0,Wa.encodeLocation)(o),(0,Wa.encodeLocation)(r),n.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};var pi=require("@galacticcouncil/xc-core");var li=require("@galacticcouncil/xc-core");function $n(t){let{id:e,origin:s,symbol:n}=t,o=n.toLowerCase();return new li.Asset({key:[o,s,e].join("_"),originSymbol:n})}function di(t){let{decimals:e,id:s}=t;return{asset:$n(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function fi(t){let{decimals:e,id:s,internalId:n,origin:o}=t;return{asset:$n(t),decimals:e,id:n,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:o},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Jn=class extends pi.ConfigService{registerExternal(e){let s=this.getChain("hydration"),n=this.getChain("assethub"),o=r=>!!s.findAssetById(r.internalId.toString());e.filter(r=>!o(r)&&r.origin===1e3).forEach(r=>{let i=$n(r),u=di(r),c=fi(r);console.log("\u{1F480} Registering "+i.key),n.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(n,Jt(i)),this.updateChainRoute(s,Yt(i))})}};0&&(module.exports={HydrationConfigService,assetsMap,builders,chainsMap,clients,dex,routesMap,tags,validations});
package/build/index.mjs CHANGED
@@ -1 +1 @@
1
- var lr=Object.defineProperty;var rs=(t,e)=>{for(var s in e)lr(t,s,{get:e[s],enumerable:!0})};import{Asset as h}from"@galacticcouncil/xc-core";var Te=new h({key:"aave",originSymbol:"AAVE"}),ee=new h({key:"aca",originSymbol:"ACA"}),ve=new h({key:"ajun",originSymbol:"AJUN"}),S=new h({key:"astr",originSymbol:"ASTR"}),E=new h({key:"bnc",originSymbol:"BNC"}),Us=new h({key:"bsx",originSymbol:"BSX"}),be=new h({key:"cfg",originSymbol:"CFG"}),Pe=new h({key:"cfg_new",originSymbol:"CFG"}),Be=new h({key:"cru",originSymbol:"CRU"}),de=new h({key:"dai",originSymbol:"DAI"}),te=new h({...de,key:"dai_mwh"}),tt=new h({key:"ded",originSymbol:"DED"}),A=new h({key:"dot",originSymbol:"DOT"}),st=new h({key:"dota",originSymbol:"DOTA"}),D=new h({key:"eth",originSymbol:"ETH"}),Xe=new h({key:"ena",originSymbol:"ENA"}),y=new h({key:"glmr",originSymbol:"GLMR"}),z=new h({key:"hdx",originSymbol:"HDX"}),W=new h({key:"ibtc",originSymbol:"IBTC"}),L=new h({key:"intr",originSymbol:"INTR"}),ne=new h({key:"jitoSol",originSymbol:"jitoSOL"}),dr=new h({key:"kar",originSymbol:"KAR"}),Fe=new h({key:"kilt",originSymbol:"KILT"}),P=new h({key:"ksm",originSymbol:"KSM"}),Ee=new h({key:"ldo",originSymbol:"LDO"}),Ie=new h({key:"laos",originSymbol:"LAOS"}),Re=new h({key:"lbtc",originSymbol:"LBTC"}),Se=new h({key:"ewt",originSymbol:"EWT"}),fe=new h({key:"ldot",originSymbol:"LDOT"}),_e=new h({key:"link",originSymbol:"LINK"}),K=new h({key:"myth",originSymbol:"MYTH"}),Ns=new h({key:"nodl",originSymbol:"NODL"}),De=new h({key:"neuro",originSymbol:"NEURO"}),Le=new h({key:"pen",originSymbol:"PEN"}),He=new h({key:"pha",originSymbol:"PHA"}),We=new h({key:"paxg",originSymbol:"PAXG"}),Y=new h({key:"pink",originSymbol:"PINK"}),Me=new h({key:"ring",originSymbol:"RING"}),Ve=new h({key:"sky",originSymbol:"SKY"}),q=new h({key:"sol",originSymbol:"SOL"}),ae=new h({key:"sui",originSymbol:"SUI"}),Os=new h({key:"sub",originSymbol:"SUB"}),Ke=new h({key:"susde",originSymbol:"sUSDe"}),je=new h({key:"susds",originSymbol:"sUSDS"}),ye=new h({...je,key:"susds_mwh"}),Ue=new h({key:"tbtc",originSymbol:"tBTC"}),Gs=new h({key:"teer",originSymbol:"TEER"}),qs=new h({key:"tnkr",originSymbol:"TNKR"}),Ne=new h({key:"trac",originSymbol:"TRAC"}),Oe=new h({key:"unq",originSymbol:"UNQ"}),p=new h({key:"usdt",originSymbol:"USDT"}),xe=new h({...p,key:"usdt_mwh"}),At=new h({...p,key:"usdt_eth"}),x=new h({key:"usdc",originSymbol:"USDC"}),j=new h({...x,key:"usdc_mwh"}),wt=new h({...x,key:"usdc_eth"}),$=new h({key:"vastr",originSymbol:"vASTR"}),H=new h({key:"vdot",originSymbol:"vDOT"}),Wt=new h({key:"weth",originSymbol:"WETH"}),Z=new h({...Wt,key:"weth_mwh"}),$e=new h({key:"wbtc",originSymbol:"WBTC"}),ge=new h({...$e,key:"wbtc_mwh"}),Ge=new h({key:"wsteth",originSymbol:"wstETH"}),nt=new h({key:"wud",originSymbol:"WUD"}),zs=new h({key:"xrt",originSymbol:"XRT"}),pe=new h({key:"ztg",originSymbol:"ZTG"}),fr=[Te,ee,ve,S,Us,be,Pe,Be,E,de,te,tt,A,st,Xe,D,y,z,W,L,dr,Fe,P,Ee,Ie,Re,Se,ne,fe,_e,K,De,Ns,We,He,Le,Y,Me,Ve,q,ae,Os,Ke,je,ye,Gs,qs,Ne,Ue,Oe,x,j,wt,p,xe,At,$,H,$e,ge,Wt,Z,Ge,nt,zs,pe],pr=new Map(fr.map(t=>[t.key,t]));import{ChainEcosystem as hr,EvmChain as br}from"@galacticcouncil/xc-core";import{mainnet as yr}from"viem/chains";var I=new br({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Te,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Wt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:de,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Xe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ke,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ue,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:$e,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Re,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Ee,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:_e,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:We,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ve,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ne,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:hr.Ethereum,evmChain:yr,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 Xn=[I];import{ChainEcosystem as Cr,EvmParachain as Tr}from"@galacticcouncil/xc-core";import{defineChain as vr}from"viem";import{Blake2256 as xr,getSs58AddressInfo as gr}from"@polkadot-api/substrate-bindings";import{toHex as Fn}from"@polkadot-api/utils";var Ar="evm:",fs=new TextEncoder().encode(Ar),ps=class{async toH160(e,s){if(!s)return this.toDefaultH160(e);try{let a=await s.getChainSpecData(),o=await s.getTypedApi(a.genesisHash).query.EvmAccounts.evm_addresses(e);if(o)return o}catch{}return this.toDefaultH160(e)}toDefaultH160(e){let s=gr(e);if(!s.isValid)throw new Error("Invalid SS58 address");let a=s.publicKey;if(a.length>=24&&a.slice(0,4).every((u,c)=>u===fs[c]))return Fn(a.slice(4,24));let o=new Uint8Array(fs.length+a.length);o.set(fs),o.set(a,fs.length);let i=xr(o);return Fn(i.slice(0,20))}};import{getSs58AddressInfo as wr}from"@polkadot-api/substrate-bindings";var kr="ETH\0",hs=class{async toH160(e){let s=wr(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let a=s.publicKey,r=Buffer.from(kr),o=a.slice(r.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Pr=new ps,Br=vr({id:787,name:"Acala",network:"acala",nativeCurrency:{decimals:18,name:"ACA",symbol:"ACA"},rpcUrls:{public:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]},default:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]}},blockExplorers:{default:{name:"Acala Blockscout",url:"https://blockscout.acala.network"}},testnet:!1}),kt=new Tr({assetsData:[{asset:ee,id:{Token:ee.originSymbol},metadataId:{NativeAssetId:{Token:ee.originSymbol}},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:fe,decimals:10,id:{Token:fe.originSymbol},metadataId:{NativeAssetId:{Token:fe.originSymbol}},min:.05,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,decimals:18,id:{ForeignAsset:0},min:.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Cr.Polkadot,evmChain:Br,evmResolver:Pr,explorer:"https://acala.subscan.io",genesisHash:"0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c",key:"acala",name:"Acala",parachainId:2e3,ss58Format:10,wormhole:{id:12,coreBridge:"0xa321448d90d4e5b0A732867c18eA198e75CAC48E",tokenBridge:"0xae9d7fe007b3327AA64A32824Aaac52C42a6E624"},ws:"wss://acala-rpc.n.dwellir.com"});import{ChainEcosystem as Xr,Parachain as Fr}from"@galacticcouncil/xc-core";var Mt=new Fr({assetsData:[{asset:ve,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Xr.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as Er,Parachain as En}from"@galacticcouncil/xc-core";var In={assetsData:[{asset:A,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:Y,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:tt,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:st,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:K,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:P,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:Er.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://polkadot-asset-hub-rpc.polkadot.io","wss://asset-hub-polkadot-rpc.n.dwellir.com"]},T=new En({...In,key:"assethub",name:"AssetHub Polkadot"}),Vt=new En({...In,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Ir,Parachain as Rr}from"@galacticcouncil/xc-core";var oe=new Rr({assetsData:[{asset:S,xcmLocation:{parents:0,interior:"Here"}},{asset:A,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:E,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,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:L,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:He,id:"18446744073709551622",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:H,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ir.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Sr,Parachain as _r}from"@galacticcouncil/xc-core";var Dr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new _r({assetsData:[{asset:E,id:{Native:E.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,id:{Token2:0},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset: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:Y,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:S,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:y,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:Sr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Dr});import{ChainEcosystem as Lr,Parachain as Hr}from"@galacticcouncil/xc-core";var Wr=["wss://rpc-centrifuge.luckyfriday.io","wss://fullnode.centrifuge.io"],Ct=new Hr({assetsData:[{asset:be,id:"Native",xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:{ForeignAsset:5},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:{ForeignAsset:4},decimals:18,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Lr.Polkadot,explorer:"https://centrifuge.subscan.io",genesisHash:"0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82",key:"centrifuge",name:"Centrifuge",parachainId:2031,ss58Format:36,ws:Wr});import{ChainEcosystem as Mr,Parachain as Vr}from"@galacticcouncil/xc-core";var Kt=new Vr({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Mr.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"]});import{ChainEcosystem as Kr,EvmParachain as Ur}from"@galacticcouncil/xc-core";import{darwinia as Nr}from"viem/chains";var Ut=new Ur({assetsData:[{asset:Me,id:"SelfReserve",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Kr.Polkadot,evmChain:Nr,explorer:"https://darwinia.subscan.io",genesisHash:"0xf0b8924b12e8108550d28870bc03f7b45a947e1b2b9abf81bfb0b89ecb60570e",key:"darwinia",name:"Darwinia",parachainId:2046,ss58Format:18,usesH160Acc:!0,ws:"wss://darwinia-rpc.dwellir.com"});import{ChainEcosystem as Or,EvmParachain as Gr}from"@galacticcouncil/xc-core";import{defineChain as qr}from"viem";var zr=new hs,js=["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"],$s=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],jr=qr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:js,webSocket:$s},default:{http:js,webSocket:$s}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),l=new Gr({assetsData:[{asset:z,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Te,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ee,decimals:12,id:1000099,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:E,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:be,decimals:18,id:13,min:.033,xcmLocation:{parents:1,interior:{X2:[{Parachain:2031},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,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:tt,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:A,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:st,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:te,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Xe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:y,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:L,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ne,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Fe,decimals:15,id:28,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:2086}}}},{asset:Se,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Ee,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:P,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Ie,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Re,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:fe,decimals:10,id:1000100,min:.011,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:We,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:K,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:De,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:Ns,decimals:11,id:26,min:1.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2026},{PalletInstance:2}]}}},{asset:Le,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Y,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:He,decimals:12,id:8,min:.055,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:Me,decimals:18,id:31,min:1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ve,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Os,decimals:10,id:24,min:.02,xcmLocation:{parents:1,interior:{X1:{Parachain:2101}}}},{asset:q,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ae,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ke,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:je,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ue,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ne,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Oe,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:j,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:wt,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:xe,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:At,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:$,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$e,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ge,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Wt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Z,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ge,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:nt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:pe,decimals:10,id:12,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2092},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Or.Polkadot,evmChain:jr,evmResolver:zr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:$s,rpcs:js});import{ChainEcosystem as $r,Parachain as Jr}from"@galacticcouncil/xc-core";var Ae=new Jr({assetsData:[{asset:L,decimals:10,id:{Token:L.originSymbol}},{asset:W,decimals:8,id:{Token:W.originSymbol}},{asset:A,decimals:10,id:{Token:A.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:z,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:H,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:$r.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});import{ChainEcosystem as Qr,Parachain as Yr}from"@galacticcouncil/xc-core";var Nt=new Yr({assetsData:[{asset:Fe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Qr.Polkadot,explorer:"https://spiritnet.subscan.io",genesisHash:"0x411f057b9107718c9624d6aa4a3f23c1653898297f3d4d529d9bb6511a39dd21",key:"kilt",name:"Kilt",parachainId:2086,ss58Format:38,ws:"wss://spiritnet.kilt.io"});import{ChainEcosystem as Zr,Parachain as ei}from"@galacticcouncil/xc-core";var Ot=new ei({assetsData:[{asset:Ie,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Zr.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as ti,EvmParachain as si}from"@galacticcouncil/xc-core";import{defineChain as ni}from"viem";var ai=ni({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}),R=new si({assetsData:[{asset:y,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:te,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:q,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ne,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ye,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ae,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:j,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:xe,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ge,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Z,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:ee,decimals:12,id:"0xffffffffa922fef94566104a6e5a35a4fcddaa9f",xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:z,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:Y,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{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:ti.Polkadot,evmChain:ai,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as oi,Parachain as ri}from"@galacticcouncil/xc-core";var lt=new ri({assetsData:[{asset:K,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:oi.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as ii,Parachain as ci}from"@galacticcouncil/xc-core";var Gt=new ci({assetsData:[{asset:De,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:ii.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as mi,Parachain as ui}from"@galacticcouncil/xc-core";var qt=new ui({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:mi.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech"});import{ChainEcosystem as li,Parachain as Rn}from"@galacticcouncil/xc-core";var Sn={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:li.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"},Tt=new Rn({...Sn,key:"polkadot"}),_n=new Rn({...Sn,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});import{ChainEcosystem as di,Parachain as fi}from"@galacticcouncil/xc-core";var zt=new fi({assetsData:[{asset:Oe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:di.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as pi,Parachain as hi}from"@galacticcouncil/xc-core";var at=new hi({assetsData:[{asset:pe,id:"Ztg",xcmLocation:{parents:0,interior:"Here"}},{asset:j,decimals:6,id:{ForeignAsset:1},xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:y,decimals:18,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:pi.Polkadot,explorer:"https://zeitgeist.subscan.io",genesisHash:"0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060",key:"zeitgeist",name:"Zeitgeist",parachainId:2092,ss58Format:73,usesChainDecimals:!0,ws:"wss://zeitgeist.api.onfinality.io/public-ws"});import{ChainEcosystem as bi,Parachain as yi}from"@galacticcouncil/xc-core";var jt=new yi({assetsData:[{asset:Se,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:bi.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com"});var Dn=[kt,Mt,T,Vt,oe,M,Ct,Kt,Ut,l,Nt,Ot,Gt,Ae,R,lt,qt,Tt,_n,zt,at,jt];import{ChainEcosystem as xi,SolanaChain as gi}from"@galacticcouncil/xc-core";var vt=new gi({id:101,key:"solana",name:"Solana",assetsData:[{asset:q,decimals:9},{asset:ne,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:xi.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var Ln=[vt];import{ChainEcosystem as Ai,SuiChain as wi}from"@galacticcouncil/xc-core";var $t=new wi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Ai.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Hn=[$t];import{ChainEcosystem as ki,Parachain as Ci}from"@galacticcouncil/xc-core";var ot=new Ci({assetsData:[{asset:P,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:ki.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Ti,Parachain as vi}from"@galacticcouncil/xc-core";var Jt=new vi({assetsData:[{asset:Us,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:P,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}]}}},{asset:Gs,decimals:12,id:17,xcmLocation:{parents:1,interior:{X2:[{Parachain:2015},{GeneralKey:{length:4,data:"0x5445455200000000000000000000000000000000000000000000000000000000"}}]}}},{asset:qs,decimals:12,id:6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2125},{GeneralIndex:0}]}}},{asset:zs,decimals:9,id:16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2119},{GeneralKey:{length:4,data:"0x42414a5500000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Ti.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Wn=[ot,Jt];var Pi=[...Xn,...Dn,...Ln,...Hn,...Wn],Bi=new Map(Pi.map(t=>[t.key,t]));import{AssetRoute as Ps,ChainRoutes as sm}from"@galacticcouncil/xc-core";var oo={};rs(oo,{AssetMinBuilder:()=>dt,BalanceBuilder:()=>n,ContractBuilder:()=>B,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>ct,FeeAmountBuilder:()=>f,FeeAssetBuilder:()=>ls,MoveBuilder:()=>gn,ProgramBuilder:()=>vs,XcmTransferType:()=>re,XcmVersion:()=>it});import{SubstrateQueryConfig as Js}from"@galacticcouncil/xc-core";function dt(){return{assetRegistry:Xi,assets:Fi}}function Xi(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Js({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Js({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Fi(){return{asset:()=>({build:({asset:t})=>new Js({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as Ei,ContractConfig as Mn}from"@galacticcouncil/xc-core";function Vn(){return{erc20:Ri,native:Ii}}function Ii(){return{build:({address:t})=>new Mn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Ri(){return{build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e);if(!a||typeof a!="string")throw new Error(`Invalid contract address: ${e}`);return new Mn({abi:Ei.Erc20,address:a,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as is}from"@galacticcouncil/xc-core";import{encodeAssetId as Qs,encodeLocation as Si}from"@galacticcouncil/common";function Kn(){return{assets:_i,system:Li,tokens:Hi,ormlTokens:Wi,foreignAssets:Di}}function _i(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Qs(a);return new is({module:"Assets",func:"Account",args:[r,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Di(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let r=s.getAssetXcmLocation(e);if(!r)throw new Error("Missing asset xcm location for "+e.key);let o=Si(r);return new is({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Li(){return{account:()=>({build:({address:t})=>new is({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,a=BigInt(s?.free?.toString()??"0"),r=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return a>=r?a-r:0n}})})}}function Hi(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Qs(a);return new is({module:"Tokens",func:"Accounts",args:[t,r],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),u=BigInt(o?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Wi(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Qs(a);return new is({module:"OrmlTokens",func:"Accounts",args:[t,r],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),u=BigInt(o?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}import{SolanaQueryConfig as Un}from"@galacticcouncil/xc-core";function Nn(){return{native:Mi,token:Vi}}function Mi(){return{build:({address:t})=>new Un({address:t,func:"rpc_getBalance",module:"Native"})}}function Vi(){return{build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e);if(!a)throw new Error(`Invalid token address: ${e}`);return new Un({address:t,token:a.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as Ki}from"@galacticcouncil/xc-core";function On(){return{native:Ui}}function Ui(){return{build:({address:t})=>new Ki({address:t,func:"sui_getBalance",module:"Native"})}}function n(){return{evm:Vn,substrate:Kn,solana:Nn,sui:On}}import{Abi as Gn,ContractConfig as Ni,Precompile as Oi}from"@galacticcouncil/xc-core";import{encodeFunctionData as Gi}from"viem";var qi=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),a=s.map(i=>i.address),r=[0,0],o=s.map(i=>Gi({abi:Gn[i.module],functionName:i.func,args:i.args}));return new Ni({abi:Gn.Batch,address:Oi.Batch,args:[a,r,o,[]],func:"batchAll",module:"Batch"})}}),qn=()=>({batchAll:qi});import{Abi as zi,ContractConfig as ji,Wormhole as $i}from"@galacticcouncil/xc-core";function Qt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function rt(t){return typeof t=="object"?Object.values(t)[0]:t}function zn(){return{approve:t=>({build:async e=>{let{amount:s,asset:a,source:r,transact:o}=e,i=o?o.chain:r.chain,u=$i.fromChain(i),c=i.getAssetId(a);return new ji({abi:zi.Erc20,address:rt(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}import{addr as Ji,Abi as Qi,ContractConfig as Yi,Snowbridge as Zi}from"@galacticcouncil/xc-core";var{Ss58Addr:ec}=Ji,tc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o}=t,i=r.chain,u=o.chain,c=Zi.fromChain(i),d=i.getAssetId(a),b=rt(d),g=a.originSymbol==="ETH",w=o.feeBreakdown.bridgeFeeInDot,v=o.fee.amount;return new Yi({abi:Qi.Snowbridge,address:c.getGateway(),args:[b,u.parachainId,[1,ec.getPubKey(e)],w,s],value:g?v+s:v,func:"sendToken",module:"Snowbridge"})}}),jn=()=>({sendToken:tc});import{mrl as Jn,Abi as bs,ContractConfig as ys,Precompile as Qn,Wormhole as ft}from"@galacticcouncil/xc-core";import{PublicKey as $n}from"@solana/web3.js";import{getAssociatedTokenAddress as sc}from"@solana/spl-token";var nc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,asset:r,source:o,destination:i}=e,u=ft.fromChain(o.chain),c=ft.fromChain(t.moonchain),d=Qn.Bridge,b=o.chain.getAssetId(r),g=0,w=await Jn.createPayload(i.chain,s);return new ys({abi:bs.TokenBridge,address:u.getTokenBridge(),args:[rt(b),a,c.getWormholeId(),c.normalizeAddress(d),g,w.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),ac=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,destination:o}=e,i=ft.fromChain(r.chain),u=ft.fromChain(t.moonchain),c=Qn.Bridge,d=0,b=await Jn.createPayload(o.chain,s);return new ys({abi:bs.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),d,b.toHex()],value:a,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),oc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o,transact:i}=t,u=i?i.chain:r.chain,c=o.chain,d=ft.fromChain(u),b=ft.fromChain(c),g=e;if(c.isSolana()){let V=c.getAssetId(a);g=(await sc(new $n(V),new $n(e))).toBase58()}let w=u.getAssetId(a),v=0,F=0;return new ys({abi:bs.TokenBridge,address:d.getTokenBridge(),args:[rt(w),s,b.getWormholeId(),b.normalizeAddress(g),v,F],func:"transferTokens",module:"TokenBridge"})}}),rc=()=>({build:async t=>{let{address:e,amount:s,source:a,destination:r}=t,o=ft.fromChain(a.chain),i=ft.fromChain(r.chain),u=0,c=0;return new ys({abi:bs.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),Yn=()=>({transferTokens:oc,transferTokensWithPayload:nc,wrapAndTransferETH:rc,wrapAndTransferETHWithPayload:ac});import{Abi as ic,ContractConfig as cc,Wormhole as Zn}from"@galacticcouncil/xc-core";var mc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o,transact:i}=t,u=i?i.chain:r.chain,c=o.chain,d=Zn.fromChain(u),b=Zn.fromChain(c),g=0,w=0,v=u.getAssetId(a);return new cc({abi:ic.TokenRelayer,address:d.getTokenRelayer(),args:[rt(v),s,g,b.getWormholeId(),b.normalizeAddress(e),w],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),ea=()=>({transferTokensWithRelay:mc});function ta(){return{TokenBridge:Yn,TokenRelayer:ea}}import{Abi as sa,ContractConfig as na,Precompile as aa}from"@galacticcouncil/xc-core";import{big as pc}from"@galacticcouncil/common";import{addr as uc}from"@galacticcouncil/xc-core";import{getSs58AddressInfo as lc}from"@polkadot-api/substrate-bindings";import{toHex as dc}from"@polkadot-api/utils";var{EvmAddr:fc}=uc;function Ys(t,e){let s=fc.isValid(t)?"03":"01",a=lc(t);if(!a.isValid)throw new Error(`Invalid SS58 address: ${t}`);let r=`0x${s}${dc(a.publicKey).slice(2)}00`;return[1,e.parachainId?[`0x0000000${e.parachainId.toString(16)}`,r]:[r]]}function xs(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")}`}var oa=18446744073709551615n;function ra(){return{transfer:(t=oa)=>({build:async({address:e,amount:s,asset:a,destination:r,source:o})=>{let i=o.chain.getAssetId(a);return new na({abi:sa.Xtokens,address:aa.Xtokens,args:[typeof i=="string"?xs(i):a,s,Ys(e,r.chain),t],func:"transfer",module:"Xtokens"})}}),transferMultiCurrencies:(t=oa)=>({build:async({address:e,amount:s,asset:a,destination:r,source:o})=>{let i=o.chain.getAssetId(a),u=o.chain.getAssetId(o.destinationFeeBalance),c=pc.toBigInt(r.fee.amount,r.fee.decimals);return new na({abi:sa.Xtokens,address:aa.Xtokens,args:[[[typeof i=="string"?xs(i):i,s],[typeof u=="string"?xs(u):u,c]],1,Ys(e,r.chain),t],func:"transferMultiCurrencies",module:"Xtokens"})}})}}function B(){return{Batch:qn,Erc20:zn,Snowbridge:jn,Wormhole:ta,Xtokens:ra}}import{ExtrinsicConfig as hc}from"@galacticcouncil/xc-core";var ia="AssetConversion",bc=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:a})=>{let{chain:r}=a,o=a.destinationFeeSwap||a.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=o,c=r,d=c.getAssetXcmLocation(i),b=c.getAssetXcmLocation(u),g=i.amount+i.amount*BigInt(t.slippage)/100n,w=u.amount;return new hc({module:ia,func:e,getTx:v=>v.getUnsafeApi().tx[ia][e]({path:[d,b],amount_out:w,amount_in_max:g,send_to:s,keep_alive:!0})})}}},ca=()=>({swapTokensForExactTokens:bc});import{hub as yc,MultiAddress as xc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as gc}from"@galacticcouncil/xc-core";var Ac="Assets",wc=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:a,destination:r})=>{let o=r.chain,{fee:i}=r,u=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new gc({module:Ac,func:t,getTx:d=>d.getTypedApi(yc).tx.Assets.transfer({id:Number(c),target:xc.Id(a),amount:u})})}}},ma=()=>({transfer:wc});import{ExtrinsicConfig as kc}from"@galacticcouncil/xc-core";var ua="Balances",Cc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new kc({module:ua,func:e,getTx:a=>a.getUnsafeApi().tx[ua][e]({dest:s,keep_alive:t})})}},la=()=>({transferAll:Cc});import{hydration as Tc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as vc}from"@galacticcouncil/xc-core";var Pc="Router",Bc=t=>({build:async({source:s})=>{let{chain:a,destinationFeeSwap:r}=s;if(!r)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:u}=r,c=a,d=c.getMetadataAssetId(o),b=c.getMetadataAssetId(i),g=i.amount,w=o.amount+o.amount*BigInt(t.slippage)/100n;return new vc({module:Pc,func:"buy",getTx:v=>v.getTypedApi(Tc).tx.Router.buy({asset_in:Number(d),asset_out:Number(b),amount_out:g,max_amount_in:w,route:u})})}}),da=()=>({buy:Bc});import{ExtrinsicConfig as Xc}from"@galacticcouncil/xc-core";var fa="Utility",Fc=t=>{let e="batch_all";return{build:async s=>{let a=await Promise.all(t.map(r=>r.build(s)));return new Xc({module:fa,func:e,getTx:r=>{let o=a.map(i=>i.getTx(r).decodedCall);return r.getUnsafeApi().tx[fa][e]({calls:o})}})}}},pa=()=>({batchAll:Fc});import{Abi as Ec,ExtrinsicConfig as Ic}from"@galacticcouncil/xc-core";import{Binary as ha}from"polkadot-api";import{encodeFunctionData as Rc}from"viem";var it=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(it||{}),re=(r=>(r.Teleport="Teleport",r.LocalReserve="LocalReserve",r.DestinationReserve="DestinationReserve",r.RemoteReserve="RemoteReserve",r))(re||{});var ba="EthereumXcm",Sc=t=>{let e="transact";return{build:async s=>{let a=await t.build(s),r="V1",o=Rc({abi:Ec[a.module],functionName:a.func,args:a.args});return new Ic({module:ba,func:e,getTx:i=>i.getUnsafeApi().tx[ba][e]({xcm_transaction:{type:r,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:ha.fromHex(a.address)},value:[0n,0n,0n,0n],input:ha.fromHex(o),access_list:void 0}}})})}}},Zs=()=>({transact:Sc});import{ExtrinsicConfig as Et}from"@galacticcouncil/xc-core";import{big as pn}from"@galacticcouncil/common";import{multiloc as e0,ChainEcosystem as ln}from"@galacticcouncil/xc-core";import{Binary as t0}from"polkadot-api";import{XcmV3Junctions as he,XcmV3Junction as us,XcmV3JunctionNetworkId as _a,XcmV3MultiassetFungibility as Xt,XcmV4Instruction as J,XcmV4AssetAssetFilter as Zt,XcmV4AssetWildAsset as es,XcmV3WeightLimit as dn,XcmV2MultiassetWildFungibility as s0,XcmV2OriginKind as n0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as _c}from"@galacticcouncil/descriptors";var me=340282366920938463463374607431768211455n,Pt="0x0000000000000000000000000000000000000000000000000000000000000000",Yt={parents:1,interior:_c.Here()},ya=0,xa=1e3,ga=1002,Aa=1,Bt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var wa="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as zc,XcmV3MultiassetFungibility as tn,XcmV3WeightLimit as jc,XcmV4AssetAssetFilter as $c,XcmV4AssetWildAsset as Jc,XcmV4Instruction as cs}from"@galacticcouncil/descriptors";import{Binary as Qc}from"polkadot-api";import{acc as Dc}from"@galacticcouncil/xc-core";import{XcmV3Junction as ka}from"@galacticcouncil/descriptors";import{FixedSizeBinary as Ca}from"polkadot-api";import{getSs58AddressInfo as Lc}from"@polkadot-api/substrate-bindings";import{toHex as Hc}from"@polkadot-api/utils";function U(t){if(t.length===42&&t.startsWith("0x"))return ka.AccountKey20({key:Ca.fromHex(t),network:void 0});let s=Lc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return ka.AccountId32({id:Ca.fromHex(Hc(s.publicKey)),network:void 0})}function gs(t,e,s){return Dc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as Ta}from"@galacticcouncil/xc-core";function va(t,e){let s=Ta.findNestedKey(t,"GeneralIndex"),a=Ta.findNestedKey(e,"GeneralIndex"),r=s&&s.GeneralIndex,o=a&&a.GeneralIndex;return Number.isNaN(r)||Number.isNaN(o)?!1:Number(r)>Number(o)}function N(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ks={};rs(ks,{ETHER_TOKEN_ADDRESS:()=>en,bridgeLocation:()=>Xa,erc20Location:()=>Vc,erc20LocationReanchored:()=>Kc,parachainLocation:()=>Mc});import{XcmV3Junctions as As,XcmV3Junction as ws,XcmV3JunctionNetworkId as Wc}from"@galacticcouncil/descriptors";import{Binary as Pa}from"polkadot-api";var en="0x0000000000000000000000000000000000000000",Ba=t=>ws.GlobalConsensus(Wc.Ethereum({chain_id:BigInt(t)}));function Xa(t){return{parents:2,interior:As.X1(Ba(t))}}function Mc(t){return{parents:1,interior:As.X1(ws.Parachain(t))}}function Vc(t,e){return e===en?Xa(t):{parents:2,interior:As.X2([Ba(t),ws.AccountKey20({key:Pa.fromHex(e)})])}}function Kc(t){return t===en?{parents:0,interior:{type:"Here"}}:{parents:0,interior:As.X1(ws.AccountKey20({key:Pa.fromHex(t)}))}}import{encodeLocation as Uc}from"@galacticcouncil/common";import{multiloc as Nc}from"@galacticcouncil/xc-core";function O(t,e){return Oc(e)>=4?Uc(t):Gc(t)}function Oc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function Gc(t){return{Concrete:{...t}}}function qc(t){if(t&&t.interior!=="Here")return Nc.findParachain(t)}function Fa(t,e,s,a){let r=s.getAssetXcmLocation(t),o=qc(r);if(a){if(o===void 0)throw new Error(`No reserve chain for "${t.originSymbol}" on ${s.name}`);if(o!==a.parachainId)throw new Error(`Wrong reserve chain for "${t.originSymbol}": expected ${o}, got ${a.parachainId}`)}if(!a&&o!==void 0){let i=e.parachainId===o,u=s.parachainId===o;if(!i&&!u)throw new Error(`Reserve chain ${o} required for "${t.originSymbol}"`)}}function sn(t,e){let s="V4",a=O(N(e,t),s),r=Qc.fromHex(Pt);return[cs.ReserveAssetDeposited([{id:Yt,fun:tn.Fungible(me)},{id:a,fun:tn.Fungible(me)}]),cs.ClearOrigin(),cs.BuyExecution({fees:{id:Yt,fun:tn.Fungible(me)},weight_limit:jc.Unlimited()}),cs.DepositAsset({assets:$c.Wild(Jc.AllCounted(2)),beneficiary:{parents:0,interior:zc.X1(U(Bt))}}),cs.SetTopic(r)]}import{XcmV4Instruction as nn,XcmV3MultiassetFungibility as an,XcmV3WeightLimit as Yc}from"@galacticcouncil/descriptors";function Ea(t,e){let s="V4",a=O(N(e,t),s),r=Cs("V4",U(wa),U(Bt),a,Pt);return[nn.WithdrawAsset([{id:Yt,fun:an.Fungible(me)},{id:a,fun:an.Fungible(me)}]),nn.ClearOrigin(),nn.BuyExecution({fees:{id:Yt,fun:an.Fungible(me)},weight_limit:Yc.Unlimited()}),...r.value]}import{XcmV3Junctions as on,XcmV3Junction as Zc,XcmV3MultiassetFungibility as ms,XcmV3WeightLimit as rn,XcmV4AssetAssetFilter as cn,XcmV4AssetWildAsset as mn,XcmV4Instruction as we}from"@galacticcouncil/descriptors";import{Binary as Ia}from"polkadot-api";function Ra(t,e){let s="V4",a=O(N(e,t),s),r=Ia.fromHex(Pt);return[we.WithdrawAsset([{id:a,fun:ms.Fungible(me)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:a,fun:ms.Fungible(me)},weight_limit:rn.Unlimited()}),we.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:on.X1(U(Bt))}}),we.SetTopic(r)]}function un(t,e){let s="V4",a=O(N(e,t),s);return[we.BuyExecution({fees:{id:a,fun:ms.Fungible(me)},weight_limit:rn.Unlimited()}),we.DepositAsset({assets:cn.Wild(mn.AllCounted(1)),beneficiary:{parents:0,interior:on.X1(U(Bt))}})]}function Sa(t,e,s){let a="V4",r=O(N(e,t),a),o=Ia.fromHex(Pt),i=un(t,s);return[we.WithdrawAsset([{id:r,fun:ms.Fungible(me)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:r,fun:ms.Fungible(me)},weight_limit:rn.Unlimited()}),we.DepositReserveAsset({assets:cn.Wild(mn.AllCounted(1)),dest:{parents:1,interior:on.X1(Zc.Parachain(s.parachainId))},xcm:i}),we.SetTopic(o)]}var Da=[ln.Polkadot,ln.Kusama],a0={parents:1,interior:he.X1(us.Parachain(1e3))},o0=t=>t.parents===1&&t.interior==="Here",r0=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Da.includes(t.ecosystem)&&Da.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Je=(t,e,s)=>{if(r0(e,s)){let r=s.ecosystem===ln.Polkadot?_a.Polkadot():_a.Kusama();return{type:t,value:{parents:2,interior:he.X2([us.GlobalConsensus(r),us.Parachain(s.parachainId)])}}}if(s.parachainId===ya)return{type:t,value:{parents:1,interior:he.Here()}};let a=s.key==="ethereum"?xa:s.parachainId;return{type:t,value:{parents:1,interior:he.X1(us.Parachain(a))}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:he.X1(e)}}),fn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:o0(s)?a0:s}}:{type:e},pt=(t,e)=>({id:t,fun:Xt.Fungible(e)}),La=(t,e,s)=>({type:t,value:[J.DepositAsset({assets:Zt.Wild(es.AllCounted(s)),beneficiary:{parents:0,interior:he.X1(e)}})]});var Cs=(t,e,s,a,r)=>{let o=t0.fromHex(r);return{type:t,value:[J.SetAppendix([J.DepositAsset({assets:Zt.Wild(es.All()),beneficiary:{parents:0,interior:he.X1(s)}})]),J.InitiateReserveWithdraw({assets:Zt.Wild(es.AllOf({id:a,fun:s0.Fungible()})),reserve:ks.bridgeLocation(Aa),xcm:[J.BuyExecution({fees:{id:i0(a),fun:Xt.Fungible(1n)},weight_limit:dn.Unlimited()}),J.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}}),J.SetTopic(o)]}),J.SetTopic(o)]}},i0=t=>{let e=e0.findNestedKey(t,"key");return e?{parents:0,interior:he.X1(us.AccountKey20({key:e}))}:{parents:0,interior:he.Here()}},Ha=(t,e,s,a,r,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:Xt.Fungible(a)}]),J.BuyExecution({fees:{id:s,fun:Xt.Fungible(a)},weight_limit:dn.Unlimited()}),J.Transact({origin_kind:n0.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:r}),J.RefundSurplus(),J.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]}),Wa=(t,e,s,a,r,o)=>({type:t,value:[J.WithdrawAsset([{id:s,fun:Xt.Fungible(r)}]),J.BuyExecution({fees:{id:s,fun:Xt.Fungible(r)},weight_limit:dn.Unlimited()}),J.TransferAsset({assets:[{id:s,fun:Xt.Fungible(a)}],beneficiary:{parents:0,interior:he.X1(o)}}),J.RefundSurplus(),J.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ue="PolkadotXcm",c0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=O(N(i,a.fee),c),g=pt(d,e),w=pt(b,a.fee.amount),v="limited_reserve_transfer_assets";return new Et({module:ue,func:v,getTx:F=>{let V=F.getUnsafeApi().tx[ue][v];return s.key===a.fee.key?V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):va(d,b)?V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[w,g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[g,w]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),m0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=pt(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="limited_teleport_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),u0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=pt(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="reserve_transfer_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0})})}}),l0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=pt(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="transfer_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),d0=t=>({build:async({address:e,asset:s,amount:a,destination:r,messageId:o,sender:i,source:u,transact:c})=>{let d="V4",b=u.chain,g=r.chain,w=r.fee.amount,v=r.fee;c&&(g=c.chain,w=pn.toBigInt(c.fee.amount,c.fee.decimals),v=c.fee);let F=U(i),V=c||g.usesCexForwarding?gs(b,i,g):e,_=U(V),{transferType:Q}=t,G=O(N(b,s),d),C=O(N(b,v),d),Ye=pt(G,a),gt=pt(C,w),Ze=s.isEqual(v),mt=Je(d,b,g),et={type:d,value:Ze?[Ye]:[gt,Ye]},ut=fn(d,Q,G),os={type:d,value:Ze?G:C},Ks=fn(d,Q,C),Ht;r.chain.key==="ethereum"?Ht=Cs(d,_,F,G,o):Ht=La(d,_,et.value.length);let ds="transfer_assets_using_type_and_then";return new Et({module:ue,func:ds,getTx:ur=>ur.getUnsafeApi().tx[ue][ds]({dest:mt,assets:et,assets_transfer_type:ut,remote_fees_id:os,fees_transfer_type:Ks,custom_xcm_on_dest:Ht,weight_limit:{type:"Unlimited"}})})}}),f0=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:a,source:r,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let u=r.chain,c=o.chain,d=gs(u,a,c),b=U(d),{fee:g}=o,w=O(N(c,g),i),v=pn.toBigInt(e.fee,g.decimals);return new Et({module:ue,func:t,getTx:F=>F.getUnsafeApi().tx[ue][t]({dest:Je(i,u,c),message:Ha(i,b,w,v,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:a,address:r,asset:o,sender:i,source:u,destination:c}=s,d="V4",b=u.chain,g=c.chain,w=gs(b,i,g),v=U(w),F=U(r),V=O(N(g,o),d),{fee:_}=c,Q=pn.toBigInt(e.fee,_.decimals),G=a>_.amount?a-(_.amount+Q):a;return new Et({module:ue,func:t,getTx:C=>C.getUnsafeApi().tx[ue][t]({dest:Je(d,b,g),message:Wa(d,v,V,G,Q,F)})})}})}},hn=()=>({limitedReserveTransferAssets:c0,limitedTeleportAssets:m0,reserveTransferAssets:u0,transferAssets:l0,transferAssetsUsingTypeAndThen:d0,send:f0});import{ExtrinsicConfig as y0}from"@galacticcouncil/xc-core";import{XcmV3Junctions as p0,XcmV3Junction as h0,XcmV3MultiassetFungibility as b0}from"@galacticcouncil/descriptors";var Ma=(t,e)=>({parents:1,interior:p0.X2([h0.Parachain(t.parachainId),e])}),Va=(t,e)=>({id:t,fun:b0.Fungible(e)});var Ka="XTransfer",x0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o="V3",i=U(t),u=r.chain,c=a.chain,d=O(N(u,s),o),b=Va(d,e),g=Ma(c,i),w="transfer";return new y0({module:Ka,func:w,getTx:v=>v.getUnsafeApi().tx[Ka][w]([b,g,{refTime:5e9,proofSize:0}])})}}),bn=()=>({transfer:x0});function m(){return{assetConversion:ca,assets:ma,balances:la,ethereumXcm:Zs,polkadotXcm:hn,router:da,utility:pa,xTransfer:bn}}function ct(t,e){return{prior:function(s){return{build:async a=>t(a)?m().utility().batchAll([e,s]).build(a):s.build(a)}},priorMulti:function(s){return{build:async a=>t(a)?m().utility().batchAll([e,...s]).build(a):m().utility().batchAll([...s]).build(a)}}}}import{Abi as Oa,Snowbridge as E0,Wormhole as Na}from"@galacticcouncil/xc-core";var Ua={};rs(Ua,{AssethubClient:()=>le,BaseClient:()=>ke,HydrationClient:()=>qe});import{encodeLocation as g0}from"@galacticcouncil/common";import{hub as A0,XcmVersionedAssetId as w0}from"@galacticcouncil/descriptors";var ke=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??A0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let a=(await this.refApi.query.System.Account.getValue(e)).data,{free:r,frozen:o}=a;return BigInt(r)-BigInt(o)}async calculateDestinationFee(e,s){let a=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!a.success)throw Error("Can't query XCM weight.");let r=this.chain.getAssetXcmLocation(s);if(!r)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let o=g0(r),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(a.value,w0.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as k0,XcmV5Junction as C0,XcmVersionedLocation as T0}from"@galacticcouncil/descriptors";import{encodeLocation as v0}from"@galacticcouncil/common";import{Twox128 as P0,u128 as B0}from"@polkadot-api/substrate-bindings";import{toHex as X0}from"@polkadot-api/utils";var le=class extends ke{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),a=this.chain.getAssetXcmLocation(e),r=v0(a);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(r):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.is_sufficient||!1}async checkIfFrozen(e,s){let a=this.chain.getAssetId(s);if(a===s.originSymbol)return!1;let r=await this.api().query.Assets.Account.getValue(Number(a),e);return r&&r.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:"),a=X0(P0(s)),r=await this.client._request("state_getStorage",[a]);if(!r)return e.defaultFee;let o=B0.dec(r);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let a=T0.V5({parents:1,interior:k0.X1(C0.Parachain(s))}),r=await this.api().apis.XcmPaymentApi.query_delivery_fees(a,{type:"V4",value:e});if(!r.success)throw Error("Can't query XCM delivery fee.");let o=r.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as F0}from"@galacticcouncil/descriptors";var qe=class extends ke{constructor(e){super(e,F0)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),a=Number(s),r=await this.api().query.AssetRegistry.Assets.getValue(a);return r?r.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 a=(await this.api().query.System.Account.getValue(e)).data,{free:r,frozen:o}=a;return BigInt(r)-BigInt(o)}async getTokensAccountsBalance(e,s){let a=Number(s),r=await this.api().query.Tokens.Accounts.getValue(e,a),{free:o,frozen:i}=r;return BigInt(o)-BigInt(i)}};function I0(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let a=s,r=e,o=Na.fromChain(a),i=Na.fromChain(r),u=a.getAssetId(t),c=a.getAssetDecimals(t);return{amount:await a.evmClient.getProvider().readContract({abi:Oa.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function R0(){return{TokenRelayer:I0}}function S0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:a})=>{let r=a,o=s,i=E0.fromChain(r),u=new ke(o),c=new le(t.hub),d=sn(e,o),[b,g]=await Promise.all([u.calculateDestinationFee(d,A),c.calculateDeliveryFee(d,o.parachainId)]),w=g+Qt(b,25n),v=r.getAssetId(e);return{amount:await r.evmClient.getProvider().readContract({abi:Oa.Snowbridge,address:i.getGateway(),args:[v,o.parachainId,w],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:w}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:a})=>{let r=a,o=new le(t.hub),i=Ea(e,r),u=sn(e,r),[c,d,b,g,w]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,ga),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(u,r.parachainId),o.calculateDestinationFee(u,s)]);return{amount:c+d+Qt(b,25n)+g+Qt(w,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:d,assetHubDestinationFee:b,returnToSenderDeliveryFee:g,returnToSenderDestinationFee:w}}}})}}function _0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:a})=>{let r=s,o=a,i=t?.reserve;if(Fa(e,r,o,i),i){let w=new ke(o),v=new ke(i),F=un(e,o),V=Sa(e,i,o),[_,Q]=await Promise.all([w.calculateDestinationFee(F,e),v.calculateDestinationFee(V,e)]),G=Q+_,C=Qt(G,20n),Ye=C-G;return{amount:C,breakdown:{reserveFee:Q,destinationFee:_,margin:Ye}}}let u=new ke(o),c=Ra(e,o),d=await u.calculateDestinationFee(c,e),b=Qt(d,20n),g=b-d;return{amount:b,breakdown:{totalFee:d,margin:g}}}})}}function f(){return{XcmPaymentApi:_0,Snowbridge:S0,Wormhole:R0}}var D0="0";function L0(){return{build:async({address:t,chain:e})=>{let a=await new qe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),r=a?a.toString():D0,o=e.findAssetById(r);return o?o.asset:z}}}var H0=()=>({accountCurrencyMap:L0});function ls(){return{multiTransactionPayment:H0}}import{mrl as za,Precompile as ja,ProgramConfig as $a,Wormhole as Ts}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as W0,NATIVE_MINT as Ga,TOKEN_PROGRAM_ID as M0,createCloseAccountInstruction as V0,createInitializeAccountInstruction as K0,getMinimumBalanceForRentExemptAccount as U0,getAssociatedTokenAddress as N0}from"@solana/spl-token";import{Keypair as yn,PublicKey as xn,SystemProgram as qa}from"@solana/web3.js";import{UniversalAddress as Ja}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as Qa,createTransferNativeWithPayloadInstruction as Ya,getWrappedMeta as O0}from"@wormhole-foundation/sdk-solana-tokenbridge";var G0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,sender:o,destination:i}=e,u=r.chain,c=u,d=Ts.fromChain(u),b=Ts.fromChain(t.moonchain),g=ja.Bridge,w=await za.createPayload(i.chain,s),v=new xn(o),F=new Ja(g),V=b.getWormholeId(),_=v,Q=0,G=yn.generate(),C=yn.generate(),Ye=await U0(c.connection),gt=qa.createAccount({fromPubkey:_,newAccountPubkey:C.publicKey,lamports:Ye,space:W0,programId:M0}),Ze=qa.transfer({fromPubkey:_,lamports:a,toPubkey:C.publicKey}),mt=K0(C.publicKey,Ga,_),et=Qa(d.getTokenBridge(),C.publicKey,_,a),ut=Ya(c.connection,d.getTokenBridge(),d.getCoreBridge(),o,G.publicKey,C.publicKey,Ga,Q,a,F.toUint8Array(),V,w.toU8a()),os=V0(C.publicKey,_,_);return new $a({instructions:[gt,Ze,mt,et,ut,os],signers:[G,C],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),q0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,asset:r,source:o,sender:i,destination:u}=e,c=o.chain,d=c,b=Ts.fromChain(c),g=Ts.fromChain(t.moonchain),w=ja.Bridge,v=await za.createPayload(u.chain,s),F=new xn(i),V=o.chain.getAssetId(r),_=new xn(V),Q=await N0(_,F),G=new Ja(w),C=g.getWormholeId();if(await O0(d.connection,b.getTokenBridge(),_).catch(ut=>null).then(ut=>ut!=null))throw new Error("Wrapped assets not supported yet");let gt=0,Ze=yn.generate(),mt=Qa(b.getTokenBridge(),Q,F,a),et=Ya(d.connection,b.getTokenBridge(),b.getCoreBridge(),i,Ze.publicKey,Q,_,gt,a,G.toUint8Array(),C,v.toU8a());return new $a({instructions:[mt,et],signers:[Ze],func:"TransferWithPayload",module:"TokenBridge"})}})}),Za=()=>({transferNativeWithPayload:G0,transferTokenWithPayload:q0});function eo(){return{TokenBridge:Za}}function vs(){return{Wormhole:eo}}import{mrl as z0,MoveConfig as j0,Precompile as $0,Wormhole as to}from"@galacticcouncil/xc-core";import{Transaction as J0}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Q0,SUI_TYPE_ARG as Y0}from"@mysten/sui/utils";import{UniversalAddress as Z0}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as em,getPackageId as so}from"@wormhole-foundation/sdk-sui";var tm=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,sender:o,destination:i}=e,u=r.chain,c=u,d=to.fromChain(u),b=to.fromChain(t.moonchain),g=0,w=$0.Bridge,v=await z0.createPayload(i.chain,s),F=new Z0(w),V=b.getWormholeId(),_=Y0,[Q,G]=await Promise.all([so(c.client,d.coreBridge),so(c.client,d.tokenBridge)]),C=new J0,[Ye]=C.splitCoins(C.gas,[C.pure.u64(a)]),[gt]=C.splitCoins(C.gas,[C.pure.u64(i.fee.amount)]),[Ze]=C.moveCall({target:`${G}::state::verified_asset`,arguments:[C.object(d.tokenBridge)],typeArguments:[_]}),mt=!1,et=await(async()=>{let Ht=await em(c.client,Q,o);if(Ht!==null)return C.object(Ht);{let[ds]=C.moveCall({target:`${Q}::emitter::new`,arguments:[C.object(d.coreBridge)]});return mt=!0,ds}})(),[ut,os]=C.moveCall({target:`${G}::transfer_tokens_with_payload::prepare_transfer`,arguments:[et,Ze,Ye,C.pure.u16(V),C.pure.vector("u8",F.toUint8Array()),C.pure.vector("u8",v.toU8a()),C.pure.u32(g)],typeArguments:[_]});C.moveCall({target:`${G}::coin_utils::return_nonzero`,arguments:[os],typeArguments:[_]});let[Ks]=C.moveCall({target:`${G}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[C.object(d.tokenBridge),ut],typeArguments:[_]});return C.moveCall({target:`${Q}::publish_message::publish_message`,arguments:[C.object(d.coreBridge),gt,Ks,C.object(Q0)]}),mt&&C.transferObjects([et],C.pure.address(o)),new j0({transaction:C,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),no=()=>({transferNativeWithPayload:tm});function ao(){return{TokenBridge:no}}function gn(){return{Wormhole:ao}}var ro={};rs(ro,{Tag:()=>ht});var ht=(r=>(r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.Mrl="Mrl",r))(ht||{});import{AssetRoute as io}from"@galacticcouncil/xc-core";function ts(t,e){return new io({source:{asset:t,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{asset:t,balance:n().evm().erc20()}},destination:{chain:l,asset:e,fee:{amount:0,asset:e}},contract:B().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function ie(t,e){return new io({source:{asset:t,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{balance:n().evm().native()}},destination:{chain:l,asset:e,fee:{amount:f().Snowbridge().calculateInboundFee({hub:T}),asset:D}},contract:B().Snowbridge().sendToken(),tags:["Snowbridge"]})}var nm=[new Ps({source:{asset:D,balance:n().evm().native(),destinationFee:{asset:D,balance:n().evm().native()}},destination:{chain:l,asset:Z,fee:{amount:0,asset:Z}},contract:B().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),ts(de,te),ts($e,ge),ts(x,j),ts(p,xe),ts(je,ye)],am=[new Ps({source:{asset:D,balance:n().evm().native(),fee:{asset:D,balance:n().evm().native()},destinationFee:{balance:n().evm().native()}},destination:{chain:l,asset:D,fee:{amount:f().Snowbridge().calculateInboundFee({hub:T}),asset:D}},contract:B().Snowbridge().sendToken(),tags:["Snowbridge"]}),ie(Te,Te),ie(Pe,Pe),ie(Xe,Xe),ie(We,We),ie(Ke,Ke),ie(Ue,Ue),ie(Re,Re),ie(Ee,Ee),ie(_e,_e),ie(Ve,Ve),ie(Ne,Ne),ie(Ge,Ge),ie(x,wt),ie(p,At)],Ox=[new Ps({source:{asset:D,balance:n().evm().native(),destinationFee:{asset:D,balance:n().evm().erc20()}},destination:{chain:R,asset:Z,fee:{amount:0,asset:Z}},contract:B().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new Ps({source:{asset:de,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{asset:de,balance:n().evm().erc20()}},destination:{chain:R,asset:te,fee:{amount:0,asset:te}},contract:B().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],co=new sm({chain:I,routes:[...nm,...am]});var mo=[co];import{AssetRoute as uo,ChainRoutes as om}from"@galacticcouncil/xc-core";var rm=[new uo({source:{asset:ee,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:ee,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ee}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new uo({source:{asset:fe,balance:n().substrate().tokens().accounts(),fee:{asset:ee,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:fe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:fe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],lo=new om({chain:kt,routes:[...rm]});import{AssetRoute as Xs,ChainRoutes as bo}from"@galacticcouncil/xc-core";import{AssetRoute as An}from"@galacticcouncil/xc-core";var It=0,im=t=>{let{source:e}=t;return!!e.feeSwap},cm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},fo=m().assetConversion().swapTokensForExactTokens({slippage:30});function po(t,e,s){return new An({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:ct(cm,fo).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Bs(t,e,s){return new An({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:t,balance:n().substrate().assets().account(),swap:!0},destinationFee:{balance:n().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:ct(im,fo).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Rt(t,e,s){return new An({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().assets().account()},min:dt().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function St(t){return po(t,l,.02)}function ho(t){return po(t,R,.25)}var mm=[new Xs({source:{asset:A,balance:n().substrate().system().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().system().account()},min:dt().assets().asset()},destination:{chain:l,asset:A,fee:{amount:.001,asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Xs({source:{asset:P,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:l,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Rt(p,l,.02),Rt(x,l,.02),St(Y),St(tt),St(st),St(nt)],um=[new Xs({source:{asset:P,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:ot,asset:P,fee:{amount:.001,asset:P}},extrinsic:m().polkadotXcm().transferAssets()})],lm=[Rt(p,R,.25),Rt(x,R,.25),ho(Y)],dm=[Rt(p,M,.03),Rt(x,M,.03)],fm=[new Xs({source:{asset:K,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:lt,asset:K,fee:{amount:2.5,asset:K}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],yo=new bo({chain:T,routes:[...mm,...um,...lm,...dm,...fm]}),xo=new bo({chain:Vt,routes:[Bs(p,l,.02),Bs(x,l,.02),Bs(A,l,.001)]});import{AssetRoute as Qe,ChainRoutes as pm}from"@galacticcouncil/xc-core";var hm=[new Qe({source:{asset:S,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:S,fee:{amount:.044306118,asset:S}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new Qe({source:{asset:E,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:E,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:y,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:W,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:L,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:L,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:He,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:He,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:H,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:$,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:$,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:p,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:x,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],go=new pm({chain:oe,routes:[...hm]});import{AssetRoute as ze,ChainRoutes as bm}from"@galacticcouncil/xc-core";var ym=[new ze({source:{asset:E,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:E,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:H,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:$,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:$,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:$}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:A,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:S,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:S,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:y,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:W,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],xm=[new ze({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:T,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:T,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ao=new bm({chain:M,routes:[...ym,...xm]});import{AssetRoute as wo,ChainRoutes as gm}from"@galacticcouncil/xc-core";var Am=[new wo({source:{asset:be,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:be,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:be}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new wo({source:{asset:y,balance:n().substrate().ormlTokens().accounts(),fee:{asset:be,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().ormlTokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],ko=new gm({chain:Ct,routes:[...Am]});import{AssetRoute as Dt,ChainRoutes as vm}from"@galacticcouncil/xc-core";var wm="0",X=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===wm?n().substrate().system().account().build({address:t,asset:e,chain:s}):n().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),ce=()=>({asset:ls().multiTransactionPayment().accountCurrencyMap(),balance:X()});import{AssetRoute as ss}from"@galacticcouncil/xc-core";var km=.9,Cm=1,Tm=.03,Fs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Es=m().router().buy({slippage:30});function k(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:e,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function _t(t){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:ct(Fs,Es).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Is(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Vt,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:Tm})])})}function Co(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:e,asset:t,fee:{amount:s,asset:y}},extrinsic:ct(Fs,Es).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function bt(t){return Co(t,R,.08)}function To(t){return Co(t,at,.1)}function vo(t,e,s,a,r,o){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{asset:t,balance:X()}},destination:{chain:s,asset:e,fee:{amount:a,asset:e}},extrinsic:ct(Fs,Es).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:km})]),transact:{chain:R,fee:{amount:Cm,asset:y,balance:X()},extrinsic:m().ethereumXcm().transact(r)},tags:o})}function wn(t,e,s){return vo(t,e,s,0,B().Batch().batchAll([B().Erc20().approve(a=>a.getTokenBridge()),B().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function yt(t,e,s){return vo(t,e,s,f().Wormhole().TokenRelayer().calculateRelayerFee(),B().Batch().batchAll([B().Erc20().approve(a=>a.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function se(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:s,asset:e,fee:{amount:f().Snowbridge().calculateOutboundFee({hub:T}),asset:A}},extrinsic:ct(Fs,Es).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Pm=[k(ee,kt),k(fe,kt)],Bm=[new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:P,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:P,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:p,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:x,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),_t(Y),_t(tt),_t(st),_t(nt)],Xm=[k(S,oe),k(E,oe,M),k(y,oe),k(W,oe),k(L,oe),k(He,oe),k(H,oe,M),k($,oe),k(p,oe,T),k(x,oe,T)],Fm=[k(E,M),k(H,M),k($,M),k(A,M),k(S,M),k(y,M),k(W,M),k(p,M,T),k(x,M,T),new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:M,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Em=[k(be,Ct),k(y,Ct)],Im=[k(W,Ae),k(L,Ae),k(z,Ae),k(p,Ae,T),k(x,Ae,T),new Dt({source:{asset:H,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Ae,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Ae,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Rm=[k(z,R),k(y,R),k(p,R,T),k(x,R,T),bt(te),bt(ye),bt(j),bt(xe),bt(ge),bt(Z),bt(q)],Sm=[k(pe,at),k(y,at),To(j)],_m=[k(K,lt)],Dm=[k(Oe,zt)],Lm=[k(Be,Kt)],Hm=[k(Fe,Nt)],Wm=[k(Ie,Ot)],Mm=[k(Se,jt)],Vm=[k(Le,qt)],Km=[k(De,Gt)],Um=[k(Me,Ut)],Nm=[k(ve,Mt)],Om=[yt(te,de,I),yt(Z,D,I),yt(ge,$e,I),yt(xe,p,I),yt(j,x,I),wn(ye,je,I)],Gm=[se(D,D,I),se(Te,Te,I),se(Pe,Pe,I),se(Xe,Xe,I),se(We,We,I),se(Ke,Ke,I),se(Ue,Ue,I),se(Ne,Ne,I),se(Re,Re,I),se(Ee,Ee,I),se(_e,_e,I),se(Ve,Ve,I),se(Ge,Ge,I),se(wt,x,I),se(At,p,I)],qm=[yt(q,q,vt),wn(ne,ne,vt)],zm=[yt(ae,ae,$t)],jm=[Is(p,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),Is(x,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),Is(A,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Po=new vm({chain:l,routes:[...Pm,...Nm,...Bm,...Xm,...Fm,...Em,...jm,...Lm,...Um,...Gm,...Om,...Im,...Hm,...Wm,...Mm,...Rm,..._m,...Km,...Vm,...qm,...zm,...Dm,...Sm]});import{AssetRoute as Lt,ChainRoutes as $m}from"@galacticcouncil/xc-core";var Jm=[new Lt({source:{asset:L,balance:n().substrate().tokens().accounts(),destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:L,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:W,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:z,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:z,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:z}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:H,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:A,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Bo=new $m({chain:Ae,routes:[...Jm]});import{AssetRoute as ns,ChainRoutes as Zm}from"@galacticcouncil/xc-core";import{AssetRoute as Xo}from"@galacticcouncil/xc-core";function Qm(t,e,s){return new Xo({source:{asset:t,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:B().Xtokens().transfer()})}function Ym(t,e,s){return new Xo({source:{asset:t,balance:n().evm().erc20(),fee:{asset:y,balance:n().evm().erc20()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:B().Xtokens().transfer()})}function xt(t,e){return Qm(t,l,e)}function Rs(t,e){return Ym(t,l,e)}var eu=[new ns({source:{asset:y,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:y,fee:{amount:.05,asset:y}},contract:B().Xtokens().transfer()}),Rs(z,.6),Rs(p,.3),Rs(x,.3),xt(te,.004),xt(ye,.004),xt(j,.004),xt(xe,.004),xt(ge,1e-7),xt(Z,2e-6),xt(q,2e-5)],tu=[new ns({source:{asset:Y,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:Y,fee:{amount:.18,asset:p}},contract:B().Xtokens().transferMultiCurrencies()}),new ns({source:{asset:p,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:p,fee:{amount:.18,asset:p}},contract:B().Xtokens().transfer()}),new ns({source:{asset:x,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:x,fee:{amount:.18,asset:x}},contract:B().Xtokens().transfer()})],gA=[new ns({source:{asset:Z,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{asset:Z,balance:n().evm().erc20()}},destination:{chain:I,asset:D,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:D}},contract:B().Batch().batchAll([B().Erc20().approve(t=>t.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new ns({source:{asset:te,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{asset:te,balance:n().evm().erc20()}},destination:{chain:I,asset:de,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:de}},contract:B().Batch().batchAll([B().Erc20().approve(t=>t.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],Fo=new Zm({chain:R,routes:[...eu,...tu]});import{AssetRoute as Eo,ChainRoutes as su}from"@galacticcouncil/xc-core";var nu=[new Eo({source:{asset:K,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:K,fee:{amount:.01,asset:K}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],au=[new Eo({source:{asset:K,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:T,asset:K,fee:{amount:.1,asset:K}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Io=new su({chain:lt,routes:[...nu,...au]});import{AssetRoute as ou,ChainRoutes as ru}from"@galacticcouncil/xc-core";var iu=[new ou({source:{asset:Oe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Oe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Oe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ro=new ru({chain:zt,routes:[...iu]});import{AssetRoute as kn,ChainRoutes as cu}from"@galacticcouncil/xc-core";var mu=[new kn({source:{asset:pe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:pe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:pe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new kn({source:{asset:y,balance:n().substrate().tokens().accounts(),fee:{asset:pe,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new kn({source:{asset:j,balance:n().substrate().tokens().accounts(),fee:{asset:pe,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:j,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],So=new cu({chain:at,routes:[...mu]});import{AssetRoute as uu,ChainRoutes as lu}from"@galacticcouncil/xc-core";var du=[new uu({source:{asset:Be,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Be,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Be}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],_o=new lu({chain:Kt,routes:[...du]});import{AssetRoute as fu,ChainRoutes as pu}from"@galacticcouncil/xc-core";var hu=[new fu({source:{asset:Fe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Fe,fee:{amount:.03,asset:Fe}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Do=new pu({chain:Nt,routes:[...hu]});import{AssetRoute as bu,ChainRoutes as yu}from"@galacticcouncil/xc-core";var xu=[new bu({source:{asset:Le,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Le,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Le}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Lo=new yu({chain:qt,routes:[...xu]});import{AssetRoute as gu,ChainRoutes as Au}from"@galacticcouncil/xc-core";var wu=[new gu({source:{asset:Me,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Me,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Me}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ho=new Au({chain:Ut,routes:[...wu]});import{AssetRoute as ku,ChainRoutes as Cu}from"@galacticcouncil/xc-core";var Tu=[new ku({source:{asset:ve,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:ve,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ve}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Wo=new Cu({chain:Mt,routes:[...Tu]});import{AssetRoute as vu,ChainRoutes as Pu}from"@galacticcouncil/xc-core";var Bu=[new vu({source:{asset:Ie,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Ie,fee:{amount:2,asset:Ie}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Mo=new Pu({chain:Ot,routes:[...Bu]});import{AssetRoute as Xu,ChainRoutes as Fu}from"@galacticcouncil/xc-core";var Eu=[new Xu({source:{asset:Se,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Se,fee:{amount:.03,asset:Se}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Vo=new Fu({chain:jt,routes:[...Eu]});import{AssetRoute as Iu,ChainRoutes as Ru}from"@galacticcouncil/xc-core";var Su=[new Iu({source:{asset:De,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:De,fee:{amount:.205,asset:De}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Ko=new Ru({chain:Gt,routes:[...Su]});var Uo=[lo,Wo,yo,xo,go,Ao,ko,Po,Bo,Fo,Io,Ko,Ro,So,_o,Do,Lo,Ho,Mo,Vo];import{AssetRoute as No,ChainRoutes as _u}from"@galacticcouncil/xc-core";var Du=[new No({source:{asset:q,balance:n().solana().native(),destinationFee:{asset:q,balance:n().solana().native()}},destination:{chain:l,asset:q,fee:{amount:0,asset:q}},program:vs().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new No({source:{asset:ne,balance:n().solana().token(),fee:{asset:q,balance:n().solana().native()},destinationFee:{asset:ne,balance:n().solana().token()}},destination:{chain:l,asset:ne,fee:{amount:0,asset:ne}},program:vs().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],Oo=new _u({chain:vt,routes:[...Du]});var Go=[Oo];import{AssetRoute as Lu,ChainRoutes as Hu}from"@galacticcouncil/xc-core";var Wu=[new Lu({source:{asset:ae,balance:n().sui().native(),destinationFee:{asset:ae,balance:n().sui().native()}},destination:{chain:l,asset:ae,fee:{amount:0,asset:ae}},move:gn().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],qo=new Hu({chain:$t,routes:[...Wu]});var zo=[qo];import{AssetRoute as jo,ChainRoutes as Mu}from"@galacticcouncil/xc-core";import{AssetRoute as iw}from"@galacticcouncil/xc-core";var Cn=0;var Vu=new jo({source:{asset:P,balance:n().substrate().system().account(),fee:{asset:P,balance:n().substrate().system().account(),extra:Cn},destinationFee:{balance:n().substrate().system().account()}},destination:{chain:T,asset:P,fee:{amount:.002,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ku=new jo({source:{asset:P,balance:n().substrate().system().account(),fee:{asset:P,balance:n().substrate().system().account(),extra:Cn},destinationFee:{balance:n().substrate().system().account()}},destination:{chain:Jt,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),$o=new Mu({chain:ot,routes:[Ku,Vu]});import{AssetRoute as Jo,ChainRoutes as Nu}from"@galacticcouncil/xc-core";var Uu="0",as=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Uu?n().substrate().system().account().build({address:t,asset:e,chain:s}):n().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),Tn=()=>({asset:ls().multiTransactionPayment().accountCurrencyMap(),balance:as()});var Ou=[new Jo({source:{asset:p,balance:as(),fee:Tn(),destinationFee:{balance:as()}},destination:{chain:ot,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Gu=[new Jo({source:{asset:P,balance:as(),fee:Tn(),destinationFee:{balance:as()}},destination:{chain:ot,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],Qo=new Nu({chain:Jt,routes:[...Ou,...Gu]});var Yo=[$o,Qo];var qu=[...mo,...Uo,...Go,...zo,...Yo],zu=new Map(qu.map(t=>[t.chain.key,t]));import{Parachain as or}from"@galacticcouncil/xc-core";import{TransferValidation as Zo,TransferValidationError as er}from"@galacticcouncil/xc-core";var Ss=class extends Zo{async validate(e){let{source:s}=e,{chain:a,fee:r,feeBalance:o}=s;if(o.amount<r.amount)throw new er("Insufficient_Fee_Balance",{amount:r.toDecimal(),asset:r.symbol,chain:a.name,error:"fee.insufficientBalance"})}},_s=class extends Zo{async skipFor(e){let{asset:s,source:a}=e,{enabled:r}=a.destinationFeeSwap||{};return s.isEqual(a.destinationFee)||!!r}async validate(e){if(await this.skipFor(e))return;let{source:a}=e,{chain:r,destinationFee:o,destinationFeeBalance:i}=a,u=await this.getMin(r,o),c=o.copyWith({amount:o.amount+u});if(i.amount<c.amount)throw new er("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:r.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new le(e).getAssetMin(s);let r=e.getAssetMin(s)*10**s.decimals;return BigInt(r)}};import{TransferValidation as tr,TransferValidationError as sr}from"@galacticcouncil/xc-core";var Ds=class extends tr{async skipFor(e){let{asset:s,destination:a}=e,r=a.chain;return await new le(r).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:a,destination:r}=e,o=r.chain;if(await new le(o).getSystemAccountBalance(a)===0n)throw new sr("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:r.chain.name,error:"account.insufficientDeposit"})}},Ls=class extends tr{async validate(e){let{asset:s,sender:a,source:r}=e,o=r.chain;if(await new le(o).checkIfFrozen(a,s))throw new sr("Asset_Frozen",{asset:s.originSymbol,chain:r.chain.name,error:"asset.frozen"})}};import{TransferValidation as nr,TransferValidationError as ar}from"@galacticcouncil/xc-core";var ju=12,$u=1,Ju=18,Hs=class extends nr{async skipFor(e){let{destination:s}=e,a=s.chain,r=new qe(a),o=s.balance.amount>0n,i=await r.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:a,destination:r}=e,o=r.chain,i=new qe(o),u=await i.getFeeAsset(a),c=o.findAssetById(u),d=c.min||$u,b=c.decimals||ju,g=d*Math.pow(10,b),w=await i.getAssetBalance(a,u);if(BigInt(g*1.1)>w)throw new ar("Insufficient_Ed",{amount:g,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Ws=class extends nr{async skipFor(e){let{source:s,transact:a}=e,{enabled:r}=s.destinationFeeSwap||{};return!(!!a&&a.chain.key==="moonbeam")||!!r}async validate(e){if(await this.skipFor(e))return;let{sender:a,source:r}=e,o=r.chain,i=new qe(o),u=o.getBalanceAssetId(y),c=o.getAssetDecimals(y)||Ju,d=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(a,u.toString())<BigInt(d))throw new ar("Insufficient_Ed",{amount:1,asset:y.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ce={isAny:()=>!0,isHydration:t=>t instanceof or&&t.parachainId===2034,isHub:t=>t instanceof or&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},Qu=[new Ss(Ce.isAny,Ce.isAny),new _s(Ce.isAny,Ce.isAny),new Ds(Ce.isAny,Ce.isHub),new Ls(Ce.isHub,Ce.isAny),new Hs(Ce.isAny,Ce.isHydration),new Ws(Ce.isHydration,Ce.isAny)];var ir={};rs(ir,{AssethubDex:()=>Pn,HydrationDex:()=>vn});import{pool as Yu,sor as Zu,tx as el}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as tl}from"@galacticcouncil/common";import{memoize1 as sl}from"@thi.ng/memoize";var{PoolType:Ms}=Yu,{TradeRouteBuilder:nl,TradeRouter:al}=Zu,{TxBuilderFactory:ol}=el,vn=class{chain;client;poolCtx;txBuilder;getCtx=sl(async e=>{console.log("init swap router",e,"\u2705");let s=new al(this.poolCtx);return s.withFilter({useOnly:[Ms.Aave,Ms.Omni,Ms.Stable,Ms.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new qe(this.chain),this.txBuilder=new ol(s.client,s.evm)}async getCalldata(e,s,a,r,o=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(a)),c=r.amount,d=await this.getCtx(1),b=await d.getMostLiquidRoute(i,u),g=await d.getBuy(i,u,c,b);return(await(await this.txBuilder.trade(g).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,a,r){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=a.amount,c=await this.getCtx(1);try{let d=await c.getMostLiquidRoute(o,i),b=await c.getBuy(o,i,u,d);return{amount:b.amountIn,route:nl.build(b.swaps)}}catch(d){if(r)return{amount:await this.getFallbackPrice(e,a.amount)};throw d}}async getFallbackPrice(e,s){let a=this.chain.getAssetId(e),r=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!r)throw new Error(`No price found for asset ${e}`);let o=r*s,i=Math.pow(10,tl);return o/BigInt(i)}};import{encodeLocation as rr}from"@galacticcouncil/common";var Pn=class{chain;client;constructor(e){this.chain=e,this.client=new le(this.chain)}async getCalldata(e,s,a,r){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,a){let r=this.chain.getAssetXcmLocation(e),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(rr(r),rr(o),a.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as il}from"@galacticcouncil/xc-core";import{Asset as rl}from"@galacticcouncil/xc-core";function Vs(t){let{id:e,origin:s,symbol:a}=t,r=a.toLowerCase();return new rl({key:[r,s,e].join("_"),originSymbol:a})}function cr(t){let{decimals:e,id:s}=t;return{asset:Vs(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function mr(t){let{decimals:e,id:s,internalId:a,origin:r}=t;return{asset:Vs(t),decimals:e,id:a,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:r},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Bn=class extends il{registerExternal(e){let s=this.getChain("hydration"),a=this.getChain("assethub"),r=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!r(o)&&o.origin===1e3).forEach(o=>{let i=Vs(o),u=cr(o),c=mr(o);console.log("\u{1F480} Registering "+i.key),a.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(a,St(i)),this.updateChainRoute(s,_t(i))})}};export{Bn as HydrationConfigService,pr as assetsMap,oo as builders,Bi as chainsMap,Ua as clients,ir as dex,zu as routesMap,ro as tags,Qu as validations};
1
+ var hr=Object.defineProperty;var os=(t,e)=>{for(var s in e)hr(t,s,{get:e[s],enumerable:!0})};import{Asset as h}from"@galacticcouncil/xc-core";var Te=new h({key:"aave",originSymbol:"AAVE"}),ee=new h({key:"aca",originSymbol:"ACA"}),ve=new h({key:"ajun",originSymbol:"AJUN"}),S=new h({key:"astr",originSymbol:"ASTR"}),E=new h({key:"bnc",originSymbol:"BNC"}),Ns=new h({key:"bsx",originSymbol:"BSX"}),be=new h({key:"cfg",originSymbol:"CFG"}),Pe=new h({key:"cfg_new",originSymbol:"CFG"}),Be=new h({key:"cru",originSymbol:"CRU"}),de=new h({key:"dai",originSymbol:"DAI"}),te=new h({...de,key:"dai_mwh"}),tt=new h({key:"ded",originSymbol:"DED"}),A=new h({key:"dot",originSymbol:"DOT"}),st=new h({key:"dota",originSymbol:"DOTA"}),D=new h({key:"eth",originSymbol:"ETH"}),Xe=new h({key:"ena",originSymbol:"ENA"}),y=new h({key:"glmr",originSymbol:"GLMR"}),q=new h({key:"hdx",originSymbol:"HDX"}),W=new h({key:"ibtc",originSymbol:"IBTC"}),L=new h({key:"intr",originSymbol:"INTR"}),ne=new h({key:"jitoSol",originSymbol:"jitoSOL"}),br=new h({key:"kar",originSymbol:"KAR"}),Fe=new h({key:"kilt",originSymbol:"KILT"}),P=new h({key:"ksm",originSymbol:"KSM"}),Ee=new h({key:"ldo",originSymbol:"LDO"}),Ie=new h({key:"laos",originSymbol:"LAOS"}),Re=new h({key:"lbtc",originSymbol:"LBTC"}),Se=new h({key:"ewt",originSymbol:"EWT"}),fe=new h({key:"ldot",originSymbol:"LDOT"}),_e=new h({key:"link",originSymbol:"LINK"}),K=new h({key:"myth",originSymbol:"MYTH"}),Os=new h({key:"nodl",originSymbol:"NODL"}),De=new h({key:"neuro",originSymbol:"NEURO"}),Le=new h({key:"pen",originSymbol:"PEN"}),He=new h({key:"pha",originSymbol:"PHA"}),We=new h({key:"paxg",originSymbol:"PAXG"}),Y=new h({key:"pink",originSymbol:"PINK"}),Me=new h({key:"ring",originSymbol:"RING"}),Ve=new h({key:"sky",originSymbol:"SKY"}),G=new h({key:"sol",originSymbol:"SOL"}),ae=new h({key:"sui",originSymbol:"SUI"}),Gs=new h({key:"sub",originSymbol:"SUB"}),Ke=new h({key:"susde",originSymbol:"sUSDe"}),je=new h({key:"susds",originSymbol:"sUSDS"}),ye=new h({...je,key:"susds_mwh"}),Ue=new h({key:"tbtc",originSymbol:"tBTC"}),qs=new h({key:"teer",originSymbol:"TEER"}),zs=new h({key:"tnkr",originSymbol:"TNKR"}),Ne=new h({key:"trac",originSymbol:"TRAC"}),Oe=new h({key:"unq",originSymbol:"UNQ"}),p=new h({key:"usdt",originSymbol:"USDT"}),xe=new h({...p,key:"usdt_mwh"}),At=new h({...p,key:"usdt_eth"}),x=new h({key:"usdc",originSymbol:"USDC"}),z=new h({...x,key:"usdc_mwh"}),wt=new h({...x,key:"usdc_eth"}),j=new h({key:"vastr",originSymbol:"vASTR"}),H=new h({key:"vdot",originSymbol:"vDOT"}),Wt=new h({key:"weth",originSymbol:"WETH"}),Z=new h({...Wt,key:"weth_mwh"}),$e=new h({key:"wbtc",originSymbol:"WBTC"}),ge=new h({...$e,key:"wbtc_mwh"}),Ge=new h({key:"wsteth",originSymbol:"wstETH"}),nt=new h({key:"wud",originSymbol:"WUD"}),js=new h({key:"xrt",originSymbol:"XRT"}),pe=new h({key:"ztg",originSymbol:"ZTG"}),yr=[Te,ee,ve,S,Ns,be,Pe,Be,E,de,te,tt,A,st,Xe,D,y,q,W,L,br,Fe,P,Ee,Ie,Re,Se,ne,fe,_e,K,De,Os,We,He,Le,Y,Me,Ve,G,ae,Gs,Ke,je,ye,qs,zs,Ne,Ue,Oe,x,z,wt,p,xe,At,j,H,$e,ge,Wt,Z,Ge,nt,js,pe],xr=new Map(yr.map(t=>[t.key,t]));import{ChainEcosystem as gr,EvmChain as Ar}from"@galacticcouncil/xc-core";import{mainnet as wr}from"viem/chains";var I=new Ar({id:1,key:"ethereum",name:"Ethereum",assetsData:[{asset:D,decimals:18,id:"0x0000000000000000000000000000000000000000"},{asset:Te,decimals:18,id:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"},{asset:Pe,decimals:18,id:"0xcccccccccc33d538dbc2ee4feab0a7a1ff4e8a94"},{asset:Wt,decimals:18,id:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},{asset:de,decimals:18,id:"0x6B175474E89094C44Da98b954EedeAC495271d0F"},{asset:Xe,decimals:18,id:"0x57e114b691db790c35207b2e685d4a43181e6061"},{asset:Ke,decimals:18,id:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"},{asset:je,decimals:18,id:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"},{asset:Ue,decimals:18,id:"0x18084fba666a33d37592fa2633fd49a74dd93a88"},{asset:$e,decimals:8,id:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},{asset:Re,decimals:8,id:"0x8236a87084f8b84306f72007f36f2618a5634494"},{asset:x,decimals:6,id:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{asset:p,decimals:6,id:"0xdAC17F958D2ee523a2206206994597C13D831ec7"},{asset:Ee,decimals:18,id:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"},{asset:_e,decimals:18,id:"0x514910771af9ca656af840dff83e8264ecf986ca"},{asset:We,decimals:18,id:"0x45804880de22913dafe09f4980848ece6ecbaf78"},{asset:Ve,decimals:18,id:"0x56072c95faa701256059aa122697b133aded9279"},{asset:Ne,decimals:18,id:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"},{asset:Ge,decimals:18,id:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}],ecosystem:gr.Ethereum,evmChain:wr,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 En=[I];import{ChainEcosystem as Br,EvmParachain as Xr}from"@galacticcouncil/xc-core";import{defineChain as Fr}from"viem";import{Blake2256 as kr,getSs58AddressInfo as Cr}from"@polkadot-api/substrate-bindings";import{toHex as In}from"@polkadot-api/utils";var Tr="evm:",ds=new TextEncoder().encode(Tr),fs=class{async toH160(e,s){if(!s)return this.toDefaultH160(e);try{let a=await s.getChainSpecData(),o=await s.getTypedApi(a.genesisHash).query.EvmAccounts.evm_addresses(e);if(o)return o}catch{}return this.toDefaultH160(e)}toDefaultH160(e){let s=Cr(e);if(!s.isValid)throw new Error("Invalid SS58 address");let a=s.publicKey;if(a.length>=24&&a.slice(0,4).every((u,c)=>u===ds[c]))return In(a.slice(4,24));let o=new Uint8Array(ds.length+a.length);o.set(ds),o.set(a,ds.length);let i=kr(o);return In(i.slice(0,20))}};import{getSs58AddressInfo as vr}from"@polkadot-api/substrate-bindings";var Pr="ETH\0",ps=class{async toH160(e){let s=vr(e);if(!s.isValid)throw new Error(`Invalid SS58 address: ${e}`);let a=s.publicKey,r=Buffer.from(Pr),o=a.slice(r.length,-8);return"0x"+Buffer.from(o).toString("hex")}};var Er=new fs,Ir=Fr({id:787,name:"Acala",network:"acala",nativeCurrency:{decimals:18,name:"ACA",symbol:"ACA"},rpcUrls:{public:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]},default:{http:["https://eth-rpc-acala.aca-api.network"],webSocket:["wss://eth-rpc-acala.aca-api.network"]}},blockExplorers:{default:{name:"Acala Blockscout",url:"https://blockscout.acala.network"}},testnet:!1}),kt=new Xr({assetsData:[{asset:ee,id:{Token:ee.originSymbol},metadataId:{NativeAssetId:{Token:ee.originSymbol}},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:fe,decimals:10,id:{Token:fe.originSymbol},metadataId:{NativeAssetId:{Token:fe.originSymbol}},min:.05,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,decimals:18,id:{ForeignAsset:0},min:.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Br.Polkadot,evmChain:Ir,evmResolver:Er,explorer:"https://acala.subscan.io",genesisHash:"0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c",key:"acala",name:"Acala",parachainId:2e3,ss58Format:10,wormhole:{id:12,coreBridge:"0xa321448d90d4e5b0A732867c18eA198e75CAC48E",tokenBridge:"0xae9d7fe007b3327AA64A32824Aaac52C42a6E624"},ws:"wss://acala-rpc.n.dwellir.com"});import{ChainEcosystem as Rr,Parachain as Sr}from"@galacticcouncil/xc-core";var Mt=new Sr({assetsData:[{asset:ve,id:"AJUN",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Rr.Polkadot,genesisHash:"0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee",key:"ajuna",name:"Ajuna",parachainId:2051,ss58Format:1328,ws:"wss://rpc-para.ajuna.network",explorer:"https://ajuna.subscan.io/"});import{ChainEcosystem as _r,Parachain as Rn}from"@galacticcouncil/xc-core";var Sn={assetsData:[{asset:A,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:Y,decimals:10,id:23,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:23}]}}},{asset:tt,decimals:10,id:30,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:30}]}}},{asset:st,decimals:4,id:18,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:18}]}}},{asset:nt,decimals:10,id:31337,xcmLocation:{parents:0,interior:{X2:[{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:K,decimals:18,min:3e-8,xcmLocation:{parents:1,interior:{X1:[{Parachain:3369}]}}},{asset:P,decimals:12,min:1e-4,xcmLocation:{parents:2,interior:{X1:[{GlobalConsensus:"Kusama"}]}}}],ecosystem:_r.Polkadot,explorer:"https://assethub-polkadot.subscan.io",genesisHash:"0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f",name:"AssetHub",parachainId:1e3,ss58Format:0,treasury:"14xmwinmCEz6oRrFdczHKqHgWNMiCysE2KrA4jXXAAM1Eogk",usesDeliveryFee:!0,ws:["wss://asset-hub-polkadot-rpc.n.dwellir.com","wss://polkadot-asset-hub-rpc.polkadot.io"]},T=new Rn({...Sn,key:"assethub",name:"AssetHub Polkadot"}),Vt=new Rn({...Sn,key:"assethub_cex",name:"AssetHub (CEX)",usesCexForwarding:!0,usesSignerFee:!0,isTestChain:!0});import{ChainEcosystem as Dr,Parachain as Lr}from"@galacticcouncil/xc-core";var oe=new Lr({assetsData:[{asset:S,xcmLocation:{parents:0,interior:"Here"}},{asset:A,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:E,id:"18446744073709551623",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:y,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:L,id:"18446744073709551621",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:He,id:"18446744073709551622",decimals:12,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:H,id:"18446744073709551624",decimals:10,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:j,id:"18446744073709551632",decimals:18,min:.01,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Dr.Polkadot,explorer:"https://astar.subscan.io",genesisHash:"0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6",key:"astar",name:"Astar",parachainId:2006,ss58Format:5,ws:"wss://rpc.astar.network"});import{ChainEcosystem as Hr,Parachain as Wr}from"@galacticcouncil/xc-core";var Mr=["wss://bifrost-polkadot.ibp.network","wss://eu.bifrost-polkadot-rpc.liebi.com/ws","wss://bifrost-polkadot.dotters.network"],M=new Wr({assetsData:[{asset:E,id:{Native:E.originSymbol},xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,id:{VToken2:0},decimals:10,min:1e-4,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:j,id:{VToken2:3},decimals:18,min:.01,xcmLocation:{parents:0,interior:{X1:[{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,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:Y,id:{Token2:10},decimals:10,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:S,id:{Token2:3},decimals:18,min:.01,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:y,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:Hr.Polkadot,explorer:"https://bifrost.subscan.io",genesisHash:"0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b",key:"bifrost",name:"Bifrost",parachainId:2030,ss58Format:6,ws:Mr});import{ChainEcosystem as Vr,Parachain as Kr}from"@galacticcouncil/xc-core";var Ur=["wss://rpc-centrifuge.luckyfriday.io","wss://fullnode.centrifuge.io"],Ct=new Kr({assetsData:[{asset:be,id:"Native",xcmLocation:{parents:0,interior:"Here"}},{asset:A,id:{ForeignAsset:5},decimals:10,min:1e-4,xcmLocation:{parents:1,interior:"Here"}},{asset:y,id:{ForeignAsset:4},decimals:18,min:.001,xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:Vr.Polkadot,explorer:"https://centrifuge.subscan.io",genesisHash:"0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82",key:"centrifuge",name:"Centrifuge",parachainId:2031,ss58Format:36,ws:Ur});import{ChainEcosystem as Nr,Parachain as Or}from"@galacticcouncil/xc-core";var Kt=new Or({assetsData:[{asset:Be,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Nr.Polkadot,explorer:"https://crust.subscan.io",genesisHash:"0x4319cc49ee79495b57a1fec4d2bd43f59052dcc690276de566c2691d6df4f7b8",key:"crust",name:"Crust network",parachainId:2008,ss58Format:88,ws:["wss://crust-parachain.crustnetwork.app","wss://crust-parachain.crustapps.net"]});import{ChainEcosystem as Gr,EvmParachain as qr}from"@galacticcouncil/xc-core";import{darwinia as zr}from"viem/chains";var Ut=new qr({assetsData:[{asset:Me,id:"SelfReserve",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Gr.Polkadot,evmChain:zr,explorer:"https://darwinia.subscan.io",genesisHash:"0xf0b8924b12e8108550d28870bc03f7b45a947e1b2b9abf81bfb0b89ecb60570e",key:"darwinia",name:"Darwinia",parachainId:2046,ss58Format:18,usesH160Acc:!0,ws:"wss://darwinia-rpc.dwellir.com"});import{ChainEcosystem as jr,EvmParachain as $r}from"@galacticcouncil/xc-core";import{defineChain as Jr}from"viem";var Qr=new ps,$s=["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"],Js=["wss://hydration-rpc.n.dwellir.com","wss://hydration.dotters.network","wss://rpc.helikon.io/hydradx","wss://hydration.ibp.network"],Yr=Jr({id:222222,name:"Hydration",network:"hydration",nativeCurrency:{decimals:18,name:"WETH",symbol:"WETH"},rpcUrls:{public:{http:$s,webSocket:Js},default:{http:$s,webSocket:Js}},blockExplorers:{default:{name:"Hydration Explorer",url:"https://hydration.subscan.io"}},testnet:!1}),l=new $r({assetsData:[{asset:q,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:Te,decimals:18,id:1000624,min:6e-5,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9"}}]}}},{asset:ee,decimals:12,id:1000099,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ve,decimals:12,id:32,min:.11,xcmLocation:{parents:1,interior:{X2:[{Parachain:2051},{GeneralKey:{length:4,data:"0x414a554e00000000000000000000000000000000000000000000000000000000"}}]}}},{asset:S,decimals:18,id:9,min:.15,xcmLocation:{parents:1,interior:{X1:{Parachain:2006}}}},{asset:E,decimals:12,id:14,min:.069,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:be,decimals:18,id:13,min:.033,xcmLocation:{parents:1,interior:{X2:[{Parachain:2031},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Pe,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:tt,decimals:10,id:1000019,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:30}]}}},{asset:A,decimals:10,id:5,min:.0018,xcmLocation:{parents:1,interior:"Here"}},{asset:st,decimals:4,id:1000038,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:18}]}}},{asset:te,decimals:18,id:18,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:D,decimals:18,id:34,min:55e-7,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:{Ethereum:{chain_id:1}}}}}},{asset:Xe,decimals:18,id:38,min:.037,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x57e114b691db790c35207b2e685d4a43181e6061"}}]}}},{asset:y,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:L,decimals:10,id:17,min:.62,xcmLocation:{parents:1,interior:{X2:[{Parachain:2032},{GeneralKey:{length:2,data:"0x0002000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:ne,decimals:9,id:40,min:27e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:Fe,decimals:15,id:28,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:2086}}}},{asset:Se,decimals:18,id:252525,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3345}}}},{asset:Ee,decimals:18,id:1000796,min:.013,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x5a98fcbea516cf06857215779fd812ca3bef1b32"}}]}}},{asset:P,decimals:12,id:1000771,min:35e-5,xcmLocation:{parents:2,interior:{X1:{GlobalConsensus:"Kusama"}}}},{asset:Ie,decimals:18,id:3370,xcmLocation:{parents:1,interior:{X1:{Parachain:3370}}}},{asset:Re,decimals:8,id:1000851,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x8236a87084f8b84306f72007f36f2618a5634494"}}]}}},{asset:fe,decimals:10,id:1000100,min:.011,xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0003000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:_e,decimals:18,id:1000794,min:.001,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x514910771af9ca656af840dff83e8264ecf986ca"}}]}}},{asset:We,decimals:18,id:39,min:5e-6,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x45804880de22913dafe09f4980848ece6ecbaf78"}}]}}},{asset:K,decimals:18,id:30,min:.022,xcmLocation:{parents:1,interior:{X1:{Parachain:3369}}}},{asset:De,decimals:12,id:36,min:.001,xcmLocation:{parents:1,interior:{X1:{Parachain:2043}}}},{asset:Os,decimals:11,id:26,min:1.1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2026},{PalletInstance:2}]}}},{asset:Le,decimals:12,id:1000081,min:.16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2094},{PalletInstance:10}]}}},{asset:Y,decimals:10,id:1000021,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{asset:He,decimals:12,id:8,min:.055,xcmLocation:{parents:1,interior:{X1:{Parachain:2035}}}},{asset:Me,decimals:18,id:31,min:1,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:Ve,decimals:18,id:1000795,min:.52,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x56072c95faa701256059aa122697b133aded9279"}}]}}},{asset:Gs,decimals:10,id:24,min:.02,xcmLocation:{parents:1,interior:{X1:{Parachain:2101}}}},{asset:G,decimals:9,id:1000752,min:47e-6,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x99fec54a5ad36d50a4bba3a41cab983a5bb86a7d"}}]}}},{asset:ae,decimals:9,id:1000753,min:.003,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:Ke,decimals:18,id:1000625,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x9d39a5de30e57443bff2a8307a4256c8797a3497"}}]}}},{asset:je,decimals:18,id:1000626,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xa3931d71877c0e7a3148cb7eb4463524fec27fbd"}}]}}},{asset:ye,decimals:18,id:1000745,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:Ue,decimals:18,id:1000765,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x18084fba666a33d37592fa2633fd49a74dd93a88"}}]}}},{asset:Ne,decimals:18,id:35,min:.028,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xaA7a9CA87d3694B5755f213B5D04094b8d0F0A6F"}}]}}},{asset:Oe,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:z,decimals:6,id:21,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:wt,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:xe,decimals:6,id:23,min:.01,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30e9ca94cf52f3bf5692aacf81353a27052c46f"}}]}}},{asset:At,decimals:6,id:1000767,min:.01,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xdac17f958d2ee523a2206206994597c13d831ec7"}}]}}},{asset:j,decimals:18,id:33,min:.14,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0903000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:H,decimals:10,id:15,min:.0019,xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:$e,decimals:8,id:1000190,min:23e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"}}]}}},{asset:ge,decimals:8,id:19,min:34e-8,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xe57ebd2d67b462e9926e04a8e33f01cd0d64346d"}}]}}},{asset:Wt,decimals:18,id:1000189,min:61e-7,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"}}]}}},{asset:Z,decimals:18,id:20,min:54e-7,xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245b83feb11d15aaffefd7ad465a59817ed"}}]}}},{asset:Ge,decimals:18,id:1000809,min:635e-8,xcmLocation:{parents:2,interior:{X2:[{GlobalConsensus:{Ethereum:{chain_id:1}}},{AccountKey20:{network:null,key:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"}}]}}},{asset:nt,decimals:10,id:1000085,min:2e4,xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:31337}]}}},{asset:pe,decimals:10,id:12,min:.091,xcmLocation:{parents:1,interior:{X2:[{Parachain:2092},{GeneralKey:{length:2,data:"0x0001000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:jr.Polkadot,evmChain:Yr,evmResolver:Qr,explorer:"https://hydration.subscan.io",genesisHash:"0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d",key:"hydration",name:"Hydration",parachainId:2034,ss58Format:63,ws:Js,rpcs:$s});import{ChainEcosystem as Zr,Parachain as ei}from"@galacticcouncil/xc-core";var Ae=new ei({assetsData:[{asset:L,decimals:10,id:{Token:L.originSymbol}},{asset:W,decimals:8,id:{Token:W.originSymbol}},{asset:A,decimals:10,id:{Token:A.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:q,decimals:12,id:{ForeignAsset:13},xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:H,decimals:10,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2030},{GeneralKey:{length:2,data:"0x0900000000000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Zr.Polkadot,explorer:"https://interlay.subscan.io",genesisHash:"0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72",key:"interlay",name:"Interlay",parachainId:2032,ss58Format:2032,ws:"wss://api.interlay.io/parachain"});import{ChainEcosystem as ti,Parachain as si}from"@galacticcouncil/xc-core";var Nt=new si({assetsData:[{asset:Fe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ti.Polkadot,explorer:"https://spiritnet.subscan.io",genesisHash:"0x411f057b9107718c9624d6aa4a3f23c1653898297f3d4d529d9bb6511a39dd21",key:"kilt",name:"Kilt",parachainId:2086,ss58Format:38,ws:"wss://spiritnet.kilt.io"});import{ChainEcosystem as ni,Parachain as ai}from"@galacticcouncil/xc-core";var Ot=new ai({assetsData:[{asset:Ie,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:ni.Polkadot,explorer:"https://laos.statescan.io",genesisHash:"0xe8aecc950e82f1a375cf650fa72d07e0ad9bef7118f49b92283b63e88b1de88b",key:"laos",name:"Laos",parachainId:3370,ss58Format:42,usesH160Acc:!0,ws:"wss://rpc.laos.laosfoundation.io"});import{ChainEcosystem as oi,EvmParachain as ri}from"@galacticcouncil/xc-core";import{defineChain as ii}from"viem";var ci=ii({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}),R=new ri({assetsData:[{asset:y,id:"0x0000000000000000000000000000000000000802",min:.1,xcmLocation:{parents:0,interior:{X1:[{PalletInstance:10}]}}},{asset:te,decimals:18,id:"0x06e605775296e851FF43b4dAa541Bb0984E9D6fD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x06e605775296e851ff43b4daa541bb0984e9d6fd"}}]}}},{asset:G,decimals:9,id:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x99Fec54a5Ad36D50A4Bba3a41CAB983a5BB86A7d"}}]}}},{asset:ne,decimals:9,id:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xe9f9a2e3deae4093c00fbc57b22bb51a4c05ad88"}}]}}},{asset:ye,decimals:18,id:"0xda430218862d3db25de9f61458645dde49a9e9c1",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xda430218862d3db25de9f61458645dde49a9e9c1"}}]}}},{asset:ae,decimals:9,id:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x484ecce6775143d3335ed2c7bcb22151c53b9f49"}}]}}},{asset:z,decimals:6,id:"0x931715FEE2d06333043d11F658C8CE934aC61D0c",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715FEE2d06333043d11F658C8CE934aC61D0c"}}]}}},{asset:xe,decimals:6,id:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xc30E9cA94CF52f3Bf5692aaCF81353a27052c46f"}}]}}},{asset:ge,decimals:8,id:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D"}}]}}},{asset:Z,decimals:18,id:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD",xcmLocation:{parents:0,interior:{X2:[{PalletInstance:110},{AccountKey20:{network:null,key:"0xab3f0245B83feB11d15AAffeFD7AD465a59817eD"}}]}}},{asset:ee,decimals:12,id:"0xffffffffa922fef94566104a6e5a35a4fcddaa9f",xcmLocation:{parents:1,interior:{X2:[{Parachain:2e3},{GeneralKey:{length:2,data:"0x0000000000000000000000000000000000000000000000000000000000000000"}}]}}},{asset:A,decimals:10,id:"0xffffffff1fcacbd218edc0eba20fc2308c778080",xcmLocation:{parents:1,interior:"Here"}},{asset:q,decimals:12,id:"0xffffffff345dc44ddae98df024eb494321e73fcc",xcmLocation:{parents:1,interior:{X2:[{Parachain:2034},{GeneralIndex:0}]}}},{asset:Y,decimals:10,id:"0xffffffff30478fafbe935e466da114e14fb3563d",xcmLocation:{parents:1,interior:{X3:[{Parachain:1e3},{PalletInstance:50},{GeneralIndex:23}]}}},{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:oi.Polkadot,evmChain:ci,explorer:"https://moonbeam.subscan.io",genesisHash:"0xfe58ea77779b7abda7da4ec526d14db9b1e9cd40a217c34892af80a9b332b76d",key:"moonbeam",name:"Moonbeam",parachainId:2004,ss58Format:1284,usesH160Acc:!0,wormhole:{id:16,coreBridge:"0xC8e2b0cD52Cf01b0Ce87d389Daa3d414d4cE29f3",tokenBridge:"0xb1731c586ca89a23809861c6103f0b96b3f57d92",tokenRelayer:"0xCafd2f0A35A4459fA40C0517e17e6fA2939441CA"},ws:"wss://wss.api.moonbeam.network"});import{ChainEcosystem as mi,Parachain as ui}from"@galacticcouncil/xc-core";var dt=new ui({assetsData:[{asset:K,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:mi.Polkadot,explorer:"https://mythos.subscan.io",genesisHash:"0xf6ee56e9c5277df5b4ce6ae9983ee88f3cbed27d31beeb98f9f84f997a1ab0b9",key:"mythos",name:"Mythos",parachainId:3369,ss58Format:29972,usesH160Acc:!0,ws:"wss://polkadot-mythos-rpc.polkadot.io"});import{ChainEcosystem as li,Parachain as di}from"@galacticcouncil/xc-core";var Gt=new di({assetsData:[{asset:De,xcmLocation:{parents:0,interior:{X1:{PalletInstance:10}}}}],ecosystem:li.Polkadot,explorer:"https://neuroweb.subscan.io",genesisHash:"0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174",key:"neuroweb",name:"Neuroweb",parachainId:2043,ss58Format:101,ws:"wss://parachain-rpc.origin-trail.network"});import{ChainEcosystem as fi,Parachain as pi}from"@galacticcouncil/xc-core";var qt=new pi({assetsData:[{asset:Le,id:"Native",xcmLocation:{parents:0,interior:"Here"}}],ecosystem:fi.Polkadot,explorer:"https://pendulum.subscan.io",genesisHash:"0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86",key:"pendulum",name:"Pendulum",parachainId:2094,ss58Format:56,ws:"wss://rpc-pendulum.prd.pendulumchain.tech"});import{ChainEcosystem as hi,Parachain as _n}from"@galacticcouncil/xc-core";var Dn={assetsData:[{asset:A,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:hi.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"},Tt=new _n({...Dn,key:"polkadot"}),Ln=new _n({...Dn,key:"polkadot_cex",name:"Polkadot (CEX)",usesCexForwarding:!0,isTestChain:!0});import{ChainEcosystem as bi,Parachain as yi}from"@galacticcouncil/xc-core";var zt=new yi({assetsData:[{asset:Oe,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:bi.Polkadot,explorer:"https://unique.subscan.io",genesisHash:"0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31",key:"unique",name:"Unique network",parachainId:2037,ss58Format:7391,ws:"wss://ws.unique.network"});import{ChainEcosystem as xi,Parachain as gi}from"@galacticcouncil/xc-core";var at=new gi({assetsData:[{asset:pe,id:"Ztg",xcmLocation:{parents:0,interior:"Here"}},{asset:z,decimals:6,id:{ForeignAsset:1},xcmLocation:{parents:1,interior:{X3:[{Parachain:2004},{PalletInstance:110},{AccountKey20:{network:null,key:"0x931715fee2d06333043d11f658c8ce934ac61d0c"}}]}}},{asset:y,decimals:18,id:{ForeignAsset:3},xcmLocation:{parents:1,interior:{X2:[{Parachain:2004},{PalletInstance:10}]}}}],ecosystem:xi.Polkadot,explorer:"https://zeitgeist.subscan.io",genesisHash:"0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060",key:"zeitgeist",name:"Zeitgeist",parachainId:2092,ss58Format:73,usesChainDecimals:!0,ws:"wss://zeitgeist.api.onfinality.io/public-ws"});import{ChainEcosystem as Ai,Parachain as wi}from"@galacticcouncil/xc-core";var jt=new wi({assetsData:[{asset:Se,id:0,xcmLocation:{parents:0,interior:"Here"}}],ecosystem:Ai.Polkadot,explorer:"https://energywebx.subscan.io",genesisHash:"0x5a51e04b88a4784d205091aa7bada002f3e5da3045e5b05655ee4db2589c33b5",key:"energywebx",name:"Energy Web X",parachainId:3345,ss58Format:42,ws:"wss://wnp-rpc.mainnet.energywebx.com"});var Hn=[kt,Mt,T,Vt,oe,M,Ct,Kt,Ut,l,Nt,Ot,Gt,Ae,R,dt,qt,Tt,Ln,zt,at,jt];import{ChainEcosystem as ki,SolanaChain as Ci}from"@galacticcouncil/xc-core";var vt=new Ci({id:101,key:"solana",name:"Solana",assetsData:[{asset:G,decimals:9},{asset:ne,id:"J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",decimals:9}],ecosystem:ki.Solana,explorer:"https://explorer.solana.com/",rpcUrls:{http:["https://wispy-palpable-market.solana-mainnet.quiknode.pro"],webSocket:["wss://wispy-palpable-market.solana-mainnet.quiknode.pro"]},wormhole:{id:1,coreBridge:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",tokenBridge:"wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb",platformAddressFormat:"base58"}});var Wn=[vt];import{ChainEcosystem as Ti,SuiChain as vi}from"@galacticcouncil/xc-core";var $t=new vi({id:"0x35834a8a",key:"sui",name:"Sui",assetsData:[{asset:ae,decimals:9}],ecosystem:Ti.Sui,explorer:"https://suiscan.xyz/",wormhole:{id:21,coreBridge:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",tokenBridge:"0xc57508ee0d4595e5a8728974a4a93a787d38f339757230d441e895422c07aba9"}});var Mn=[$t];import{ChainEcosystem as Pi,Parachain as Bi}from"@galacticcouncil/xc-core";var ot=new Bi({assetsData:[{asset:P,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:Pi.Kusama,explorer:"https://assethub-kusama.subscan.io",genesisHash:"0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a",key:"assethub_kusama",name:"AssetHub Kusama",parachainId:1e3,ss58Format:2,treasury:"HWZmQq6zMMk7TxixHfseFT2ewicT6UofPa68VCn3gkXrdJF",usesDeliveryFee:!0,ws:"wss://asset-hub-kusama-rpc.n.dwellir.com"});import{ChainEcosystem as Xi,Parachain as Fi}from"@galacticcouncil/xc-core";var Jt=new Fi({assetsData:[{asset:Ns,id:0,xcmLocation:{parents:0,interior:"Here"}},{asset:P,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}]}}},{asset:qs,decimals:12,id:17,xcmLocation:{parents:1,interior:{X2:[{Parachain:2015},{GeneralKey:{length:4,data:"0x5445455200000000000000000000000000000000000000000000000000000000"}}]}}},{asset:zs,decimals:12,id:6,xcmLocation:{parents:1,interior:{X2:[{Parachain:2125},{GeneralIndex:0}]}}},{asset:js,decimals:9,id:16,xcmLocation:{parents:1,interior:{X2:[{Parachain:2119},{GeneralKey:{length:4,data:"0x42414a5500000000000000000000000000000000000000000000000000000000"}}]}}}],ecosystem:Xi.Kusama,explorer:"https://basilisk.subscan.io",genesisHash:"0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755",key:"basilisk",name:"Basilisk",parachainId:2090,ss58Format:10041,ws:"wss://basilisk-rpc.n.dwellir.com"});var Vn=[ot,Jt];var Ei=[...En,...Hn,...Wn,...Mn,...Vn],Ii=new Map(Ei.map(t=>[t.key,t]));import{AssetRoute as vs,ChainRoutes as om}from"@galacticcouncil/xc-core";var mo={};os(mo,{AssetMinBuilder:()=>ft,BalanceBuilder:()=>n,ContractBuilder:()=>B,ExtrinsicBuilder:()=>m,ExtrinsicDecorator:()=>ct,FeeAmountBuilder:()=>f,FeeAssetBuilder:()=>us,MoveBuilder:()=>An,ProgramBuilder:()=>Ts,XcmTransferType:()=>re,XcmVersion:()=>it});import{SubstrateQueryConfig as Qs}from"@galacticcouncil/xc-core";function ft(){return{assetRegistry:Ri,assets:Si}}function Ri(){let t="AssetRegistry";return{assetMetadatas:()=>({build:({asset:e})=>new Qs({module:t,func:"AssetMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})}),currencyMetadatas:()=>({build:({asset:e})=>new Qs({module:t,func:"CurrencyMetadatas",args:[e],transform:async s=>BigInt(s?.minimalBalance?.toString()??"0")})})}}function Si(){return{asset:()=>({build:({asset:t})=>new Qs({module:"Assets",func:"Asset",args:[t],transform:async e=>BigInt(e?.minBalance?.toString()??"0")})})}}import{Abi as _i,ContractConfig as Kn}from"@galacticcouncil/xc-core";function Un(){return{erc20:Li,native:Di}}function Di(){return{build:({address:t})=>new Kn({abi:[],address:t,args:[],func:"eth_getBalance",module:"Native"})}}function Li(){return{build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e);if(!a||typeof a!="string")throw new Error(`Invalid contract address: ${e}`);return new Kn({abi:_i.Erc20,address:a,args:[t],func:"balanceOf",module:"Erc20"})}}}import{SubstrateQueryConfig as rs}from"@galacticcouncil/xc-core";import{encodeAssetId as Ys,encodeLocation as Hi}from"@galacticcouncil/common";function Nn(){return{assets:Wi,system:Vi,tokens:Ki,ormlTokens:Ui,foreignAssets:Mi}}function Wi(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Ys(a);return new rs({module:"Assets",func:"Account",args:[r,t],transform:async o=>BigInt(o?.balance?.toString()??"0")})}})}}function Mi(){return{account:()=>({build:({address:t,asset:e,chain:s})=>{let r=s.getAssetXcmLocation(e);if(!r)throw new Error("Missing asset xcm location for "+e.key);let o=Hi(r);return new rs({module:"ForeignAssets",func:"Account",args:[o,t],transform:async i=>BigInt(i?.balance?.toString()??"0")})}})}}function Vi(){return{account:()=>({build:({address:t})=>new rs({module:"System",func:"Account",args:[t],transform:async e=>{let s=e?.data,a=BigInt(s?.free?.toString()??"0"),r=BigInt((s?.miscFrozen??s?.frozen)?.toString()??"0");return a>=r?a-r:0n}})})}}function Ki(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Ys(a);return new rs({module:"Tokens",func:"Accounts",args:[t,r],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),u=BigInt(o?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}function Ui(){return{accounts:()=>({build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e),r=Ys(a);return new rs({module:"OrmlTokens",func:"Accounts",args:[t,r],transform:async o=>{let i=BigInt(o?.free?.toString()??"0"),u=BigInt(o?.frozen?.toString()??"0");return i>=u?i-u:0n}})}})}}import{SolanaQueryConfig as On}from"@galacticcouncil/xc-core";function Gn(){return{native:Ni,token:Oi}}function Ni(){return{build:({address:t})=>new On({address:t,func:"rpc_getBalance",module:"Native"})}}function Oi(){return{build:({address:t,asset:e,chain:s})=>{let a=s.getBalanceAssetId(e);if(!a)throw new Error(`Invalid token address: ${e}`);return new On({address:t,token:a.toString(),func:"getBalance",module:"Token"})}}}import{SuiQueryConfig as Gi}from"@galacticcouncil/xc-core";function qn(){return{native:qi}}function qi(){return{build:({address:t})=>new Gi({address:t,func:"sui_getBalance",module:"Native"})}}function n(){return{evm:Un,substrate:Nn,solana:Gn,sui:qn}}import{Abi as zn,ContractConfig as zi,Precompile as ji}from"@galacticcouncil/xc-core";import{encodeFunctionData as $i}from"viem";var Ji=t=>({build:async e=>{let s=await Promise.all(t.map(i=>i.build(e))),a=s.map(i=>i.address),r=[0,0],o=s.map(i=>$i({abi:zn[i.module],functionName:i.func,args:i.args}));return new zi({abi:zn.Batch,address:ji.Batch,args:[a,r,o,[]],func:"batchAll",module:"Batch"})}}),jn=()=>({batchAll:Ji});import{Abi as Qi,ContractConfig as Yi,Wormhole as Zi}from"@galacticcouncil/xc-core";function Qt(t,e){if(e<0||e>100)throw Error(`padPercent ${e} not in range of 0 to 100.`);return t+t*e/100n}function rt(t){return typeof t=="object"?Object.values(t)[0]:t}function $n(){return{approve:t=>({build:async e=>{let{amount:s,asset:a,source:r,transact:o}=e,i=o?o.chain:r.chain,u=Zi.fromChain(i),c=i.getAssetId(a);return new Yi({abi:Qi.Erc20,address:rt(c).toString(),args:[t(u),s],func:"approve",module:"Erc20"})}})}}import{addr as ec,Abi as tc,ContractConfig as sc,Snowbridge as nc}from"@galacticcouncil/xc-core";var{Ss58Addr:ac}=ec,oc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o}=t,i=r.chain,u=o.chain,c=nc.fromChain(i),d=i.getAssetId(a),b=rt(d),g=a.originSymbol==="ETH",w=o.feeBreakdown.bridgeFeeInDot,v=o.fee.amount;return new sc({abi:tc.Snowbridge,address:c.getGateway(),args:[b,u.parachainId,[1,ac.getPubKey(e)],w,s],value:g?v+s:v,func:"sendToken",module:"Snowbridge"})}}),Jn=()=>({sendToken:oc});import{mrl as Yn,Abi as hs,ContractConfig as bs,Precompile as Zn,Wormhole as pt}from"@galacticcouncil/xc-core";import{PublicKey as Qn}from"@solana/web3.js";import{getAssociatedTokenAddress as rc}from"@solana/spl-token";var ic=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,asset:r,source:o,destination:i}=e,u=pt.fromChain(o.chain),c=pt.fromChain(t.moonchain),d=Zn.Bridge,b=o.chain.getAssetId(r),g=0,w=await Yn.createPayload(i.chain,s);return new bs({abi:hs.TokenBridge,address:u.getTokenBridge(),args:[rt(b),a,c.getWormholeId(),c.normalizeAddress(d),g,w.toHex()],func:"transferTokensWithPayload",module:"TokenBridge"})}})}),cc=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,destination:o}=e,i=pt.fromChain(r.chain),u=pt.fromChain(t.moonchain),c=Zn.Bridge,d=0,b=await Yn.createPayload(o.chain,s);return new bs({abi:hs.TokenBridge,address:i.getTokenBridge(),args:[u.getWormholeId(),u.normalizeAddress(c),d,b.toHex()],value:a,func:"wrapAndTransferETHWithPayload",module:"TokenBridge"})}})}),mc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o,transact:i}=t,u=i?i.chain:r.chain,c=o.chain,d=pt.fromChain(u),b=pt.fromChain(c),g=e;if(c.isSolana()){let V=c.getAssetId(a);g=(await rc(new Qn(V),new Qn(e))).toBase58()}let w=u.getAssetId(a),v=0,F=0;return new bs({abi:hs.TokenBridge,address:d.getTokenBridge(),args:[rt(w),s,b.getWormholeId(),b.normalizeAddress(g),v,F],func:"transferTokens",module:"TokenBridge"})}}),uc=()=>({build:async t=>{let{address:e,amount:s,source:a,destination:r}=t,o=pt.fromChain(a.chain),i=pt.fromChain(r.chain),u=0,c=0;return new bs({abi:hs.TokenBridge,address:o.getTokenBridge(),args:[i.getWormholeId(),i.normalizeAddress(e),u,c],value:s,func:"wrapAndTransferETH",module:"TokenBridge"})}}),ea=()=>({transferTokens:mc,transferTokensWithPayload:ic,wrapAndTransferETH:uc,wrapAndTransferETHWithPayload:cc});import{Abi as lc,ContractConfig as dc,Wormhole as ta}from"@galacticcouncil/xc-core";var fc=()=>({build:async t=>{let{address:e,amount:s,asset:a,source:r,destination:o,transact:i}=t,u=i?i.chain:r.chain,c=o.chain,d=ta.fromChain(u),b=ta.fromChain(c),g=0,w=0,v=u.getAssetId(a);return new dc({abi:lc.TokenRelayer,address:d.getTokenRelayer(),args:[rt(v),s,g,b.getWormholeId(),b.normalizeAddress(e),w],func:"transferTokensWithRelay",module:"TokenRelayer"})}}),sa=()=>({transferTokensWithRelay:fc});function na(){return{TokenBridge:ea,TokenRelayer:sa}}import{Abi as aa,ContractConfig as oa,Precompile as ra}from"@galacticcouncil/xc-core";import{big as xc}from"@galacticcouncil/common";import{addr as pc}from"@galacticcouncil/xc-core";import{getSs58AddressInfo as hc}from"@polkadot-api/substrate-bindings";import{toHex as bc}from"@polkadot-api/utils";var{EvmAddr:yc}=pc;function Zs(t,e){let s=yc.isValid(t)?"03":"01",a=hc(t);if(!a.isValid)throw new Error(`Invalid SS58 address: ${t}`);let r=`0x${s}${bc(a.publicKey).slice(2)}00`;return[1,e.parachainId?[`0x0000000${e.parachainId.toString(16)}`,r]:[r]]}function ys(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")}`}var ia=18446744073709551615n;function ca(){return{transfer:(t=ia)=>({build:async({address:e,amount:s,asset:a,destination:r,source:o})=>{let i=o.chain.getAssetId(a);return new oa({abi:aa.Xtokens,address:ra.Xtokens,args:[typeof i=="string"?ys(i):a,s,Zs(e,r.chain),t],func:"transfer",module:"Xtokens"})}}),transferMultiCurrencies:(t=ia)=>({build:async({address:e,amount:s,asset:a,destination:r,source:o})=>{let i=o.chain.getAssetId(a),u=o.chain.getAssetId(o.destinationFeeBalance),c=xc.toBigInt(r.fee.amount,r.fee.decimals);return new oa({abi:aa.Xtokens,address:ra.Xtokens,args:[[[typeof i=="string"?ys(i):i,s],[typeof u=="string"?ys(u):u,c]],1,Zs(e,r.chain),t],func:"transferMultiCurrencies",module:"Xtokens"})}})}}function B(){return{Batch:jn,Erc20:$n,Snowbridge:Jn,Wormhole:na,Xtokens:ca}}import{ExtrinsicConfig as gc}from"@galacticcouncil/xc-core";var ma="AssetConversion",Ac=t=>{let e="swap_tokens_for_exact_tokens";return{build:async({address:s,source:a})=>{let{chain:r}=a,o=a.destinationFeeSwap||a.feeSwap;if(!o)throw new Error("Swap context not found.");let{aIn:i,aOut:u}=o,c=r,d=c.getAssetXcmLocation(i),b=c.getAssetXcmLocation(u),g=i.amount+i.amount*BigInt(t.slippage)/100n,w=u.amount;return new gc({module:ma,func:e,getTx:v=>v.getUnsafeApi().tx[ma][e]({path:[d,b],amount_out:w,amount_in_max:g,send_to:s,keep_alive:!0})})}}},ua=()=>({swapTokensForExactTokens:Ac});import{hub as wc,MultiAddress as kc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Cc}from"@galacticcouncil/xc-core";var Tc="Assets",vc=()=>{let t="transfer";return{build:async({asset:e,amount:s,address:a,destination:r})=>{let o=r.chain,{fee:i}=r,u=s>i.amount?s-i.amount:s,c=o.getMetadataAssetId(e);return new Cc({module:Tc,func:t,getTx:d=>d.getTypedApi(wc).tx.Assets.transfer({id:Number(c),target:kc.Id(a),amount:u})})}}},la=()=>({transfer:vc});import{ExtrinsicConfig as Pc}from"@galacticcouncil/xc-core";var da="Balances",Bc=(t=!1)=>{let e="transfer_all";return{build:async({address:s})=>new Pc({module:da,func:e,getTx:a=>a.getUnsafeApi().tx[da][e]({dest:s,keep_alive:t})})}},fa=()=>({transferAll:Bc});import{hydration as Xc}from"@galacticcouncil/descriptors";import{ExtrinsicConfig as Fc}from"@galacticcouncil/xc-core";var Ec="Router",Ic=t=>({build:async({source:s})=>{let{chain:a,destinationFeeSwap:r}=s;if(!r)throw new Error("Swap context not found.");let{aIn:o,aOut:i,route:u}=r,c=a,d=c.getMetadataAssetId(o),b=c.getMetadataAssetId(i),g=i.amount,w=o.amount+o.amount*BigInt(t.slippage)/100n;return new Fc({module:Ec,func:"buy",getTx:v=>v.getTypedApi(Xc).tx.Router.buy({asset_in:Number(d),asset_out:Number(b),amount_out:g,max_amount_in:w,route:u})})}}),pa=()=>({buy:Ic});import{ExtrinsicConfig as Rc}from"@galacticcouncil/xc-core";var ha="Utility",Sc=t=>{let e="batch_all";return{build:async s=>{let a=await Promise.all(t.map(r=>r.build(s)));return new Rc({module:ha,func:e,getTx:r=>{let o=a.map(i=>i.getTx(r).decodedCall);return r.getUnsafeApi().tx[ha][e]({calls:o})}})}}},ba=()=>({batchAll:Sc});import{Abi as _c,ExtrinsicConfig as Dc}from"@galacticcouncil/xc-core";import{Binary as ya}from"polkadot-api";import{encodeFunctionData as Lc}from"viem";var it=(o=>(o.v1="V1",o.v2="V2",o.v3="V3",o.v4="V4",o.v5="V5",o))(it||{}),re=(r=>(r.Teleport="Teleport",r.LocalReserve="LocalReserve",r.DestinationReserve="DestinationReserve",r.RemoteReserve="RemoteReserve",r))(re||{});var xa="EthereumXcm",Hc=t=>{let e="transact";return{build:async s=>{let a=await t.build(s),r="V1",o=Lc({abi:_c[a.module],functionName:a.func,args:a.args});return new Dc({module:xa,func:e,getTx:i=>i.getUnsafeApi().tx[xa][e]({xcm_transaction:{type:r,value:{gas_limit:[5000000n,0n,0n,0n],fee_payment:{type:"Auto",value:void 0},action:{type:"Call",value:ya.fromHex(a.address)},value:[0n,0n,0n,0n],input:ya.fromHex(o),access_list:void 0}}})})}}},en=()=>({transact:Hc});import{ExtrinsicConfig as Et}from"@galacticcouncil/xc-core";import{big as hn}from"@galacticcouncil/common";import{multiloc as Wa,ChainEcosystem as dn}from"@galacticcouncil/xc-core";import{Binary as a0}from"polkadot-api";import{XcmV3Junctions as he,XcmV3Junction as ms,XcmV3JunctionNetworkId as La,XcmV3MultiassetFungibility as Xt,XcmV4Instruction as $,XcmV4AssetAssetFilter as Zt,XcmV4AssetWildAsset as es,XcmV3WeightLimit as fn,XcmV2MultiassetWildFungibility as o0,XcmV2OriginKind as r0}from"@galacticcouncil/descriptors";import{XcmV3Junctions as Wc}from"@galacticcouncil/descriptors";var me=340282366920938463463374607431768211455n,Pt="0x0000000000000000000000000000000000000000000000000000000000000000",Yt={parents:1,interior:Wc.Here()},ga=0,Aa=1e3,wa=1002,ka=1,Bt="5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";var Ca="0x0000000000000000000000000000000000000000";import{XcmV3Junctions as Qc,XcmV3MultiassetFungibility as sn,XcmV3WeightLimit as Yc,XcmV4AssetAssetFilter as Zc,XcmV4AssetWildAsset as e0,XcmV4Instruction as is}from"@galacticcouncil/descriptors";import{Binary as t0}from"polkadot-api";import{acc as Mc}from"@galacticcouncil/xc-core";import{XcmV3Junction as Ta}from"@galacticcouncil/descriptors";import{FixedSizeBinary as va}from"polkadot-api";import{getSs58AddressInfo as Vc}from"@polkadot-api/substrate-bindings";import{toHex as Kc}from"@polkadot-api/utils";function U(t){if(t.length===42&&t.startsWith("0x"))return Ta.AccountKey20({key:va.fromHex(t),network:void 0});let s=Vc(t);if(!s.isValid)throw new Error(`Invalid SS58 address: ${t}`);return Ta.AccountId32({id:va.fromHex(Kc(s.publicKey)),network:void 0})}function xs(t,e,s){return Mc.getMultilocationDerivatedAccount(t.parachainId,e,s.parachainId===0?0:1,s.usesH160Acc)}import{multiloc as Pa}from"@galacticcouncil/xc-core";function Ba(t,e){let s=Pa.findNestedKey(t,"GeneralIndex"),a=Pa.findNestedKey(e,"GeneralIndex"),r=s&&s.GeneralIndex,o=a&&a.GeneralIndex;return Number.isNaN(r)||Number.isNaN(o)?!1:Number(r)>Number(o)}function N(t,e){let s=t.getAssetXcmLocation(e);if(!s)throw new Error(e.originSymbol+" location config is missing.");return s}var ws={};os(ws,{ETHER_TOKEN_ADDRESS:()=>tn,bridgeLocation:()=>Ea,erc20Location:()=>Oc,erc20LocationReanchored:()=>Gc,parachainLocation:()=>Nc});import{XcmV3Junctions as gs,XcmV3Junction as As,XcmV3JunctionNetworkId as Uc}from"@galacticcouncil/descriptors";import{Binary as Xa}from"polkadot-api";var tn="0x0000000000000000000000000000000000000000",Fa=t=>As.GlobalConsensus(Uc.Ethereum({chain_id:BigInt(t)}));function Ea(t){return{parents:2,interior:gs.X1(Fa(t))}}function Nc(t){return{parents:1,interior:gs.X1(As.Parachain(t))}}function Oc(t,e){return e===tn?Ea(t):{parents:2,interior:gs.X2([Fa(t),As.AccountKey20({key:Xa.fromHex(e)})])}}function Gc(t){return t===tn?{parents:0,interior:{type:"Here"}}:{parents:0,interior:gs.X1(As.AccountKey20({key:Xa.fromHex(t)}))}}import{encodeLocation as qc}from"@galacticcouncil/common";import{multiloc as zc}from"@galacticcouncil/xc-core";function O(t,e){return jc(e)>=4?qc(t):$c(t)}function jc(t){let e=t.toString().replace("V","").replace("v","");return Number(e)}function $c(t){return{Concrete:{...t}}}function Jc(t){if(t&&t.interior!=="Here")return zc.findParachain(t)}function Ia(t,e,s,a){let r=s.getAssetXcmLocation(t),o=Jc(r);if(a){if(o===void 0)throw new Error(`No reserve chain for "${t.originSymbol}" on ${s.name}`);if(o!==a.parachainId)throw new Error(`Wrong reserve chain for "${t.originSymbol}": expected ${o}, got ${a.parachainId}`)}if(!a&&o!==void 0){let i=e.parachainId===o,u=s.parachainId===o;if(!i&&!u)throw new Error(`Reserve chain ${o} required for "${t.originSymbol}"`)}}function nn(t,e){let s="V4",a=O(N(e,t),s),r=t0.fromHex(Pt);return[is.ReserveAssetDeposited([{id:Yt,fun:sn.Fungible(me)},{id:a,fun:sn.Fungible(me)}]),is.ClearOrigin(),is.BuyExecution({fees:{id:Yt,fun:sn.Fungible(me)},weight_limit:Yc.Unlimited()}),is.DepositAsset({assets:Zc.Wild(e0.AllCounted(2)),beneficiary:{parents:0,interior:Qc.X1(U(Bt))}}),is.SetTopic(r)]}import{XcmV4Instruction as an,XcmV3MultiassetFungibility as on,XcmV3WeightLimit as s0}from"@galacticcouncil/descriptors";function Ra(t,e){let s="V4",a=O(N(e,t),s),r=ks("V4",U(Ca),U(Bt),a,Pt);return[an.WithdrawAsset([{id:Yt,fun:on.Fungible(me)},{id:a,fun:on.Fungible(me)}]),an.ClearOrigin(),an.BuyExecution({fees:{id:Yt,fun:on.Fungible(me)},weight_limit:s0.Unlimited()}),...r.value]}import{XcmV3Junctions as rn,XcmV3Junction as n0,XcmV3MultiassetFungibility as cs,XcmV3WeightLimit as cn,XcmV4AssetAssetFilter as mn,XcmV4AssetWildAsset as un,XcmV4Instruction as we}from"@galacticcouncil/descriptors";import{Binary as Sa}from"polkadot-api";function _a(t,e){let s="V4",a=O(N(e,t),s),r=Sa.fromHex(Pt);return[we.WithdrawAsset([{id:a,fun:cs.Fungible(me)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:a,fun:cs.Fungible(me)},weight_limit:cn.Unlimited()}),we.DepositAsset({assets:mn.Wild(un.AllCounted(1)),beneficiary:{parents:0,interior:rn.X1(U(Bt))}}),we.SetTopic(r)]}function ln(t,e){let s="V4",a=O(N(e,t),s);return[we.BuyExecution({fees:{id:a,fun:cs.Fungible(me)},weight_limit:cn.Unlimited()}),we.DepositAsset({assets:mn.Wild(un.AllCounted(1)),beneficiary:{parents:0,interior:rn.X1(U(Bt))}})]}function Da(t,e,s){let a="V4",r=O(N(e,t),a),o=Sa.fromHex(Pt),i=ln(t,s);return[we.WithdrawAsset([{id:r,fun:cs.Fungible(me)}]),we.ClearOrigin(),we.BuyExecution({fees:{id:r,fun:cs.Fungible(me)},weight_limit:cn.Unlimited()}),we.DepositReserveAsset({assets:mn.Wild(un.AllCounted(1)),dest:{parents:1,interior:rn.X1(n0.Parachain(s.parachainId))},xcm:i}),we.SetTopic(o)]}var Ha=[dn.Polkadot,dn.Kusama],i0={parents:1,interior:he.X1(ms.Parachain(1e3))},c0=t=>t.parents===1&&t.interior==="Here",m0=(t,e)=>!t.ecosystem||!e.ecosystem?!1:Ha.includes(t.ecosystem)&&Ha.includes(e.ecosystem)&&t.ecosystem!==e.ecosystem,Ma=t=>{let e=Wa.findGlobalConsensus(t);return e&&"Ethereum"in e},Je=(t,e,s)=>{if(m0(e,s)){let r=s.ecosystem===dn.Polkadot?La.Polkadot():La.Kusama();return{type:t,value:{parents:2,interior:he.X2([ms.GlobalConsensus(r),ms.Parachain(s.parachainId)])}}}if(s.parachainId===ga)return{type:t,value:{parents:1,interior:he.Here()}};let a=s.key==="ethereum"?Aa:s.parachainId;return{type:t,value:{parents:1,interior:he.X1(ms.Parachain(a))}}},Ft=(t,e)=>({type:t,value:{parents:0,interior:he.X1(e)}}),pn=(t,e,s)=>e==="RemoteReserve"?{type:"RemoteReserve",value:{type:t,value:c0(s)?i0:s}}:{type:e},ht=(t,e)=>({id:t,fun:Xt.Fungible(e)}),Va=(t,e,s)=>({type:t,value:[$.DepositAsset({assets:Zt.Wild(es.AllCounted(s)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ks=(t,e,s,a,r)=>{let o=a0.fromHex(r);return{type:t,value:[$.SetAppendix([$.DepositAsset({assets:Zt.Wild(es.All()),beneficiary:{parents:0,interior:he.X1(s)}})]),$.InitiateReserveWithdraw({assets:Zt.Wild(es.AllOf({id:a,fun:o0.Fungible()})),reserve:ws.bridgeLocation(ka),xcm:[$.BuyExecution({fees:{id:u0(a),fun:Xt.Fungible(1n)},weight_limit:fn.Unlimited()}),$.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}}),$.SetTopic(o)]}),$.SetTopic(o)]}},u0=t=>{let e=Wa.findNestedKey(t,"key");return e?{parents:0,interior:he.X1(ms.AccountKey20({key:e.key}))}:{parents:0,interior:he.Here()}},Ka=(t,e,s,a,r,o)=>({type:t,value:[$.WithdrawAsset([{id:s,fun:Xt.Fungible(a)}]),$.BuyExecution({fees:{id:s,fun:Xt.Fungible(a)},weight_limit:fn.Unlimited()}),$.Transact({origin_kind:r0.SovereignAccount(),require_weight_at_most:{ref_time:o.refTime,proof_size:o.proofSize},call:r}),$.RefundSurplus(),$.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]}),Ua=(t,e,s,a,r,o)=>({type:t,value:[$.WithdrawAsset([{id:s,fun:Xt.Fungible(r)}]),$.BuyExecution({fees:{id:s,fun:Xt.Fungible(r)},weight_limit:fn.Unlimited()}),$.TransferAsset({assets:[{id:s,fun:Xt.Fungible(a)}],beneficiary:{parents:0,interior:he.X1(o)}}),$.RefundSurplus(),$.DepositAsset({assets:Zt.Wild(es.AllCounted(1)),beneficiary:{parents:0,interior:he.X1(e)}})]});var ue="PolkadotXcm",l0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=O(N(i,a.fee),c),g=ht(d,e),w=ht(b,a.fee.amount),v="limited_reserve_transfer_assets";return new Et({module:ue,func:v,getTx:F=>{let V=F.getUnsafeApi().tx[ue][v];return s.key===a.fee.key?V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):Ba(d,b)?V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[w,g]},fee_asset_item:0,weight_limit:{type:"Unlimited"}}):V({dest:Je(c,i,u),beneficiary:Ft(c,o),assets:{type:c,value:[g,w]},fee_asset_item:1,weight_limit:{type:"Unlimited"}})}})}}),d0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=ht(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="limited_teleport_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),f0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=ht(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="reserve_transfer_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0})})}}),p0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o=U(t),i=r.chain,u=a.chain,c="V4",d=O(N(i,s),c),b=ht(d,e),g=Je(c,i,u),w=Ft(c,o),v={type:c,value:[b]},F="transfer_assets";return new Et({module:ue,func:F,getTx:V=>V.getUnsafeApi().tx[ue][F]({dest:g,beneficiary:w,assets:v,fee_asset_item:0,weight_limit:{type:"Unlimited"}})})}}),h0=t=>({build:async({address:e,asset:s,amount:a,destination:r,messageId:o,sender:i,source:u,transact:c})=>{let d="V4",b=u.chain,g=r.chain,w=r.fee.amount,v=r.fee;c&&(g=c.chain,w=hn.toBigInt(c.fee.amount,c.fee.decimals),v=c.fee);let F=U(i),V=c||g.usesCexForwarding?xs(b,i,g):e,_=U(V),{transferType:J}=t,Q=N(b,s),k=O(Q,d),mt=N(b,v),Ye=O(mt,d),Ze=ht(k,a),ut=ht(Ye,w),et=s.isEqual(v),lt=Je(d,b,g),Ht={type:d,value:et?[Ze]:[ut,Ze]},Vs=pn(d,J,k),ls={type:d,value:et?k:Ye},Ks=pn(d,J,Ye),Us;Ma(Q)?Us=ks(d,_,F,k,o):Us=Va(d,_,Ht.value.length);let Fn="transfer_assets_using_type_and_then";return new Et({module:ue,func:Fn,getTx:pr=>pr.getUnsafeApi().tx[ue][Fn]({dest:lt,assets:Ht,assets_transfer_type:Vs,remote_fees_id:ls,fees_transfer_type:Ks,custom_xcm_on_dest:Us,weight_limit:{type:"Unlimited"}})})}}),b0=()=>{let t="send";return{transact:e=>({build:async s=>{let{sender:a,source:r,transact:o}=s,i="V4";if(!o)throw new Error("Transact ctx configuration is missing.");let u=r.chain,c=o.chain,d=xs(u,a,c),b=U(d),{fee:g}=o,w=O(N(c,g),i),v=hn.toBigInt(e.fee,g.decimals);return new Et({module:ue,func:t,getTx:F=>F.getUnsafeApi().tx[ue][t]({dest:Je(i,u,c),message:Ka(i,b,w,v,o.call,o.weight)})})}}),transferAsset:e=>({build:async s=>{let{amount:a,address:r,asset:o,sender:i,source:u,destination:c}=s,d="V4",b=u.chain,g=c.chain,w=xs(b,i,g),v=U(w),F=U(r),V=O(N(g,o),d),{fee:_}=c,J=hn.toBigInt(e.fee,_.decimals),Q=a>_.amount?a-(_.amount+J):a;return new Et({module:ue,func:t,getTx:k=>k.getUnsafeApi().tx[ue][t]({dest:Je(d,b,g),message:Ua(d,v,V,Q,J,F)})})}})}},bn=()=>({limitedReserveTransferAssets:l0,limitedTeleportAssets:d0,reserveTransferAssets:f0,transferAssets:p0,transferAssetsUsingTypeAndThen:h0,send:b0});import{ExtrinsicConfig as A0}from"@galacticcouncil/xc-core";import{XcmV3Junctions as y0,XcmV3Junction as x0,XcmV3MultiassetFungibility as g0}from"@galacticcouncil/descriptors";var Na=(t,e)=>({parents:1,interior:y0.X2([x0.Parachain(t.parachainId),e])}),Oa=(t,e)=>({id:t,fun:g0.Fungible(e)});var Ga="XTransfer",w0=()=>({build:async({address:t,amount:e,asset:s,destination:a,source:r})=>{let o="V3",i=U(t),u=r.chain,c=a.chain,d=O(N(u,s),o),b=Oa(d,e),g=Na(c,i),w="transfer";return new A0({module:Ga,func:w,getTx:v=>v.getUnsafeApi().tx[Ga][w]([b,g,{refTime:5e9,proofSize:0}])})}}),yn=()=>({transfer:w0});function m(){return{assetConversion:ua,assets:la,balances:fa,ethereumXcm:en,polkadotXcm:bn,router:pa,utility:ba,xTransfer:yn}}function ct(t,e){return{prior:function(s){return{build:async a=>t(a)?m().utility().batchAll([e,s]).build(a):s.build(a)}},priorMulti:function(s){return{build:async a=>t(a)?m().utility().batchAll([e,...s]).build(a):m().utility().batchAll([...s]).build(a)}}}}import{Abi as ja,Snowbridge as S0,Wormhole as za}from"@galacticcouncil/xc-core";var qa={};os(qa,{AssethubClient:()=>le,BaseClient:()=>ke,HydrationClient:()=>qe});import{encodeLocation as k0}from"@galacticcouncil/common";import{hub as C0,XcmVersionedAssetId as T0}from"@galacticcouncil/descriptors";var ke=class{chain;descriptor;constructor(e,s){this.chain=e,this.descriptor=s??C0}get client(){return this.chain.client}api(){return this.client.getTypedApi(this.descriptor)}get refApi(){return this.api()}async getSystemAccountBalance(e){let a=(await this.refApi.query.System.Account.getValue(e)).data,{free:r,frozen:o}=a;return BigInt(r)-BigInt(o)}async calculateDestinationFee(e,s){let a=await this.refApi.apis.XcmPaymentApi.query_xcm_weight({type:"V4",value:e});if(!a.success)throw Error("Can't query XCM weight.");let r=this.chain.getAssetXcmLocation(s);if(!r)throw Error(`Can't get XCM location for asset ${s.originSymbol}`);let o=k0(r),i=await this.refApi.apis.XcmPaymentApi.query_weight_to_asset_fee(a.value,T0.V4(o));if(!i.success)throw Error(`Can't convert weight to fee in ${s.originSymbol}`);return BigInt(i.value)}};import{XcmV5Junctions as v0,XcmV5Junction as P0,XcmVersionedLocation as B0}from"@galacticcouncil/descriptors";import{encodeLocation as X0}from"@galacticcouncil/common";import{Twox128 as F0,u128 as E0}from"@polkadot-api/substrate-bindings";import{toHex as I0}from"@polkadot-api/utils";var le=class extends ke{constructor(e){super(e)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),a=this.chain.getAssetXcmLocation(e),r=X0(a);if(s===0)return!0;let o=s===e.originSymbol?await this.api().query.ForeignAssets.Asset.getValue(r):await this.api().query.Assets.Asset.getValue(Number(s));return o&&o.is_sufficient||!1}async checkIfFrozen(e,s){let a=this.chain.getAssetId(s);if(a===s.originSymbol)return!1;let r=await this.api().query.Assets.Account.getValue(Number(a),e);return r&&r.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:"),a=I0(F0(s)),r=await this.client._request("state_getStorage",[a]);if(!r)return e.defaultFee;let o=E0.dec(r);return o===0n?e.defaultFee:o}async calculateDeliveryFee(e,s){let a=B0.V5({parents:1,interior:v0.X1(P0.Parachain(s))}),r=await this.api().apis.XcmPaymentApi.query_delivery_fees(a,{type:"V4",value:e});if(!r.success)throw Error("Can't query XCM delivery fee.");let o=r.value.value.find(u=>{let c=u.id;return c&&c.parents&&c.parents===1&&c.interior.type==="Here"});if(!o)throw Error("Can't find XCM delivery fee in DOT.");let i=o.fun.value;if(typeof i=="bigint")return i;throw Error("Can't parse delivery fee.")}};import{hydration as R0}from"@galacticcouncil/descriptors";var qe=class extends ke{constructor(e){super(e,R0)}async checkIfSufficient(e){let s=this.chain.getAssetId(e),a=Number(s),r=await this.api().query.AssetRegistry.Assets.getValue(a);return r?r.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 a=(await this.api().query.System.Account.getValue(e)).data,{free:r,frozen:o}=a;return BigInt(r)-BigInt(o)}async getTokensAccountsBalance(e,s){let a=Number(s),r=await this.api().query.Tokens.Accounts.getValue(e,a),{free:o,frozen:i}=r;return BigInt(o)-BigInt(i)}};function _0(){return{calculateRelayerFee:()=>({build:async({feeAsset:t,destination:e,source:s})=>{let a=s,r=e,o=za.fromChain(a),i=za.fromChain(r),u=a.getAssetId(t),c=a.getAssetDecimals(t);return{amount:await a.evmClient.getProvider().readContract({abi:ja.TokenRelayer,address:o.getTokenRelayer(),args:[i.getWormholeId(),u,c],functionName:"calculateRelayerFee"})}}})}}function D0(){return{TokenRelayer:_0}}function L0(){return{calculateInboundFee:t=>({build:async({feeAsset:e,destination:s,source:a})=>{let r=a,o=s,i=S0.fromChain(r),u=new ke(o),c=new le(t.hub),d=nn(e,o),[b,g]=await Promise.all([u.calculateDestinationFee(d,A),c.calculateDeliveryFee(d,o.parachainId)]),w=g+Qt(b,25n),v=r.getAssetId(e);return{amount:await r.evmClient.getProvider().readContract({abi:ja.Snowbridge,address:i.getGateway(),args:[v,o.parachainId,w],functionName:"quoteSendTokenFee"}),breakdown:{bridgeFeeInDot:w}}}}),calculateOutboundFee:t=>({build:async({transferAsset:e,feeAsset:s,source:a})=>{let r=a,o=new le(t.hub),i=Ra(e,r),u=nn(e,r),[c,d,b,g,w]=await Promise.all([o.getBridgeDeliveryFee(),o.calculateDeliveryFee(i,wa),o.calculateDestinationFee(i,s),o.calculateDeliveryFee(u,r.parachainId),o.calculateDestinationFee(u,s)]);return{amount:c+d+Qt(b,25n)+g+Qt(w,25n),breakdown:{bridgeDeliveryFee:c,bridgeHubDeliveryFee:d,assetHubDestinationFee:b,returnToSenderDeliveryFee:g,returnToSenderDestinationFee:w}}}})}}function H0(){return{calculateDestFee:t=>({build:async({feeAsset:e,source:s,destination:a})=>{let r=s,o=a,i=t?.reserve;if(Ia(e,r,o,i),i){let w=new ke(o),v=new ke(i),F=ln(e,o),V=Da(e,i,o),[_,J]=await Promise.all([w.calculateDestinationFee(F,e),v.calculateDestinationFee(V,e)]),Q=J+_,k=Qt(Q,20n),mt=k-Q;return{amount:k,breakdown:{reserveFee:J,destinationFee:_,margin:mt}}}let u=new ke(o),c=_a(e,o),d=await u.calculateDestinationFee(c,e),b=Qt(d,20n),g=b-d;return{amount:b,breakdown:{totalFee:d,margin:g}}}})}}function f(){return{XcmPaymentApi:H0,Snowbridge:L0,Wormhole:D0}}var W0="0";function M0(){return{build:async({address:t,chain:e})=>{let a=await new qe(e).api().query.MultiTransactionPayment.AccountCurrencyMap.getValue(t),r=a?a.toString():W0,o=e.findAssetById(r);return o?o.asset:q}}}var V0=()=>({accountCurrencyMap:M0});function us(){return{multiTransactionPayment:V0}}import{mrl as Qa,Precompile as Ya,ProgramConfig as Za,Wormhole as Cs}from"@galacticcouncil/xc-core";import{ACCOUNT_SIZE as K0,NATIVE_MINT as $a,TOKEN_PROGRAM_ID as U0,createCloseAccountInstruction as N0,createInitializeAccountInstruction as O0,getMinimumBalanceForRentExemptAccount as G0,getAssociatedTokenAddress as q0}from"@solana/spl-token";import{Keypair as xn,PublicKey as gn,SystemProgram as Ja}from"@solana/web3.js";import{UniversalAddress as eo}from"@wormhole-foundation/sdk-connect";import{createApproveAuthoritySignerInstruction as to,createTransferNativeWithPayloadInstruction as so,getWrappedMeta as z0}from"@wormhole-foundation/sdk-solana-tokenbridge";var j0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,sender:o,destination:i}=e,u=r.chain,c=u,d=Cs.fromChain(u),b=Cs.fromChain(t.moonchain),g=Ya.Bridge,w=await Qa.createPayload(i.chain,s),v=new gn(o),F=new eo(g),V=b.getWormholeId(),_=v,J=0,Q=xn.generate(),k=xn.generate(),mt=await G0(c.connection),Ye=Ja.createAccount({fromPubkey:_,newAccountPubkey:k.publicKey,lamports:mt,space:K0,programId:U0}),Ze=Ja.transfer({fromPubkey:_,lamports:a,toPubkey:k.publicKey}),ut=O0(k.publicKey,$a,_),et=to(d.getTokenBridge(),k.publicKey,_,a),lt=so(c.connection,d.getTokenBridge(),d.getCoreBridge(),o,Q.publicKey,k.publicKey,$a,J,a,F.toUint8Array(),V,w.toU8a()),Ht=N0(k.publicKey,_,_);return new Za({instructions:[Ye,Ze,ut,et,lt,Ht],signers:[Q,k],func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),$0=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,asset:r,source:o,sender:i,destination:u}=e,c=o.chain,d=c,b=Cs.fromChain(c),g=Cs.fromChain(t.moonchain),w=Ya.Bridge,v=await Qa.createPayload(u.chain,s),F=new gn(i),V=o.chain.getAssetId(r),_=new gn(V),J=await q0(_,F),Q=new eo(w),k=g.getWormholeId();if(await z0(d.connection,b.getTokenBridge(),_).catch(lt=>null).then(lt=>lt!=null))throw new Error("Wrapped assets not supported yet");let Ye=0,Ze=xn.generate(),ut=to(b.getTokenBridge(),J,F,a),et=so(d.connection,b.getTokenBridge(),b.getCoreBridge(),i,Ze.publicKey,J,_,Ye,a,Q.toUint8Array(),k,v.toU8a());return new Za({instructions:[ut,et],signers:[Ze],func:"TransferWithPayload",module:"TokenBridge"})}})}),no=()=>({transferNativeWithPayload:j0,transferTokenWithPayload:$0});function ao(){return{TokenBridge:no}}function Ts(){return{Wormhole:ao}}import{mrl as J0,MoveConfig as Q0,Precompile as Y0,Wormhole as oo}from"@galacticcouncil/xc-core";import{Transaction as Z0}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as em,SUI_TYPE_ARG as tm}from"@mysten/sui/utils";import{UniversalAddress as sm}from"@wormhole-foundation/sdk-connect";import{getOldestEmitterCapObjectId as nm,getPackageId as ro}from"@wormhole-foundation/sdk-sui";var am=()=>({viaMrl:t=>({build:async e=>{let{address:s,amount:a,source:r,sender:o,destination:i}=e,u=r.chain,c=u,d=oo.fromChain(u),b=oo.fromChain(t.moonchain),g=0,w=Y0.Bridge,v=await J0.createPayload(i.chain,s),F=new sm(w),V=b.getWormholeId(),_=tm,[J,Q]=await Promise.all([ro(c.client,d.coreBridge),ro(c.client,d.tokenBridge)]),k=new Z0,[mt]=k.splitCoins(k.gas,[k.pure.u64(a)]),[Ye]=k.splitCoins(k.gas,[k.pure.u64(i.fee.amount)]),[Ze]=k.moveCall({target:`${Q}::state::verified_asset`,arguments:[k.object(d.tokenBridge)],typeArguments:[_]}),ut=!1,et=await(async()=>{let ls=await nm(c.client,J,o);if(ls!==null)return k.object(ls);{let[Ks]=k.moveCall({target:`${J}::emitter::new`,arguments:[k.object(d.coreBridge)]});return ut=!0,Ks}})(),[lt,Ht]=k.moveCall({target:`${Q}::transfer_tokens_with_payload::prepare_transfer`,arguments:[et,Ze,mt,k.pure.u16(V),k.pure.vector("u8",F.toUint8Array()),k.pure.vector("u8",v.toU8a()),k.pure.u32(g)],typeArguments:[_]});k.moveCall({target:`${Q}::coin_utils::return_nonzero`,arguments:[Ht],typeArguments:[_]});let[Vs]=k.moveCall({target:`${Q}::transfer_tokens_with_payload::transfer_tokens_with_payload`,arguments:[k.object(d.tokenBridge),lt],typeArguments:[_]});return k.moveCall({target:`${J}::publish_message::publish_message`,arguments:[k.object(d.coreBridge),Ye,Vs,k.object(em)]}),ut&&k.transferObjects([et],k.pure.address(o)),new Q0({transaction:k,func:"TransferNativeWithPayload",module:"TokenBridge"})}})}),io=()=>({transferNativeWithPayload:am});function co(){return{TokenBridge:io}}function An(){return{Wormhole:co}}var uo={};os(uo,{Tag:()=>bt});var bt=(r=>(r.Wormhole="Wormhole",r.Relayer="Relayer",r.Snowbridge="Snowbridge",r.Mrl="Mrl",r))(bt||{});import{AssetRoute as lo}from"@galacticcouncil/xc-core";function ts(t,e){return new lo({source:{asset:t,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{asset:t,balance:n().evm().erc20()}},destination:{chain:l,asset:e,fee:{amount:0,asset:e}},contract:B().Wormhole().TokenBridge().transferTokensWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})}function ie(t,e){return new lo({source:{asset:t,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{balance:n().evm().native()}},destination:{chain:l,asset:e,fee:{amount:f().Snowbridge().calculateInboundFee({hub:T}),asset:D}},contract:B().Snowbridge().sendToken(),tags:["Snowbridge"]})}var rm=[new vs({source:{asset:D,balance:n().evm().native(),destinationFee:{asset:D,balance:n().evm().native()}},destination:{chain:l,asset:Z,fee:{amount:0,asset:Z}},contract:B().Wormhole().TokenBridge().wrapAndTransferETHWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),ts(de,te),ts($e,ge),ts(x,z),ts(p,xe),ts(je,ye)],im=[new vs({source:{asset:D,balance:n().evm().native(),fee:{asset:D,balance:n().evm().native()},destinationFee:{balance:n().evm().native()}},destination:{chain:l,asset:D,fee:{amount:f().Snowbridge().calculateInboundFee({hub:T}),asset:D}},contract:B().Snowbridge().sendToken(),tags:["Snowbridge"]}),ie(Te,Te),ie(Pe,Pe),ie(Xe,Xe),ie(We,We),ie(Ke,Ke),ie(Ue,Ue),ie(Re,Re),ie(Ee,Ee),ie(_e,_e),ie(Ve,Ve),ie(Ne,Ne),ie(Ge,Ge),ie(x,wt),ie(p,At)],zx=[new vs({source:{asset:D,balance:n().evm().native(),destinationFee:{asset:D,balance:n().evm().erc20()}},destination:{chain:R,asset:Z,fee:{amount:0,asset:Z}},contract:B().Wormhole().TokenBridge().wrapAndTransferETH(),tags:["Mrl","Wormhole"]}),new vs({source:{asset:de,balance:n().evm().erc20(),fee:{asset:D,balance:n().evm().native()},destinationFee:{asset:de,balance:n().evm().erc20()}},destination:{chain:R,asset:te,fee:{amount:0,asset:te}},contract:B().Wormhole().TokenBridge().transferTokens(),tags:["Mrl","Wormhole"]})],fo=new om({chain:I,routes:[...rm,...im]});var po=[fo];import{AssetRoute as ho,ChainRoutes as cm}from"@galacticcouncil/xc-core";var mm=[new ho({source:{asset:ee,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:ee,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ee}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ho({source:{asset:fe,balance:n().substrate().tokens().accounts(),fee:{asset:ee,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:fe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:fe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],bo=new cm({chain:kt,routes:[...mm]});import{AssetRoute as Bs,ChainRoutes as Ao}from"@galacticcouncil/xc-core";import{AssetRoute as wn}from"@galacticcouncil/xc-core";var It=0,um=t=>{let{source:e}=t;return!!e.feeSwap},lm=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},yo=m().assetConversion().swapTokensForExactTokens({slippage:30});function xo(t,e,s){return new wn({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:p}},extrinsic:ct(lm,yo).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Ps(t,e,s){return new wn({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:t,balance:n().substrate().assets().account(),swap:!0},destinationFee:{balance:n().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:ct(um,yo).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function Rt(t,e,s){return new wn({source:{asset:t,balance:n().substrate().assets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().assets().account()},min:ft().assets().asset()},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})}function St(t){return xo(t,l,.02)}function go(t){return xo(t,R,.25)}var dm=[new Bs({source:{asset:A,balance:n().substrate().system().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().system().account()},min:ft().assets().asset()},destination:{chain:l,asset:A,fee:{amount:.001,asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),new Bs({source:{asset:P,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:l,asset:P,fee:{amount:1e-4,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Rt(p,l,.02),Rt(x,l,.02),St(Y),St(tt),St(st),St(nt)],fm=[new Bs({source:{asset:P,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:ot,asset:P,fee:{amount:.001,asset:P}},extrinsic:m().polkadotXcm().transferAssets()})],pm=[Rt(p,R,.25),Rt(x,R,.25),go(Y)],hm=[Rt(p,M,.03),Rt(x,M,.03)],bm=[new Bs({source:{asset:K,balance:n().substrate().foreignAssets().account(),fee:{asset:A,balance:n().substrate().system().account(),extra:It},destinationFee:{balance:n().substrate().foreignAssets().account()}},destination:{chain:dt,asset:K,fee:{amount:2.5,asset:K}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],wo=new Ao({chain:T,routes:[...dm,...fm,...pm,...hm,...bm]}),ko=new Ao({chain:Vt,routes:[Ps(p,l,.02),Ps(x,l,.02),Ps(A,l,.001)]});import{AssetRoute as Qe,ChainRoutes as ym}from"@galacticcouncil/xc-core";var xm=[new Qe({source:{asset:S,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:S,fee:{amount:.044306118,asset:S}},extrinsic:m().polkadotXcm().reserveTransferAssets()}),new Qe({source:{asset:E,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:E,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:y,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:W,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:L,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:L,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:He,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:He,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:He}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:H,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:j,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:j,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:j}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:p,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Qe({source:{asset:x,balance:n().substrate().assets().account(),fee:{asset:S,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().assets().account()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Co=new ym({chain:oe,routes:[...xm]});import{AssetRoute as ze,ChainRoutes as gm}from"@galacticcouncil/xc-core";var Am=[new ze({source:{asset:E,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:E,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:E}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:H,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:j,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:j,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:j}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:A,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})}),new ze({source:{asset:S,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:S,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:S}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:y,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:W,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:W}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],wm=[new ze({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:T,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new ze({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:E,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:T,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],To=new gm({chain:M,routes:[...Am,...wm]});import{AssetRoute as vo,ChainRoutes as km}from"@galacticcouncil/xc-core";var Cm=[new vo({source:{asset:be,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:be,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:be}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new vo({source:{asset:y,balance:n().substrate().ormlTokens().accounts(),fee:{asset:be,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().ormlTokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Po=new km({chain:Ct,routes:[...Cm]});import{AssetRoute as Dt,ChainRoutes as Xm}from"@galacticcouncil/xc-core";var Tm="0",X=()=>({build:({address:t,asset:e,chain:s})=>s.getAssetId(e).toString()===Tm?n().substrate().system().account().build({address:t,asset:e,chain:s}):n().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),ce=()=>({asset:us().multiTransactionPayment().accountCurrencyMap(),balance:X()});import{AssetRoute as ss}from"@galacticcouncil/xc-core";var vm=.9,Pm=1,Bm=.03,Xs=t=>{let{source:e}=t,{enabled:s}=e.destinationFeeSwap||{};return!!s},Fs=m().router().buy({slippage:30});function C(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:e,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(s?{reserve:s}:void 0),asset:t}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})}function _t(t){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:t,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:ct(Xs,Fs).prior(m().polkadotXcm().limitedReserveTransferAssets())})}function Es(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Vt,asset:t,fee:{amount:e,asset:t}},extrinsic:m().utility().batchAll([s,m().polkadotXcm().send().transferAsset({fee:Bm})])})}function Bo(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:e,asset:t,fee:{amount:s,asset:y}},extrinsic:ct(Xs,Fs).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"}))})}function yt(t){return Bo(t,R,.08)}function Xo(t){return Bo(t,at,.1)}function Fo(t,e,s,a,r,o){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{asset:t,balance:X()}},destination:{chain:s,asset:e,fee:{amount:a,asset:e}},extrinsic:ct(Xs,Fs).priorMulti([m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}),m().polkadotXcm().send().transact({fee:vm})]),transact:{chain:R,fee:{amount:Pm,asset:y,balance:X()},extrinsic:m().ethereumXcm().transact(r)},tags:o})}function kn(t,e,s){return Fo(t,e,s,0,B().Batch().batchAll([B().Erc20().approve(a=>a.getTokenBridge()),B().Wormhole().TokenBridge().transferTokens()]),["Mrl","Wormhole"])}function xt(t,e,s){return Fo(t,e,s,f().Wormhole().TokenRelayer().calculateRelayerFee(),B().Batch().batchAll([B().Erc20().approve(a=>a.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),["Mrl","Wormhole","Relayer"])}function se(t,e,s){return new ss({source:{asset:t,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:s,asset:e,fee:{amount:f().Snowbridge().calculateOutboundFee({hub:T}),asset:A}},extrinsic:ct(Xs,Fs).prior(m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),tags:["Snowbridge"]})}var Fm=[C(ee,kt),C(fe,kt)],Em=[new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:P,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:P,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:p,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),new Dt({source:{asset:x,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:T,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:x}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})}),_t(Y),_t(tt),_t(st),_t(nt)],Im=[C(S,oe),C(E,oe,M),C(y,oe),C(W,oe),C(L,oe),C(He,oe),C(H,oe,M),C(j,oe),C(p,oe,T),C(x,oe,T)],Rm=[C(E,M),C(H,M),C(j,M),C(A,M),C(S,M),C(y,M),C(W,M),C(p,M,T),C(x,M,T),new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:M,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Sm=[C(be,Ct),C(y,Ct)],_m=[C(W,Ae),C(L,Ae),C(q,Ae),C(p,Ae,T),C(x,Ae,T),new Dt({source:{asset:H,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Ae,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Dt({source:{asset:A,balance:X(),fee:ce(),destinationFee:{balance:X()}},destination:{chain:Ae,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:Tt}),asset:A}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"RemoteReserve"})})],Dm=[C(q,R),C(y,R),C(p,R,T),C(x,R,T),yt(te),yt(ye),yt(z),yt(xe),yt(ge),yt(Z),yt(G)],Lm=[C(pe,at),C(y,at),Xo(z)],Hm=[C(K,dt)],Wm=[C(Oe,zt)],Mm=[C(Be,Kt)],Vm=[C(Fe,Nt)],Km=[C(Ie,Ot)],Um=[C(Se,jt)],Nm=[C(Le,qt)],Om=[C(De,Gt)],Gm=[C(Me,Ut)],qm=[C(ve,Mt)],zm=[xt(te,de,I),xt(Z,D,I),xt(ge,$e,I),xt(xe,p,I),xt(z,x,I),kn(ye,je,I)],jm=[se(D,D,I),se(Te,Te,I),se(Pe,Pe,I),se(Xe,Xe,I),se(We,We,I),se(Ke,Ke,I),se(Ue,Ue,I),se(Ne,Ne,I),se(Re,Re,I),se(Ee,Ee,I),se(_e,_e,I),se(Ve,Ve,I),se(Ge,Ge,I),se(wt,x,I),se(At,p,I)],$m=[xt(G,G,vt),kn(ne,ne,vt)],Jm=[xt(ae,ae,$t)],Qm=[Es(p,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),Es(x,.1,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})),Es(A,.2,m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"}))],Eo=new Xm({chain:l,routes:[...Fm,...qm,...Em,...Im,...Rm,...Sm,...Qm,...Mm,...Gm,...jm,...zm,..._m,...Vm,...Km,...Um,...Dm,...Hm,...Om,...Nm,...$m,...Jm,...Wm,...Lm]});import{AssetRoute as Lt,ChainRoutes as Ym}from"@galacticcouncil/xc-core";var Zm=[new Lt({source:{asset:L,balance:n().substrate().tokens().accounts(),destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:L,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:W,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:W,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:L}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:q,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:q,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:q}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:H,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:H,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:M}),asset:H}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:p,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:x,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:x,fee:{amount:f().XcmPaymentApi().calculateDestFee({reserve:T}),asset:x}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Lt({source:{asset:A,balance:n().substrate().tokens().accounts(),fee:{asset:L,balance:n().substrate().tokens().accounts()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:A,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:A}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Io=new Ym({chain:Ae,routes:[...Zm]});import{AssetRoute as ns,ChainRoutes as su}from"@galacticcouncil/xc-core";import{AssetRoute as Ro}from"@galacticcouncil/xc-core";function eu(t,e,s){return new Ro({source:{asset:t,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:B().Xtokens().transfer()})}function tu(t,e,s){return new Ro({source:{asset:t,balance:n().evm().erc20(),fee:{asset:y,balance:n().evm().erc20()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:e,asset:t,fee:{amount:s,asset:t}},contract:B().Xtokens().transfer()})}function gt(t,e){return eu(t,l,e)}function Is(t,e){return tu(t,l,e)}var nu=[new ns({source:{asset:y,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:y,fee:{amount:.05,asset:y}},contract:B().Xtokens().transfer()}),Is(q,.6),Is(p,.3),Is(x,.3),gt(te,.004),gt(ye,.004),gt(z,.004),gt(xe,.004),gt(ge,1e-7),gt(Z,2e-6),gt(G,2e-5)],au=[new ns({source:{asset:Y,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:Y,fee:{amount:.18,asset:p}},contract:B().Xtokens().transferMultiCurrencies()}),new ns({source:{asset:p,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:p,fee:{amount:.18,asset:p}},contract:B().Xtokens().transfer()}),new ns({source:{asset:x,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{balance:n().evm().erc20()}},destination:{chain:T,asset:x,fee:{amount:.18,asset:x}},contract:B().Xtokens().transfer()})],kA=[new ns({source:{asset:Z,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{asset:Z,balance:n().evm().erc20()}},destination:{chain:I,asset:D,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:D}},contract:B().Batch().batchAll([B().Erc20().approve(t=>t.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]}),new ns({source:{asset:te,balance:n().evm().erc20(),fee:{asset:y,balance:n().substrate().system().account()},destinationFee:{asset:te,balance:n().evm().erc20()}},destination:{chain:I,asset:de,fee:{amount:f().Wormhole().TokenRelayer().calculateRelayerFee(),asset:de}},contract:B().Batch().batchAll([B().Erc20().approve(t=>t.getTokenRelayer()),B().Wormhole().TokenRelayer().transferTokensWithRelay()]),tags:["Mrl","Wormhole","Relayer"]})],So=new su({chain:R,routes:[...nu,...au]});import{AssetRoute as _o,ChainRoutes as ou}from"@galacticcouncil/xc-core";var ru=[new _o({source:{asset:K,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:K,fee:{amount:.01,asset:K}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],iu=[new _o({source:{asset:K,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:T,asset:K,fee:{amount:.1,asset:K}},extrinsic:m().polkadotXcm().limitedTeleportAssets()})],Do=new ou({chain:dt,routes:[...ru,...iu]});import{AssetRoute as cu,ChainRoutes as mu}from"@galacticcouncil/xc-core";var uu=[new cu({source:{asset:Oe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Oe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Oe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Lo=new mu({chain:zt,routes:[...uu]});import{AssetRoute as Cn,ChainRoutes as lu}from"@galacticcouncil/xc-core";var du=[new Cn({source:{asset:pe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:pe,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:pe}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Cn({source:{asset:y,balance:n().substrate().tokens().accounts(),fee:{asset:pe,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:y,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()}),new Cn({source:{asset:z,balance:n().substrate().tokens().accounts(),fee:{asset:pe,balance:n().substrate().system().account()},destinationFee:{balance:n().substrate().tokens().accounts()}},destination:{chain:l,asset:z,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:y}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ho=new lu({chain:at,routes:[...du]});import{AssetRoute as fu,ChainRoutes as pu}from"@galacticcouncil/xc-core";var hu=[new fu({source:{asset:Be,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Be,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Be}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Wo=new pu({chain:Kt,routes:[...hu]});import{AssetRoute as bu,ChainRoutes as yu}from"@galacticcouncil/xc-core";var xu=[new bu({source:{asset:Fe,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Fe,fee:{amount:.03,asset:Fe}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],Mo=new yu({chain:Nt,routes:[...xu]});import{AssetRoute as gu,ChainRoutes as Au}from"@galacticcouncil/xc-core";var wu=[new gu({source:{asset:Le,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Le,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Le}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Vo=new Au({chain:qt,routes:[...wu]});import{AssetRoute as ku,ChainRoutes as Cu}from"@galacticcouncil/xc-core";var Tu=[new ku({source:{asset:Me,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Me,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:Me}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Ko=new Cu({chain:Ut,routes:[...Tu]});import{AssetRoute as vu,ChainRoutes as Pu}from"@galacticcouncil/xc-core";var Bu=[new vu({source:{asset:ve,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:ve,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:ve}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],Uo=new Pu({chain:Mt,routes:[...Bu]});import{AssetRoute as Xu,ChainRoutes as Fu}from"@galacticcouncil/xc-core";var Eu=[new Xu({source:{asset:Ie,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Ie,fee:{amount:2,asset:Ie}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})})],No=new Fu({chain:Ot,routes:[...Eu]});import{AssetRoute as Iu,ChainRoutes as Ru}from"@galacticcouncil/xc-core";var Su=[new Iu({source:{asset:Se,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:Se,fee:{amount:.03,asset:Se}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Oo=new Ru({chain:jt,routes:[...Su]});import{AssetRoute as _u,ChainRoutes as Du}from"@galacticcouncil/xc-core";var Lu=[new _u({source:{asset:De,balance:n().substrate().system().account(),destinationFee:{balance:n().substrate().system().account()}},destination:{chain:l,asset:De,fee:{amount:.205,asset:De}},extrinsic:m().polkadotXcm().reserveTransferAssets()})],Go=new Du({chain:Gt,routes:[...Lu]});var qo=[bo,Uo,wo,ko,Co,To,Po,Eo,Io,So,Do,Go,Lo,Ho,Wo,Mo,Vo,Ko,No,Oo];import{AssetRoute as zo,ChainRoutes as Hu}from"@galacticcouncil/xc-core";var Wu=[new zo({source:{asset:G,balance:n().solana().native(),destinationFee:{asset:G,balance:n().solana().native()}},destination:{chain:l,asset:G,fee:{amount:0,asset:G}},program:Ts().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]}),new zo({source:{asset:ne,balance:n().solana().token(),fee:{asset:G,balance:n().solana().native()},destinationFee:{asset:ne,balance:n().solana().token()}},destination:{chain:l,asset:ne,fee:{amount:0,asset:ne}},program:Ts().Wormhole().TokenBridge().transferTokenWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],jo=new Hu({chain:vt,routes:[...Wu]});var $o=[jo];import{AssetRoute as Mu,ChainRoutes as Vu}from"@galacticcouncil/xc-core";var Ku=[new Mu({source:{asset:ae,balance:n().sui().native(),destinationFee:{asset:ae,balance:n().sui().native()}},destination:{chain:l,asset:ae,fee:{amount:0,asset:ae}},move:An().Wormhole().TokenBridge().transferNativeWithPayload().viaMrl({moonchain:R}),tags:["Mrl","Wormhole"]})],Jo=new Vu({chain:$t,routes:[...Ku]});var Qo=[Jo];import{AssetRoute as Yo,ChainRoutes as Uu}from"@galacticcouncil/xc-core";import{AssetRoute as uw}from"@galacticcouncil/xc-core";var Tn=0;var Nu=new Yo({source:{asset:P,balance:n().substrate().system().account(),fee:{asset:P,balance:n().substrate().system().account(),extra:Tn},destinationFee:{balance:n().substrate().system().account()}},destination:{chain:T,asset:P,fee:{amount:.002,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Ou=new Yo({source:{asset:P,balance:n().substrate().system().account(),fee:{asset:P,balance:n().substrate().system().account(),extra:Tn},destinationFee:{balance:n().substrate().system().account()}},destination:{chain:Jt,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"LocalReserve"})}),Zo=new Uu({chain:ot,routes:[Ou,Nu]});import{AssetRoute as er,ChainRoutes as qu}from"@galacticcouncil/xc-core";var Gu="0",as=()=>({build:({address:t,asset:e,chain:s})=>e.toString()===Gu?n().substrate().system().account().build({address:t,asset:e,chain:s}):n().substrate().tokens().accounts().build({address:t,asset:e,chain:s})}),vn=()=>({asset:us().multiTransactionPayment().accountCurrencyMap(),balance:as()});var zu=[new er({source:{asset:p,balance:as(),fee:vn(),destinationFee:{balance:as()}},destination:{chain:ot,asset:p,fee:{amount:f().XcmPaymentApi().calculateDestFee(),asset:p}},extrinsic:m().polkadotXcm().limitedReserveTransferAssets()})],ju=[new er({source:{asset:P,balance:as(),fee:vn(),destinationFee:{balance:as()}},destination:{chain:ot,asset:P,fee:{amount:.0012,asset:P}},extrinsic:m().polkadotXcm().transferAssetsUsingTypeAndThen({transferType:"DestinationReserve"})})],tr=new qu({chain:Jt,routes:[...zu,...ju]});var sr=[Zo,tr];var $u=[...po,...qo,...$o,...Qo,...sr],Ju=new Map($u.map(t=>[t.chain.key,t]));import{Parachain as mr}from"@galacticcouncil/xc-core";import{TransferValidation as nr,TransferValidationError as ar}from"@galacticcouncil/xc-core";var Rs=class extends nr{async validate(e){let{source:s}=e,{chain:a,fee:r,feeBalance:o}=s;if(o.amount<r.amount)throw new ar("Insufficient_Fee_Balance",{amount:r.toDecimal(),asset:r.symbol,chain:a.name,error:"fee.insufficientBalance"})}},Ss=class extends nr{async skipFor(e){let{asset:s,source:a}=e,{enabled:r}=a.destinationFeeSwap||{};return s.isEqual(a.destinationFee)||!!r}async validate(e){if(await this.skipFor(e))return;let{source:a}=e,{chain:r,destinationFee:o,destinationFeeBalance:i}=a,u=await this.getMin(r,o),c=o.copyWith({amount:o.amount+u});if(i.amount<c.amount)throw new ar("Insufficient_Fee_Balance",{amount:c.toDecimal(),asset:c.symbol,chain:r.name,error:"destFee.insufficientBalance"})}async getMin(e,s){if(e.key==="assethub")return new le(e).getAssetMin(s);let r=e.getAssetMin(s)*10**s.decimals;return BigInt(r)}};import{TransferValidation as or,TransferValidationError as rr}from"@galacticcouncil/xc-core";var _s=class extends or{async skipFor(e){let{asset:s,destination:a}=e,r=a.chain;return await new le(r).checkIfSufficient(s)}async validate(e){if(await this.skipFor(e))return;let{address:a,destination:r}=e,o=r.chain;if(await new le(o).getSystemAccountBalance(a)===0n)throw new rr("Insufficient_Ed",{amount:"0.1",asset:"DOT",chain:r.chain.name,error:"account.insufficientDeposit"})}},Ds=class extends or{async validate(e){let{asset:s,sender:a,source:r}=e,o=r.chain;if(await new le(o).checkIfFrozen(a,s))throw new rr("Asset_Frozen",{asset:s.originSymbol,chain:r.chain.name,error:"asset.frozen"})}};import{TransferValidation as ir,TransferValidationError as cr}from"@galacticcouncil/xc-core";var Qu=12,Yu=1,Zu=18,Ls=class extends ir{async skipFor(e){let{destination:s}=e,a=s.chain,r=new qe(a),o=s.balance.amount>0n,i=await r.checkIfSufficient(s.balance);return o||i}async validate(e){if(await this.skipFor(e))return;let{address:a,destination:r}=e,o=r.chain,i=new qe(o),u=await i.getFeeAsset(a),c=o.findAssetById(u),d=c.min||Yu,b=c.decimals||Qu,g=d*Math.pow(10,b),w=await i.getAssetBalance(a,u);if(BigInt(g*1.1)>w)throw new cr("Insufficient_Ed",{amount:g,asset:c.asset.originSymbol,chain:o.name,error:"account.insufficientDeposit"})}},Hs=class extends ir{async skipFor(e){let{source:s,transact:a}=e,{enabled:r}=s.destinationFeeSwap||{};return!(!!a&&a.chain.key==="moonbeam")||!!r}async validate(e){if(await this.skipFor(e))return;let{sender:a,source:r}=e,o=r.chain,i=new qe(o),u=o.getBalanceAssetId(y),c=o.getAssetDecimals(y)||Zu,d=1*Math.pow(10,c);if(await i.getTokensAccountsBalance(a,u.toString())<BigInt(d))throw new cr("Insufficient_Ed",{amount:1,asset:y.originSymbol,chain:o.name,error:"destFee.insufficientBalance"})}};var Ce={isAny:()=>!0,isHydration:t=>t instanceof mr&&t.parachainId===2034,isHub:t=>t instanceof mr&&t.parachainId===1e3,isEvm:t=>t.isEvmChain()},el=[new Rs(Ce.isAny,Ce.isAny),new Ss(Ce.isAny,Ce.isAny),new _s(Ce.isAny,Ce.isHub),new Ds(Ce.isHub,Ce.isAny),new Ls(Ce.isAny,Ce.isHydration),new Hs(Ce.isHydration,Ce.isAny)];var lr={};os(lr,{AssethubDex:()=>Bn,HydrationDex:()=>Pn});import{pool as tl,sor as sl,tx as nl}from"@galacticcouncil/sdk-next";import{RUNTIME_DECIMALS as al}from"@galacticcouncil/common";import{memoize1 as ol}from"@thi.ng/memoize";var{PoolType:Ws}=tl,{TradeRouteBuilder:rl,TradeRouter:il}=sl,{TxBuilderFactory:cl}=nl,Pn=class{chain;client;poolCtx;txBuilder;getCtx=ol(async e=>{console.log("init swap router",e,"\u2705");let s=new il(this.poolCtx);return s.withFilter({useOnly:[Ws.Aave,Ws.Omni,Ws.Stable,Ws.XYK]}),s});constructor(e,s){this.chain=e,this.poolCtx=s,this.client=new qe(this.chain),this.txBuilder=new cl(s.client,s.evm)}async getCalldata(e,s,a,r,o=0){let i=Number(this.chain.getMetadataAssetId(s)),u=Number(this.chain.getMetadataAssetId(a)),c=r.amount,d=await this.getCtx(1),b=await d.getMostLiquidRoute(i,u),g=await d.getBuy(i,u,c,b);return(await(await this.txBuilder.trade(g).withBeneficiary(e).withSlippage(o).build()).get().getEncodedData()).asHex()}async getQuote(e,s,a,r){let o=Number(this.chain.getMetadataAssetId(e)),i=Number(this.chain.getMetadataAssetId(s)),u=a.amount,c=await this.getCtx(1);try{let d=await c.getMostLiquidRoute(o,i),b=await c.getBuy(o,i,u,d);return{amount:b.amountIn,route:rl.build(b.swaps)}}catch(d){if(r)return{amount:await this.getFallbackPrice(e,a.amount)};throw d}}async getFallbackPrice(e,s){let a=this.chain.getAssetId(e),r=await this.client.api().query.MultiTransactionPayment.AcceptedCurrencies.getValue(Number(e));if(!r)throw new Error(`No price found for asset ${e}`);let o=r*s,i=Math.pow(10,al);return o/BigInt(i)}};import{encodeLocation as ur}from"@galacticcouncil/common";var Bn=class{chain;client;constructor(e){this.chain=e,this.client=new le(this.chain)}async getCalldata(e,s,a,r){throw Error("Not supported for "+this.chain.key)}async getQuote(e,s,a){let r=this.chain.getAssetXcmLocation(e),o=this.chain.getAssetXcmLocation(s),i=await this.client.api().apis.AssetConversionApi.quote_price_tokens_for_exact_tokens(ur(r),ur(o),a.amount,!0);if(!i)throw new Error("Failed to get swap quote");return{amount:i}}};import{ConfigService as ul}from"@galacticcouncil/xc-core";import{Asset as ml}from"@galacticcouncil/xc-core";function Ms(t){let{id:e,origin:s,symbol:a}=t,r=a.toLowerCase();return new ml({key:[r,s,e].join("_"),originSymbol:a})}function dr(t){let{decimals:e,id:s}=t;return{asset:Ms(t),decimals:e,id:s,xcmLocation:{parents:0,interior:{type:"X2",value:[{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}function fr(t){let{decimals:e,id:s,internalId:a,origin:r}=t;return{asset:Ms(t),decimals:e,id:a,xcmLocation:{parents:1,interior:{type:"X3",value:[{type:"Parachain",value:r},{type:"PalletInstance",value:50},{type:"GeneralIndex",value:s}]}}}}var Xn=class extends ul{registerExternal(e){let s=this.getChain("hydration"),a=this.getChain("assethub"),r=o=>!!s.findAssetById(o.internalId.toString());e.filter(o=>!r(o)&&o.origin===1e3).forEach(o=>{let i=Ms(o),u=dr(o),c=fr(o);console.log("\u{1F480} Registering "+i.key),a.updateAsset(u),s.updateAsset(c),this.updateAsset(i),this.updateChainRoute(a,St(i)),this.updateChainRoute(s,_t(i))})}};export{Xn as HydrationConfigService,xr as assetsMap,mo as builders,Ii as chainsMap,qa as clients,lr as dex,Ju as routesMap,uo as tags,el as validations};
@@ -2,6 +2,7 @@ import { Parachain, TxWeight } from '@galacticcouncil/xc-core';
2
2
  import { Binary } from 'polkadot-api';
3
3
  import { XcmV3Junctions, XcmV3Junction, XcmV3MultiassetFungibility, XcmV4Instruction, XcmV4AssetAssetFilter, XcmV3WeightLimit, XcmV2OriginKind } from '@galacticcouncil/descriptors';
4
4
  import { XcmTransferType, XcmVersion } from './types';
5
+ export declare const isSnowbridgeTransfer: (assetLocation: any) => any;
5
6
  export declare const toDest: (version: XcmVersion, source: Parachain, destination: Parachain) => {
6
7
  type: XcmVersion;
7
8
  value: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacticcouncil/xc-cfg",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Cross-chain hydradx & basilisk dapp configuration",
5
5
  "author": "GalacticCouncil",
6
6
  "repository": {